做單片機軟件設計時(shí),都應該考慮哪些事情?

發(fā)布時(shí)間:2018-11-24 10:27    發(fā)布者:技術(shù)小白
關(guān)鍵詞: 單片機設計
軟件所要完成的任務(wù)已在總體設計時(shí)規定,在具體軟件設計時(shí),要結合硬件結構,進(jìn)一步明確軟件所承擔的一個(gè)個(gè)任務(wù)細節,確定具體實(shí)施的方法,合理分配資源。

1程序設計技術(shù)

合理的軟件結構是設計一個(gè)性能優(yōu)良的單片機應用系統軟件的基礎。在程序設計中,應培養結構化程序設計風(fēng)格,各功能程序實(shí)行模塊化、子程序化。一般有以下兩種設計方法。


a.模塊程序設計

模塊程序設計是單片機應用中常用的一種程序設計技術(shù)。它是把一個(gè)較長(cháng)的程序分解為若干個(gè)功能相對獨立的較小的程序模塊,各個(gè)程序模塊分別設計、編程和調試,最后由各個(gè)調試好的模塊組成一個(gè)大的程序。

優(yōu)點(diǎn)是單個(gè)功能明確的程序模塊的設計和調試比較方便,容易完成,一個(gè)模塊可以為多個(gè)程序所共享。其缺點(diǎn)是各個(gè)模塊的連接有時(shí)有一定難度。


b.自頂向下的程序設計

自頂向下程序設計時(shí),先從主程序開(kāi)始設計,從屬程序或子程序用符號來(lái)代替。主程序編好后再編制各從屬程序和子程序,最后完成整個(gè)系統軟件的設計。

優(yōu)點(diǎn)是比較符合于人們的日常思維,設計、調試和連接同時(shí)按一個(gè)線(xiàn)索進(jìn)行,程序錯誤可以較早的發(fā)現。缺點(diǎn)是上一級的程序錯誤將對整個(gè)程序產(chǎn)生影響,一處修改可能引起對整個(gè)程序的全面修改。

2程序設計

在選擇好軟件結構和所采用的程序設計技術(shù)后,便可著(zhù)手進(jìn)行程序設計,將設計任務(wù)轉化為具體的程序。


a.建立數學(xué)模型

根據設計任務(wù),描述出各輸入變量和各輸出變量之間的數學(xué)關(guān)系,此過(guò)程即為建立數學(xué)模型。數學(xué)模型隨系統任務(wù)的不同而不同,其正確度是系統性能好壞的決定性因素之一。




b.繪制程序流程圖

通常在編寫(xiě)程序之前先繪制程序流程圖,以提高軟件設計的總體效率。程序流程圖以簡(jiǎn)明直觀(guān)的方式對任務(wù)進(jìn)行描述,并很容易由此編寫(xiě)出程序,故對初學(xué)者來(lái)說(shuō)尤為適用。

在設計過(guò)程中,先畫(huà)出簡(jiǎn)單的功能性流程圖(粗框圖),然后對功能流程圖進(jìn)行細化和具體化,對存儲器、寄存器、標志位等工作單元作具體的分配和說(shuō)明,將功能流程圖中每一個(gè)粗框的操作轉變?yōu)榫唧w的存儲器單元、工作寄存器或I/O口的操作,從而給出詳細的程序流程圖(細框圖)。


c.程序的編制

在完成程序流程圖設計以后,便可以編寫(xiě)程序。程序設計語(yǔ)言對程序設計的影響較大。匯編語(yǔ)言是最為常用的單片機程序語(yǔ)言,用匯編語(yǔ)言編寫(xiě)程序代碼精簡(jiǎn),直接面向硬件電路進(jìn)行設計,速度快,但進(jìn)行大量數據運算時(shí),編寫(xiě)難度將大大增加,不易閱讀和調試。在有大量數據運算時(shí)可采用C語(yǔ)言(如MCS-51的C51)或PL/M語(yǔ)言。

編寫(xiě)程序時(shí),應注意系統硬件資源的合理分配與使用,子程序的入/出口參數的設置與傳遞。采用合理的數據結構、控制算法,以滿(mǎn)足系統要求的精度。

在存儲空間分配時(shí),應將使用頻率最高的數據緩沖器設在內部RAM;標志應設置在片內RAM位操作區(20H~2FH)中;指定用戶(hù)堆棧區,棧區的大小應留有余量;余下部分作為數據緩沖區。

在編寫(xiě)程序過(guò)程中,根據流程圖逐條用符號指令來(lái)描述,即得匯編語(yǔ)言源程序。應按MCS-51匯編語(yǔ)言的標準符號和格式書(shū)寫(xiě),在完成系統功能的同時(shí)應注意保證設計的可靠性,如數字濾波、軟件陷阱、保護等。必要時(shí)可作若干功能性注釋?zhuān)岣叱绦虻目勺x性。

3程序設計

各程序模塊編輯之后,需進(jìn)行匯編或編譯、調試,當滿(mǎn)足設計要求后,將各程序模塊按照軟件結構設計的要求連接起來(lái),即為軟件裝配,從而完成軟件設計。在軟件裝配時(shí),應注意軟件接口。
免費試聽(tīng)C語(yǔ)言、電子、PCB、STM32、Linux、FPGA、Python等。想學(xué)習的你和我聯(lián)系預約就可以免費聽(tīng)課了宋工Q3/5/2/4/6/5/9/0/8/8   Tel/WX:1/7/3/1/7/9/5/1/9/0/8





本文地址:http://selenalain.com/thread-550485-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页