我們學(xué)習單片機的目的就是為了進(jìn)行嵌入式系統的開(kāi)發(fā),學(xué)好單片機首先要有一個(gè)整體認識。
下面將簡(jiǎn)要介紹一下單片機應用系統的開(kāi)發(fā)流程。
單片機產(chǎn)品開(kāi)發(fā)流程
這里分享一種常見(jiàn)的開(kāi)發(fā)流程,如圖所示:
單片機系統開(kāi)發(fā)流程
1.明確任務(wù)
分析和了解項目的總體要求,并綜合考慮系統使用環(huán)境、可靠性要求、可維護性及產(chǎn)品的成本等因素,制定出可行的性能指標。
2.劃分軟、硬件功能
單片機系統由軟件和硬件兩部分組成。在應用系統中,有些功能既可由硬件來(lái)實(shí)現,也可以用軟件來(lái)完成。硬件的使用可以提高系統的實(shí)時(shí)性和可靠性;使用軟件實(shí)現,可以降低系統成本,簡(jiǎn)化硬件結構。因此在總體考慮時(shí),必須綜合分析以上因素,合理地制定硬件和軟件任務(wù)的比例。
3.確定希望使用的單片機及其他關(guān)鍵部件
根據硬件設計任務(wù),選擇能夠滿(mǎn)足系統需求并且性?xún)r(jià)比高的單片機及其他關(guān)鍵器件,如A/D、D/A轉換器、傳感器、放大器等,這些器件需要滿(mǎn)足系統精度、速度以及可靠性等方面的要求。
4.硬件設計
根據總體設計要求,以及選定的單片機及關(guān)鍵器件,利用Protel等軟件設計出應用系統的電路原理圖。
5.軟件設計
在系統整體設計和硬件設計的基礎上,確定軟件系統的程序結構并劃分功能模塊,然后進(jìn)行各模塊程序設計。
單片機程序設計語(yǔ)言可分為三類(lèi):
? 機器語(yǔ)言 :又稱(chēng)為二進(jìn)制目標代碼,是CPU硬件*能夠直接識別的語(yǔ)言(在設計CPU時(shí)就已經(jīng)確定其代碼的含義)。人們要計算機所執行的所有操作,*終都必須轉換成為相應的機器語(yǔ)言由CPU識別、控制執行。CPU系列不同,其機器語(yǔ)言代碼的含義也不盡相同。
? 匯編語(yǔ)言 :由于機器語(yǔ)言必須轉換為二進(jìn)制代碼描述,不便于記憶、使用和直接編寫(xiě)程序,為此產(chǎn)生了與機器語(yǔ)言相對應的匯編語(yǔ)言。用匯編語(yǔ)言編寫(xiě)的程序執行速度快,占用存儲單元少,效率高。
? 高級語(yǔ)言 :高級語(yǔ)言具有很好的可讀性,使程序的編寫(xiě)和操作都十分方便,目前廣泛使用的高級語(yǔ)言是C51。
匯編語(yǔ)言和高級語(yǔ)言都必須被翻譯成機器語(yǔ)言之后才能被CPU識別。
6.仿真調試
軟件和硬件設計結束后,需要進(jìn)行進(jìn)行進(jìn)入兩者的整合調試階段。為避免浪費資源,在生成實(shí)際電路板之前,可以利用Keil C51和Proteus軟件進(jìn)行系統仿真,出現問(wèn)題可以及時(shí)修改。
7.系統調試
完成系統仿真后,利用Protel等繪圖軟件,根據電路原理圖繪制PCB(Printed Circuit Board)印刷電路板圖,然后將PCB圖交給相關(guān)廠(chǎng)商生產(chǎn)電路板。拿到電路板后,為便于更換器件和修改電路,可首先在電路板上焊接所需芯片插座,并利用編程器將程序寫(xiě)入單片機。
接下來(lái)將單片機及其他芯片插到相應的芯片插座中,接通電源及其他輸入、輸出設備,進(jìn)行系統聯(lián)調,直至調試成功。
8.測試修改、用戶(hù)試用
經(jīng)測試檢驗符合要求后,將系統交給用戶(hù)試用,對于出現的實(shí)際問(wèn)題進(jìn)行修改完善,系統開(kāi)發(fā)完成。
單片機學(xué)習方法探討
單片機學(xué)習的過(guò)程應該是一個(gè)循序漸進(jìn)、不斷學(xué)習、不斷積累的過(guò)程,大致分為三個(gè)階段。
一階段:
掌握開(kāi)發(fā)單片機的必備基礎知識。
首先是熟練掌握單片機的基本原理,雖然現在單片機廠(chǎng)商眾多,但各家單片機的基本結構和原理都比較相近,例如內核結構、內存分配、中斷處理、定時(shí)計數、串行通信、端口復用等一些*基本的概念和原理。
除此之外,我們還需要學(xué)習模擬電子、數字電子、C語(yǔ)言程序開(kāi)發(fā)以及原理圖和PCB(Printed Circuit Board,印刷電路板)設計等知識。只有扎實(shí)的掌握了這些知識,在進(jìn)行系統開(kāi)發(fā)的時(shí)候,才能順利地進(jìn)行原理設計、PCB布板、程序編寫(xiě)、系統聯(lián)調等工作。
二階段:
在掌握好一款單片機原理和應用的基礎上,開(kāi)始學(xué)習其他各家單片機,了解其獨有的功能和特點(diǎn)。
例如實(shí)際工作中若客戶(hù)要求低成本,那我們可以選用和泰、義隆、華邦等這類(lèi)臺灣芯片;如果客戶(hù)要求工業(yè)級的性能,那么*好從PIC、NEC、飛思卡爾、NXP等這些歐美和日式單片機中選擇;若要進(jìn)行功耗的開(kāi)發(fā),選用MSP430系列應該有一定優(yōu)勢;在進(jìn)行測量?jì)x器設計的時(shí)候,C8051和AduC842這類(lèi)數?;旌闲酒诛@得比較實(shí)用。
另外,平時(shí)要注意技術(shù)積累。在項目開(kāi)發(fā)過(guò)程中將一些常用的接口程序和控制算法整理成模塊或者函數,日后若在其他的項目開(kāi)發(fā)中有同樣或者接近的需求時(shí),原程序可以直接或者進(jìn)行少量改動(dòng)后使用,這樣一來(lái)會(huì )節約大量開(kāi)發(fā)成本。
三階段:
在實(shí)際的項目開(kāi)發(fā)過(guò)程中,不斷深入研究單片機應用技術(shù),不斷積累應用行業(yè)的專(zhuān)業(yè)知識。
有了扎實(shí)的單片機應用相關(guān)的基礎知識,并且熟悉掌握了幾款不同類(lèi)型單片機的開(kāi)發(fā)方法后,對于各種實(shí)際的應用項目,往往還需要理解和掌握外圍電路相關(guān)的原理和分析方法,并結合實(shí)際的應用背景,綜合考慮各種因素,才能設計出性能*優(yōu)、結構*合理的單片機應用系統。