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

          新聞中心

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

          AT89S51單片機并行I/O端口的擴展

          作者: 時間:2009-09-23 來源:網(wǎng)絡(luò) 收藏

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

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

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

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

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



          關(guān)鍵詞: 擴展 并行 單片機 AT89S51

          評論


          相關(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); })();