色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

51單片機應用中5個常見問題總結

GReq_mcu168 ? 2017-12-06 09:53 ? 次閱讀

本文就51單片機應用中一些常見問題作個總結,這都是我實際碰到過的,因為文章篇幅所限,這些問題遠遠不足以表達單片機的常見問題。希望對初學者有所幫助,文中不完善的地方務請指點。謝謝!

1:C51編譯器如何區分位地址和字節地址

是靠預定義實現的,比如:sfr P0 = 0x80; sbit P0_0 = 0x80;前者聲明了P0端口地址位于0x80,后者說明了P0端口的bit0,即P0.0位于位地址空間0x80處。這2個0x80具有完全不同的含義,靠關鍵字sfr和sbit來區別。這樣當程序被編譯時,編譯器會依此編譯成相應的匯編語言。例如:

C51語句: P0 = 1;

P0聲明為sfr,因此編譯成:mov 80h,01h,將把0x01數據送入0x80單元,由于0x80單元物理上對應P0端口,因此,P0.0腳將輸出高電平(其實是呈現高阻態,P0口獨有的),其他.1-.7腳輸出低電平。

C51語句: P0_0 = 1;

P0_0聲明為sbit,因此編譯成:setb 80h,這將把位地址空間的0x80地址的bit的值置1。這個位正是P0口的bit0,執行后,P0.0將輸出高阻態。而P0.1-.7不會變化。

2:C51為什么要嵌套匯編

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

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

_proc_a:

mov a, r7

inc a

mov r7, a

ret

c語言在.h文件中聲明: extern unsigned char proc_a(unsigned char val);

調用時形如: retvalue = proc_a(0x11);

說明:

a:匯編程序如果帶參數,則需要在匯編程序前多加一個下劃線。而聲明它的地方不用加(偉福編譯器這么要求的)。

b:函數的形參中第一參數用R7傳遞,函數返回值用R7返回,這是C51的通用規范。其他參數都有相應規定。函數可以返回一個位,用psw的c位返回。c:上面的語句,執行順序是把0x11給R7,然后跳轉子程序,子程序將它加1后送回。

d:函數跳轉到匯編程序時,本區的R0-R7,A,B,PSW,DPTR等寄存器可以供子程序使用,不必考慮調用后是否要恢復這些常規資源。上例中,A的值被函數使用了,編程者不必恢復調用前的值。

3:51單片機的P0口特殊之處

許多新手都碰到這個問題,其實很簡單,這涉及到芯片的io腳是怎么做出來的。這對硬件工程師來說十分重要。TTL的io腳模型:

P1,P2,P3口都可以理解成左圖,注意vcc下面有個電阻,因此可以理解成:引腳輸出1的能力弱。地那邊沒有電阻,可以理解成引腳吸入電流能力強。而P0口,可以理解成右圖。這就是集電極開路輸出,也叫OC輸出。可以看出,當CTR=1時,三極管導通,引腳被接地;當ctr=0時,三極管截止,引腳浮空,也叫三態。這個端口這么做的目的是考慮P0口肩負讀寫數據和地址復用,這個關系要仔細看懂cpu時序圖。因此,P0口要加合適的上拉電阻,絕不要加下拉電阻。上拉電阻的選擇要看外部負載情況。

4:P1-3口如何輸入輸出

從上節的左圖可以看出。做輸出時,ctr=1則輸出強信號0,ctr=0則輸出弱信號1。當io腳做輸入時,應使ctr=0,這樣三極管截止。外部信號如果是1,則上拉電阻加強了這個1,單片機就會讀到1。當外部信號為0時,注意,必須將上拉電阻的上拉作用全部抵消,才能在引腳上得到0。

因此,對于程序來說,把io腳置1就處于接收狀態,當然也是輸出1狀態。程序置io口為1,讀取的信號是不是1就依靠外部電路了,如果外部電路沒有“吃掉”上拉電阻的電流,則讀取得到1,反之,雖然程序置io腳為1,但是讀取得到的就是0。

因此,如果用io腳的高電平驅動外部電路時,要小心外部電路把這個1“吃掉”從而輸出不了1。而作為輸入時,為0電平的外設必須足夠有能力將io腳拉低。所以,用io腳直接點亮led的時候,最好用反邏輯,就是輸出0,讓led亮。這樣能保證驅動能力。就是io腳接led的負端,led的正端過電阻接vcc。

因此,io腳輸出1時,外部電路將它強行接地是沒有關系的,而io腳輸出0的時候,外部電路強行接電源就會把io腳損壞。所以,程序加電之后,一般把所有io口都寫成1:MOV P0,0FFH。

P3口引腳復用,必須引腳都處于輸出1狀態。例如,把RXD腳輸出0,則它什么數據都讀不進來了,筆者早期曾調試一整天才發現串口收不到數據是沒有把RXD置1的原因,把時間都浪費在外圍了,當時很是汗顏。

5:有關晶振

單片機的晶振在內部可以簡化成一個反向器。當晶振輸入腳XI剛過坎壓、被認為是1的一瞬間,輸出腳XO就輸出0,這個0會帶動晶振使XI電壓下降,當降低到坎壓被認為是0的一瞬間,輸出腳XO就輸出1。這樣周而復始。

因此,用示波器觀察正常工作的晶振輸入腳XI時,得到的是一個不高不低的近似水平線。而XO則是幅值很大的正弦波。測量晶振輸入腳XI時,示波器表筆要打在X10檔上,否則,表筆就能把晶振弄停。

