單片機設計經(jīng)驗技巧精華集錦(五)
第五步:學(xué)會(huì )A/D轉換
MAP430單片機帶有多通道12位A/D轉換器,通過(guò)這些A/D轉換器可以使單片機操作模擬量,顯示和檢測電壓、電流等信號。學(xué)習時(shí)注意模擬地與數字地、參考電壓、采樣時(shí)間,轉換速率,轉換誤差等概念。使用A/D轉換功能的簡(jiǎn)單的例子是設計一個(gè)電壓表。
第六步:學(xué)會(huì )PCI、I2C接口和液晶顯示器接口
這些接口的使用可以使單片機更容易連接外部設備,在擴展單片機功能方面非常重要。
第七步:學(xué)會(huì )比較、捕捉、PWM功能
這些功能可以使單片機能夠控制電機,檢測轉速信號,實(shí)現電機調速器等控制起功能。
如果以上七步都學(xué)會(huì ),就可以設計一般的應用系統,相當于學(xué)會(huì )十招降龍十八掌,可以出手攻擊了。
第八步:學(xué)習USB接口、TCP/IP接口、各種工業(yè)總線(xiàn)的硬件與軟件設計
學(xué)習USB接口、TCP/IP接口、各種工業(yè)總線(xiàn)的硬件與軟件設計是非常重要的,因為這是當前產(chǎn)品開(kāi)發(fā)的發(fā)展方向。
三、電子電路設計之C51單片機常見(jiàn)問(wèn)題
筆者在工作中實(shí)際使用過(guò)AT89C2051、AT89C51、AT89C52等51單片機,后來(lái)應用臺灣新茂、華邦等廠(chǎng)家的51單片機。實(shí)踐中遇到許多問(wèn)題,都是書(shū)本上沒(méi)有的。我印象中,書(shū)本上的知識只有一頁(yè)插圖了,就是cpu的時(shí)序圖。最初直接用匯編寫(xiě)程序,然后是C51嵌套匯編。編譯器曾用偉福系列編譯器,后來(lái)使用keil等,感覺(jué)這些編譯器大同小異。需要熟練的C語(yǔ)言基礎,加上單片機應用的特殊性。
本文就51單片機應用中一些常見(jiàn)問(wèn)題作個(gè)總結,這都是我實(shí)際碰到過(guò)的,因為文章篇幅所限,這些問(wèn)題遠遠不足以表達單片機的常見(jiàn)問(wèn)題。希望對初學(xué)者有所幫助,文中不完善的地方務(wù)請指點(diǎn)。謝謝!
1:C51編譯器如何區分位地址和字節地址
是靠預定義實(shí)現的,比如:sfr P0 = 0x80; sbit P0_0 = 0x80;前者聲明了P0端口地址位于0x80,后者說(shuō)明了P0端口的bit0,即P0.0位于位地址空間0x80處。這2個(gè)0x80具有完全不同的含義,靠關(guān)鍵字sfr和sbit來(lái)區別。這樣當程序被編譯時(shí),編譯器會(huì )依此編譯成相應的匯編語(yǔ)言。例如:
C51語(yǔ)句: P0 = 1;
P0聲明為sfr,因此編譯成:mov 80h,01h,將把0x01數據送入0x80單元,由于0x80單元物理上對應P0端口,因此,P0.0腳將輸出高電平(其實(shí)是呈現高阻態(tài),P0口獨有的),其他.1-.7腳輸出低電平。
C51語(yǔ)句: P0_0 = 1;
P0_0聲明為sbit,因此編譯成:setb 80h,這將把位地址空間的0x80地址的bit的值置1。這個(gè)位正是P0口的bit0,執行后,P0.0將輸出高阻態(tài)。而P0.1-.7不會(huì )變化。
評論