<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è) > 嵌入式系統 > 設計應用 > 單片機學(xué)習之五:基本I/O口試驗-點(diǎn)亮二極管

單片機學(xué)習之五:基本I/O口試驗-點(diǎn)亮二極管

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

  實(shí)驗一、基本口試驗:點(diǎn)亮

本文引用地址:http://dyxdggzs.com/article/201609/297024.htm

  1、 試驗現象:

  8個(gè)間隔發(fā)光。

  2、 試驗目的:

  了解最簡(jiǎn)單的單片機程序的編寫(xiě)方法;

  了解單片機口驅動(dòng)的方法

  3、 試驗任務(wù)分析:

  要想讓二極管按照我們的要求發(fā)光,首先要搞清楚電路的連接形式,我們先只看和這部分內容有關(guān)的電路。當JMP0跳線(xiàn)接在12位置時(shí)(選通二極管顯示),電路如下圖所示:

  

 

  下面,我分別把單片機各管腳功能作一簡(jiǎn)單解釋?zhuān)?/p>

  XTAL1和XTAL2端:

  由于單片機是一種時(shí)序電路,工作的時(shí)候必須外加時(shí)鐘周期,沒(méi)有時(shí)鐘周期,就不能執行程序代碼,單片機就不能工作。

  XTAL1和XTAL2即為外接時(shí)鐘引腳。時(shí)鐘的產(chǎn)生有兩種方式,內部方式產(chǎn)生和外部方式產(chǎn)生。該電路是內部方式產(chǎn)生時(shí)鐘的典型電路,內部時(shí)鐘的晶振頻率一般是4M~12M之間,學(xué)習板上用的是12M的晶振,外接兩個(gè)諧振電容。該電容的典型值是30pf。

  RST端:

  RST是復位端,簡(jiǎn)單的說(shuō),單片機的復位和計算機的重啟動(dòng)是一樣的概念。如何進(jìn)行復位呢?只要在RST端加上高電平就可以了。

  圖示電路也是一個(gè)典型的復位電路,加電瞬間,電容兩端相當于短路,RST端產(chǎn)生一個(gè)高電平,使得單片機復位。然后隨著(zhù)電容充電,RST電壓慢慢下降,當降低到低電平時(shí),單片機開(kāi)始正常工作。同樣,在按下按鍵時(shí),RST也產(chǎn)生一個(gè)高電平,單片機也被復位。下載程序的時(shí)候,應該拔下RST跳線(xiàn),即可斷開(kāi)復位電路,避免串入干擾信號。

  EA/VPP:

  EA端是內部程序存儲器和外部程序存儲器的選擇端,當EA=1時(shí),訪(fǎng)問(wèn)片內程序存儲器,當EA=0時(shí),訪(fǎng)問(wèn)片外程序存儲器。對于我們的學(xué)習板來(lái)說(shuō),由于A(yíng)T89S52自帶8k的程序存儲器,沒(méi)有擴展外部程序存儲器,所以應該接高電平。

  VPP是引腳的第二功能,暫且不介紹了。

  ALE

  地址鎖存允許信號。在擴展了外部程序存儲器的情況下,當單片機訪(fǎng)問(wèn)外部程序存儲器時(shí),ALE輸出低8位地址的鎖存信號。在本學(xué)習板上沒(méi)有用到這個(gè)端子.

  PROG為引腳的第二功能,暫且不介紹了,有興趣的同學(xué)可以查詢(xún)相關(guān)教材。

  PSEN

  外部程序存儲器讀選通信號,由于在學(xué)習板上沒(méi)有擴展外部程序存儲器,所以這個(gè)腳也不用。

  P1口:

  P1口可作為通用的口使用。在本電路中,P1.5口外接蜂鳴器(其余幾個(gè)和本試驗無(wú)關(guān),暫不介紹)。上圖可知,當P1.5輸出高電平時(shí),對應的三極管導通,蜂鳴器發(fā)聲。(同學(xué)可能會(huì )問(wèn),這個(gè)功能好像和我們的試驗任務(wù)沒(méi)有什么關(guān)系啊,我一會(huì )在給大家解釋)。

  P3口:

  P3口是雙功能口,第一種功能和我們P1口類(lèi)似,也可以作通用的I/O口使用。第二種功能和單片機的串行通信,中斷等功能有關(guān),我們暫且不介紹。以后用到相應功能在給大家介紹。

  P2口:

  P2也可以作為輸入口或者輸出口來(lái)用,在試驗板上,P2口的作用在于選通數碼管顯示。在本例中我們不用。

  P0口:

  P0口在我們這個(gè)試驗中扮演著(zhù)重要的角色,從圖上可知,發(fā)光二極管是由P0口驅動(dòng)的。且慢,大家可能會(huì )發(fā)現,P0口是通過(guò)74AS244驅動(dòng)發(fā)光二極管的,這是為什么呢?在這里,74AS244是個(gè)緩沖器,它的作用在于隔離單片機和外圍電路,這樣可以保護單片機,并且能夠增強單片機的輸出驅動(dòng)能力。在該電路中,如果我們去掉74AS244,而直接把二極管接在P0輸出口上,也是可以的,這是因為電源通過(guò)上拉電阻能夠提供較大的驅動(dòng)電流。

  同時(shí)大家要注意,當P0口作為輸出口使用的時(shí)候,它的輸出級是漏級開(kāi)路的形式,所以它應該外接上拉電阻,這時(shí)才能有高電平輸出。(我們的板子上面用了一個(gè)排阻。漏級開(kāi)路的輸出級類(lèi)似于ttl電路中集電極開(kāi)路的輸出級,大家可以參考隨便一本數電教材,關(guān)于oc門(mén)的原理介紹,上面說(shuō)得非常清楚。)

  下面我們來(lái)看看怎樣才能使得P0口驅動(dòng)的8個(gè)二極管按照要求發(fā)光。我們發(fā)現,只要P0口相應的一個(gè)引腳輸出低電平的時(shí)候,則對應的二極管發(fā)光。例如:欲LED1發(fā)光,只需要P0.0引腳輸出相應的低電平就可以啦!

  因此,如果我們需要8個(gè)二極管間隔發(fā)光,在板子上,從左至右依次為亮滅,則P0口的輸出值應該是:01010101,即為55H。

  好啦,分析清楚之后,我們可以開(kāi)始寫(xiě)程序啦!

  4、試驗程序如下:

  org 0000h ;(1)

  clr p1.5 ;(2)

  loop: mov p0,#55h ;(3)

  ajmp loop ;(4)

  end ;(5)

  注釋

  (1)、org是個(gè)偽指令,也就是說(shuō)它在匯編時(shí)不產(chǎn)生目標代碼。(大家可以在medwin環(huán)境里打開(kāi)反匯編窗口看看就明白啦。)它一般出現在每段源程序或者數據塊的開(kāi)始,指明此語(yǔ)句后面的程序或者數據塊的起始地址。我們編寫(xiě)好的程序是存放在單片機的程序存儲器中的,它的可尋址空間是64k,即0000h~0ffffh。這個(gè)語(yǔ)句表示我們的程序從程序存儲器地址為0000h單元開(kāi)始存放。

  (2)、從電路圖上面可以看到P1.5連接蜂鳴器,所以這個(gè)語(yǔ)句的意思是,把P1.5置零,不讓蜂鳴器響。由于單片機復位以后,P1口的內容為FFH,這樣蜂鳴器就會(huì )一直響。所以要把該端子置零。當然,如果你不怕吵,這句話(huà)也可以不寫(xiě)。

  (3)、給P0口賦值55H,使得8個(gè)二極管間隔發(fā)光。

  (4)、跳轉回標記為loop的指令。(注ljmp指令也具有同樣的功能,兩者區別是:ajmp只能在2k字節內轉移,而ljmp可以在64k字節內轉移。本程序用ajmp就足夠了。)

  (5)、這同樣也是一條偽指令,告訴我們程序到這里就結束啦。

  好啦,然后把這個(gè)程序進(jìn)行編譯,下載,你就會(huì )看到學(xué)習板上的發(fā)光二極管乖乖的按照你的指令工作了。

  5、 課后練習

  (1)、學(xué)習該程序中出現的知識點(diǎn)涉及到的理論知識,包括I/O口,程序存儲器,數據存儲器,和使用到的指令。

  (2)、編寫(xiě)程序,使得發(fā)光二極管從左到右四個(gè)亮,四個(gè)不亮



關(guān)鍵詞: I/O 二極管

評論


相關(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>