《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 其他 > 教程:51單片機(jī)IO口應(yīng)用實(shí)驗(yàn)

教程:51單片機(jī)IO口應(yīng)用實(shí)驗(yàn)

2023-01-31
來(lái)源:滑小稽筆記
關(guān)鍵詞: 51單片機(jī) 寄存器 IO口

  IO(Input/Output),即輸入輸出端口,就是單片機(jī)的IO口,STC89C52RC單片機(jī)具有4組IO口,P0~P3,每一組IO都有8個(gè)IO口,且8個(gè)IO口都可以單獨(dú)讀寫(xiě),也就是說(shuō)STC89C52RC單片機(jī)具備32個(gè)可以單獨(dú)讀寫(xiě)的IO口,這些端口可以通過(guò)程序來(lái)控制輸出高低電平,高電平5V,低電平0V,也可以通過(guò)程序讀取端口輸入的電平狀態(tài),IO端口的操作有兩種方式,一種是位帶操作,這種操作是單獨(dú)控制其中某一個(gè)IO端口,還有一種是總線式操作,就是可以同時(shí)給P0~P3這4組IO中的其中一組進(jìn)行賦值,同時(shí)令8個(gè)IO口同時(shí)輸出或者輸入信號(hào)。

  2.1 位帶操作

  2.1.1 原理圖

251.JPG

  2.1.2 數(shù)據(jù)的輸出

250.JPG

  第13行:利用sbit關(guān)鍵字定義一個(gè)端口名稱,把P1.0端口定義成LED,之后的開(kāi)發(fā)中,所有的端口定義都需要用到sbit關(guān)鍵字,這個(gè)格式需要牢記

  第22行~第27行:延時(shí)函數(shù),通過(guò)2級(jí)循環(huán)完成的延時(shí)功能,由于單片機(jī)外部時(shí)鐘是12MHz,所以程序執(zhí)行起來(lái)會(huì)非常快,如果沒(méi)有延時(shí)函數(shù),在這個(gè)實(shí)驗(yàn)中,就無(wú)法實(shí)現(xiàn)LED的閃爍功能(因?yàn)槿搜鄄](méi)有那么快)

  第35行:控制P1.0輸出低電平,即0V,由于硬件電路LED的正極通過(guò)一個(gè)電阻接到了5V上,根據(jù)二極管的單向?qū)щ娦裕?dāng)負(fù)極為0V時(shí),LED就會(huì)發(fā)光,當(dāng)負(fù)極為5V時(shí),LED就會(huì)熄滅,電阻起到了限制電流的作用,防止電流過(guò)大燒毀LED

  第36行:調(diào)用延時(shí)函數(shù),設(shè)置延時(shí)500ms

  第37行:控制P1.0輸出高電平,即5V。

  注:主循環(huán)里面的不停地將P1.0端口設(shè)置成0V和5V的過(guò)程就可以控制LED不停的亮滅,其中延時(shí)函數(shù)就是為了讓人眼能夠看到這個(gè)過(guò)程,如果沒(méi)有延時(shí)函數(shù),就會(huì)因?yàn)槌绦驁?zhí)行的過(guò)快導(dǎo)致無(wú)法看到閃爍的效果。

  2.1.3 數(shù)據(jù)的輸入

249.JPG

  這段程序和上一段數(shù)據(jù)輸出的程序差不多,重點(diǎn)看以下幾個(gè)位置

  第14行:利用關(guān)鍵字sbit定義端口P1.7在程序中的名稱為KEY

  第35行~第43行:檢測(cè)按鍵是否按下的流程

  (1)檢測(cè)到P1.7端口為低電平,即0V,因?yàn)榘存I的一端接單片機(jī)P1.7端口,另一端接在了GND上,所以按下后端口被強(qiáng)制拉到0V,抬起后,單片機(jī)P1.7端口到恢復(fù)5V

  (2)延時(shí)一段時(shí)間(延時(shí)去抖動(dòng)):延時(shí)的原因是由于機(jī)械按鍵按下后不是嚴(yán)格的按下,而是會(huì)有一段電平不穩(wěn)定的時(shí)間,所以需要用程序?qū)⑦@段時(shí)間的電平忽略掉

  (3)經(jīng)過(guò)10ms后再一次檢測(cè)到P1.7位低電平,這時(shí),才能夠確定按鍵的確按下了,此時(shí)P1.0輸出低電平點(diǎn)亮LED

  第44行~第47行:按鍵沒(méi)有按下時(shí),P1.7是默認(rèn)的高電平,此時(shí)控制P1.0輸出高電平

  2.2 總線操作

  2.2.1 原理圖

