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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AT89S51單片機(jī)并行I/O端口的擴(kuò)展

          AT89S51單片機(jī)并行I/O端口的擴(kuò)展

          作者: 時(shí)間:2009-11-03 來源:網(wǎng)絡(luò) 收藏

            1 引言

            單片機(jī)面向工業(yè)控制領(lǐng)域,控制功能強(qiáng),在工業(yè)測(cè)控系統(tǒng)、智能儀表、智能通信產(chǎn)品、智能家用電器和智能終端設(shè)備等領(lǐng)域得到廣泛應(yīng)用。最常用的80C51系列單片機(jī)有4個(gè)并行端口(P0,P1,P2,P3端口),但對(duì)稍復(fù)雜的應(yīng)用系統(tǒng),真正可供用戶使用的并行端口只有P1端口,且常因I2C和SPI的器件需占用P1端口,迫使用戶不得不并行端口以滿足實(shí)際需要。

            這里研究80C51系列單片機(jī)中的并行I/O端口的,采用并行可編程接口器件 擴(kuò)展并行I/O端口,并在擴(kuò)展的I/O端口上實(shí)現(xiàn)數(shù)碼管動(dòng)態(tài)顯示。

            2 系統(tǒng)設(shè)計(jì)

            2.1 系統(tǒng)硬件設(shè)計(jì)

             接口方法(圖1):P0接的地址數(shù)據(jù)線AD0~AD7;單片機(jī)的ALE接8155的ALE;8155的CE與單片機(jī)的 P2.6相連接;8155的復(fù)位線RESET與單片機(jī)復(fù)位線RESET相連接;8155的RD和WR與的RD和WR一一對(duì)應(yīng)相連;IO/M 和P2.7相連。

          AT89S51單片機(jī)并行I/O端口的擴(kuò)展

            為節(jié)省I/O端口線,常使用數(shù)碼管動(dòng)態(tài)顯示方式。將所有數(shù)碼管的a,b,c,d,e,f,g,sp引線并聯(lián)在一起,由一個(gè)8位I/O端口控制,而公共端由另一個(gè)I/O端口控制。動(dòng)態(tài)方式顯示時(shí),各數(shù)碼管分時(shí)輪流選通,在某一時(shí)刻只選通一位數(shù)碼--管,并送出相應(yīng)的段碼,在另一時(shí)刻選通另一位數(shù)碼管。并送出相應(yīng)的段碼。依此規(guī)律循環(huán),即可使各位數(shù)碼管顯示將要顯示的字符。雖然這些字符是在不同的時(shí)刻分別顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可給人以同時(shí)顯示的感覺。

             8155的PB0~PB7接3個(gè)共陰極數(shù)碼管的a~dp引腳,PA0~PA2接3個(gè)共陰極數(shù)碼管的com端,B端口送段碼.A端口送位選通;共陰極數(shù)碼管的a~dp引腳分別接上拉電阻以提高數(shù)碼管顯示的亮度。系統(tǒng)硬件電路如圖1所示。

            2.2 系統(tǒng)軟件設(shè)計(jì)

            系統(tǒng)軟件采用匯編語言編寫,設(shè)計(jì)原理為L(zhǎng)ED數(shù)碼管動(dòng)態(tài)掃描,8155初始化設(shè)置A端口,B端口為輸出端口,R5中查表項(xiàng)數(shù)為0,R3中為位選通碼,采用查表法查出段碼,送至8155的B端口,LED數(shù)碼管位選通碼送至A端口,延時(shí),在最左邊的數(shù)碼管上顯示0;查表項(xiàng)數(shù)加1,位選通左移,查出段碼送至8155的B端口,位選通碼送至A端口,延時(shí),在中間的數(shù)碼管上顯示1,3個(gè)數(shù)碼管輪流顯示循環(huán)往復(fù)。圖2為軟件流程。

          軟件流程

            3 設(shè)計(jì)及調(diào)試

            3.1

            是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng)。對(duì)于80C51系列單片機(jī),最小系統(tǒng)一般應(yīng)包括:?jiǎn)纹瑱C(jī)、晶振電路、復(fù)位電路、顯示輸出等。

            3.1.1 最小系統(tǒng)電路的組成

            圖3為電路圖,其組成有:

          單片機(jī)最小系統(tǒng)電路圖

            (1)單片機(jī):1片AT89S51;(2)晶振電路:典型的晶振取12 MHz,C2和C3選用30 μF的電容;(3)復(fù)位電路:具有上電復(fù)位和手動(dòng)復(fù)位功能的復(fù)位電路,由電容串聯(lián)電阻并在電容上并接復(fù)位按鍵構(gòu)成,由圖3并結(jié)合“電容電壓不能突變”的性質(zhì),可知,當(dāng)系統(tǒng)上電或復(fù)位鍵按下后,RST引腳均會(huì)出現(xiàn)高電平,高電平持續(xù)時(shí)間由電路的RC值決定。典型的51單片機(jī)當(dāng)RST引腳的高電平持續(xù)2個(gè)機(jī)器周期以上將復(fù)位。所以,適當(dāng)組合RC的取值就可保證可靠復(fù)位。設(shè)計(jì)中C1取10μF,R2取1 kΩ;(4)對(duì)于31引腳(EA/Vpp),當(dāng)接高電平時(shí),單片機(jī)在復(fù)位后從內(nèi)部ROM的0000H開始執(zhí)行;當(dāng)接低電平時(shí),復(fù)位后直接從外部ROM的 0000H開始執(zhí)行。此設(shè)計(jì)將程序燒寫到AT89S51內(nèi)部ROM中,因此,31引腳(EA/Vpp)接高電平。(5)為在P1端口實(shí)現(xiàn)LED燈顯示, P1.7端口上外接發(fā)光二極管,發(fā)光二極管接3.6 kΩ的上拉電阻。

            3.1.2 單片機(jī)最小系統(tǒng)的調(diào)試

            對(duì)單片機(jī)最小系統(tǒng)進(jìn)行測(cè)試:將P1.7引腳所接的LED二極管閃爍程序代碼燒寫到AT89S51單片機(jī)片內(nèi)ROM中,在單片機(jī)最小系統(tǒng)電路板上插上單片機(jī),接通電源,若發(fā)光二極管閃爍則說明最小系統(tǒng)電路工作正常,反之則需要檢查錯(cuò)誤。

            3.2 系統(tǒng)電路的調(diào)試

            3.2.1 調(diào)試方法

            在最小系統(tǒng)電路中按照?qǐng)D1完成并行I/O端口擴(kuò)展的系統(tǒng)硬件電路。編寫系統(tǒng)軟件程序并在Keil C軟件環(huán)境下編譯、連接、調(diào)試程序,修改錯(cuò)誤。用ISP編程器將實(shí)驗(yàn)程序代碼寫入AT89S51單片機(jī)片內(nèi)ROM中。在單片機(jī)系統(tǒng)硬件電路板上插上單片機(jī),開機(jī)運(yùn)行,若3個(gè)數(shù)碼管依次顯示“0”、“1”、“2”,則說明系統(tǒng)工作正常。

            3.2.2 調(diào)試中出現(xiàn)的問題及原因

            在調(diào)試初期,由于未考慮8155復(fù)位比單片機(jī)復(fù)位慢,一開始未加100 ms延時(shí)程序,系統(tǒng)運(yùn)行時(shí)出現(xiàn)3位數(shù)碼管顯示均為“8.”。為找出發(fā)生此現(xiàn)象的原因,將數(shù)碼管改由AT89S51單片機(jī)P1口送段碼,P2口送位選通,將動(dòng)態(tài)顯示的程序做相應(yīng)修改,調(diào)試通過后用ISP編程器將代碼寫入AT89S51單片機(jī)片內(nèi)ROM中,開機(jī)運(yùn)行,3個(gè)數(shù)碼管動(dòng)態(tài)顯示“0”、“1”、 “2”。此實(shí)驗(yàn)現(xiàn)象說明8155器件工作不正常。按照?qǐng)D1連線,核實(shí)連線及端口地址無誤后,再次用ISP編程器將實(shí)驗(yàn)程序代碼寫入AT89S51單片機(jī)片內(nèi)ROM中,開機(jī)運(yùn)行,3個(gè)數(shù)碼管顯示均為“8.”。此現(xiàn)象說明8155器件工作不正常的原因不是硬件電路的問題。研究8155的特性參數(shù)后發(fā)現(xiàn)8155 復(fù)位比單片機(jī)復(fù)位慢,在系統(tǒng)初始化時(shí)存在時(shí)差。在系統(tǒng)復(fù)位后應(yīng)加100 ms的延時(shí),以保證8155完成復(fù)位工作。在設(shè)計(jì)實(shí)驗(yàn)程序開始加100 ms延時(shí)程序,將實(shí)驗(yàn)程序代碼寫入AT89S51單片機(jī)片內(nèi)ROM中,開機(jī)運(yùn)行,3個(gè)數(shù)碼管動(dòng)態(tài)顯示“0”、“1”、“2”,達(dá)到設(shè)計(jì)目標(biāo)。

            4 結(jié)論

            通過AT89S51與Intel 8155器件接口實(shí)現(xiàn)了并行I/O端口的擴(kuò)展,實(shí)現(xiàn)了3個(gè)數(shù)碼管動(dòng)態(tài)顯示。由實(shí)驗(yàn)可知,采用8155擴(kuò)展并行I/O端口方便、實(shí)用、成本低、且擴(kuò)展的FO 端口可編程。由于Intel 8155內(nèi)部自帶256B的SRAM和一個(gè)14位的加1計(jì)數(shù)器,因此在單片機(jī)外擴(kuò)展8155不僅增加了并行I/O端口,同時(shí)豐富了SRAM與計(jì)數(shù)器等資源。值得注意的是8155復(fù)位比單片機(jī)復(fù)位慢,在程序開始應(yīng)加延時(shí)程序,調(diào)整系統(tǒng)初始化時(shí),應(yīng)調(diào)整Intel 8155和單片機(jī)的復(fù)位時(shí)差。

          51單片機(jī)相關(guān)文章:51單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)視頻教程


          單片機(jī)相關(guān)文章:單片機(jī)工作原理


          上拉電阻相關(guān)文章:上拉電阻原理


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(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); })();