因此布線時,晶振輸入腳XI要盡量靠近晶振,而XO腳可稍遠。同時XO具有一定的驅動能力,某些芯片可以用它驅動其它時序電路(不推薦這么做,因為系統可靠性下降)。

寫到這里,才發覺51單片機的問題太多了,這篇文字簡直就是滄海一粟。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6035

    文章

    44554

    瀏覽量

    634668
  • 晶振
    +關注

    關注

    34

    文章

    2859

    瀏覽量

    68005
  • 51單片機
    +關注

    關注

    274

    文章

    5702

    瀏覽量

    123494

原文標題:電子設計之C51單片機常見問題

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    電子電路設計之C51單片機常見問題

    筆者在工作實際使用過AT89C2051、AT89C51、AT89C52等51單片機,本文就51單片機
    發表于 11-22 11:28 ?1w次閱讀
    電子電路設計之C<b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>常見問題</b>

    單片機開發過程常見問題

    單片機在組裝與開發過程總是會出現一些問題,導致過程不是那么順利的完成。今日分享一些單片機常見問題的解決辦法1.單片機EN8F609兼容PI
    發表于 09-11 16:33

    單片機的這5常見問題,你能解決嗎?

    單片機學習、考試,甚至在面試過程,有各種問題等待著我們,當然,常見的問題其實也不少,今天就梳理了5比較
    發表于 12-12 17:03

    單片機學習常見問題(持續更新) 精選資料分享

    單片機學習常見問題記錄
    發表于 07-16 06:14

    單片機面試常見問題及答案

    單片機面試常見問題及答案,單片機IO口開漏輸出和推挽輸出有什么區別?推挽輸出:既可以輸出低電平,也可以輸出高電平,可以直接驅動功耗不大的數字器件。導通損耗小、效率高、既提高電路的負載能力,又提高開關
    發表于 07-19 06:48

    51單片機串口中斷使用總結

    51單片機串口中斷使用總結,有程序,可以參考。
    發表于 03-28 10:00 ?13次下載

    有關51單片機有關晶振的問題總結(干貨)

    在初學51單片機的時候,總是伴隨很多有關于晶振的問題,其實晶振就是如同人的心臟,是血液的脈搏,把單片機的晶振問題搞明白了,51單片機的其他問
    的頭像 發表于 02-10 11:02 ?9165次閱讀

    51單片機經常使用的寄存器功能總結

    本文檔的主要內容詳細介紹的是51單片機經常使用的寄存器功能總結
    發表于 08-29 17:29 ?12次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>經常使用的寄存器功能<b class='flag-5'>總結</b>

    51單片機是什么?應該如何學習51單片機

    51 單片機是目前使用最多的單片機之一,那么什么是 51 單片機呢?作為新手,又該如何自學 51
    發表于 12-23 07:57 ?73次下載

    51單片機學習 基礎知識總結

    51單片機學習 基礎知識總結
    發表于 11-11 19:21 ?39次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>學習    基礎知識<b class='flag-5'>總結</b>

    keil uvsion551單片機的學習總結(不定時更新)

    keil uvsion551單片機的學習總結(不定時更新)
    發表于 11-21 14:51 ?10次下載
    keil uvsion<b class='flag-5'>5</b>與<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的學習<b class='flag-5'>總結</b>(不定時更新)

    總結:30單片機常見問題解決辦法!

    總結:30單片機常見問題解決辦法!
    的頭像 發表于 10-17 17:46 ?3130次閱讀
    <b class='flag-5'>總結</b>:30<b class='flag-5'>個</b><b class='flag-5'>單片機</b><b class='flag-5'>常見問題</b>解決辦法!

    單片機常見問題的解決思路和解決辦法

    30單片機常見問題解決辦法!
    的頭像 發表于 09-18 16:51 ?2425次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>常見問題</b>的解決思路和解決辦法

    stc51單片機怎么燒錄

    步驟 常見問題與解決方法 STC51單片機是一種常見的8位單片機,廣泛應用于各種嵌入式系統。它具有高性能、低成本、易于學習和使用等優點。ST
    的頭像 發表于 01-02 17:41 ?3371次閱讀

    51單片機晶振的問題總結

    電子發燒友網站提供《51單片機晶振的問題總結.doc》資料免費下載
    發表于 09-07 09:32 ?0次下載
    主站蜘蛛池模板: 俄罗斯14一18处交| 校花被扒衣吸乳羞羞漫画| 四虎影5151毛片在线看| 香蕉动漫库| 成人免费网址在线| 国产在线精彩视频| 美目盼兮amy198281| 欧洲精品一区二区不卡观看| 欧美激情视频二区| 亚州性夜夜射在线观看| 国产人成高清在线视频99| 素人约啪第五季| 美女厕所撒尿ass| 爽爽影院免费观看| AV97最新无码喷水叫床| 久久精品电影| 无码国产成人午夜在线观看不卡| nu77亚洲综合日韩精品| 伦理片a在线线2| 亚洲色播永久网址大全| 国产精品久久免费视频| 天龙八部慕容属性加点| 国产成人高清精品免费5388密 | 草莓视频免费在线观看| 火影忍者高清无码黄漫| 日美一级毛片| G0GO人体大尺香蕉| 小黄文污到你湿| 国产精品伦一区二区三级视频| 美女扒开腿让男生桶免费看动态图| 我就去色色| 芳草地在线观看免费观看| 久久免费精品国产72精品剧情| 亚洲精品一区二区在线看片| 国产精品涩涩涩视频网站| 影音先锋av电影| 午夜福利院电影| 九九久久国产| 日本女人下面毛茸茸| 高H高肉强J短篇NP| 午夜伦理在线观看|