248.JPG

  2.2.2 數(shù)據(jù)的輸出

247.JPG

  當(dāng)控制這種多個(gè)LED的時(shí)候,位帶操作就顯得比較麻煩,因?yàn)楣鈙bit定義就需要8個(gè),所以此時(shí)可以直接控制P1寄存器來(lái)控制LED狀態(tài),通過(guò)直接將數(shù)據(jù)寫(xiě)入P1寄存器來(lái)控制LED狀態(tài)。

  第28行:定義P1寄存器數(shù)據(jù),將8位二進(jìn)制代碼轉(zhuǎn)換成16進(jìn)制數(shù)據(jù),由于LED接在了P1端口上,所以每個(gè)燈的狀態(tài)如下表所示

246.JPG

  其中LED7為數(shù)據(jù)最高位,所以數(shù)據(jù)應(yīng)該是1111 1110,而不是0111 1111

  第32行~第36行:利用for循環(huán),循環(huán)8次將數(shù)據(jù)送入P1寄存器,P1寄存器的數(shù)據(jù)會(huì)直接映射在P1端口上。

  2.2.3 數(shù)據(jù)的輸入

245.JPG

  數(shù)據(jù)輸入這一部分代碼明顯少了很多,因?yàn)檫@里面不需要延時(shí)函數(shù),所以直接刪去了延時(shí)函數(shù),在編程時(shí),如果沒(méi)有用到的函數(shù)可以直接注釋掉或者刪除,因?yàn)槿绻泻瘮?shù)沒(méi)有調(diào)用,編譯會(huì)報(bào)警告,但是并不影響程序執(zhí)行結(jié)果,重點(diǎn)看17行的代碼,將P3讀取到的數(shù)據(jù)直接寫(xiě)入P1寄存器中,因?yàn)?個(gè)按鍵接在了P3端口上,LED接在了P1端口上,所以剛好可以通過(guò)按鍵來(lái)實(shí)現(xiàn)LED的控制。



更多信息可以來(lái)這里獲取==>>電子技術(shù)應(yīng)用-AET<<

mmexport1621241704608.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 1024手机基地在线观看 | 在线看a级片 | 国产成人精品在线 | 欧美日韩大尺码免费专区 | 久久精品国产亚洲麻豆 | 欧美日韩视频一区三区二区 | 国产一区二区高清 | 天天干天天操天天做 | 粉嫩极品国产在线播放 | 日韩激情视频在线 | 亚洲国产精品二区久久 | 免费看色网站 | 欧美精品午夜久久久伊人 | 手机看高清特黄a大片 | 国内精品在线播放 | 最新亚洲情黄在线网站 | 国产特黄特色的大片观看免费视频 | 欧美一级视频免费观看 | 在线免费观看日韩 | www.伦理片| 欧美精品第二页 | 天天干天天舔 | 免费二级c片在线观看a | 亚洲一区在线视频 | 久久综合综合久久狠狠狠97色 | 在线a毛片免费视频观看 | 亚洲an日韩专区在线 | 日韩在线播放中文字幕 | 色视频在线免费观看 | 欧美色图第二页 | 国产在线精品一区免费香蕉 | 新有菜在线 | 噜噜噜天天躁狠狠躁夜夜精品 | 午夜视频国产 | 在线观看黄色影片 | 天天擦天天干 | 国产精品久久久久9999高清 | 中文字幕精品视频在线观看 | 黄网址免费 | 免费观看毛片视频 | 天天射天天操天天色 |