<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 單片機關(guān)鍵技術(shù)基礎詳解(四)

單片機關(guān)鍵技術(shù)基礎詳解(四)

作者: 時(shí)間:2012-03-28 來(lái)源:網(wǎng)絡(luò ) 收藏

單片機關(guān)鍵技術(shù)基礎詳解(四)

被廣泛應用于工業(yè)控制,家電,消費電子,醫療電子,儀表測量等領(lǐng)域,為應廣大初級電子工程師/愛(ài)好者之需,電子發(fā)燒友網(wǎng)隆重策劃整合推出《基礎詳解》系列技術(shù)文章,以后會(huì )陸續推出其他章節,敬請廣大工程師朋友繼續關(guān)注和留意。應廣大工程師網(wǎng)友對前三個(gè)章節熱烈反響,電子發(fā)燒友網(wǎng)會(huì )再接再厲為各位工程師網(wǎng)友推出更多技術(shù)精品系列文章,以饗讀者。

  一、電子電路設計之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ì )變化。

  2:C51為什么要嵌套匯編

  51單片機一個(gè)顯著(zhù)優(yōu)點(diǎn)就是指令執行時(shí)間固定,因此可以適應時(shí)序要求嚴格的場(chǎng)合。例如符合ISO7816協(xié)議的cpu卡的讀寫(xiě),對時(shí)序要求比較嚴格。其實(shí)就是用io腳做出來(lái)的同步半雙工串口。支持cpu卡的程序一般比較龐大,需要用c51來(lái)組織,但是由于c編譯的不確定性,必須把底層程序封裝成匯編語(yǔ)言模塊嵌入到工程中。這就帶來(lái)幾個(gè)問(wèn)題:如何聲明函數、參數如何傳遞等。限于篇幅,不能說(shuō)得很細。下面舉例:

  匯編程序單獨保存一個(gè)文件,加入到工程中,函數如下:

  _proc_a:


上一頁(yè) 1 2 3 4 5 6 7 8 9 10 下一頁(yè)

關(guān)鍵詞: 單片機 關(guān)鍵技術(shù)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>