<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)學(xué)習(xí)之五:基本I/O口試驗(yàn)-點(diǎn)亮二極管

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/201609/297024.htm

            1、 試驗(yàn)現(xiàn)象:

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

            2、 試驗(yàn)?zāi)康模?/p>

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

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

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

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

            

           

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

            XTAL1和XTAL2端:

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

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

            RST端:

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

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

            EA/VPP:

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

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

            ALE

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

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

            PSEN

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

            P1口:

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

            P3口:

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

            P2口:

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

            P0口:

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

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

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

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

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

            4、試驗(yàn)程序如下:

            org 0000h ;(1)

            clr p1.5 ;(2)

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

            ajmp loop ;(4)

            end ;(5)

            注釋

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

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

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

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

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

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

            5、 課后練習(xí)

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

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



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

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();