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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 單片機EM78P156的I/O口復用技巧

          單片機EM78P156的I/O口復用技巧

          作者: 時間:2013-10-16 來源:網(wǎng)絡(luò) 收藏

          0 引言
          大多設(shè)計中都需要很多的引腳來實現(xiàn)各種各樣的輸入檢測和輸出顯示或控制功能。這在引腳數(shù)不能再增加的前提下。常常會顯得引腳數(shù)不夠。所以能否把芯片的固有資源發(fā)揮到極致,往往是決定此系統(tǒng)性價比的關(guān)鍵。本文借鑒軟件操作系統(tǒng)的分時復用原理,來把任務(wù)分成多個時間片,在不同的時間片執(zhí)行不同的任務(wù)。從而實現(xiàn)了較少I/O口的多功能控制。

          1 N的主要功能

          N是臺灣義隆公司推出的8位,圖1所示是該芯片的引腳排列圖。該器件的主要功能如下:

          ◇工作電壓:2.5~5.5 V;

          ◇工作溫度范圍:-40℃~85℃;

          ◇工作頻率在晶振模式時的范圍為:DC~20MHz(5V)、DC~8MHz(3V)和DC~4MHz(2.5V);而在外部RC振蕩時的頻率范圍為:DC~4MHz (5V),DC~4 MHz(3V)和DC~4MHz(2.5V);

          ◇低功耗:工作在5V/4MHz時工作電流小于2mA,工作在3V/32kHz時的工作電流20μA,工作在休眠模式時的工作電流1μA;

          ◇帶有1K×13B程序空間;

          ◇具有雙向I/O口;

          ◇有5級堆棧深度;

          ◇有8個可編程上拉腳,7個可編程下拉腳,8個可編程橫漏極開路輸入腳,2個可編程R-op-tion腳。

          2 硬件電路的總體設(shè)計

          本設(shè)計中控制電路的MCU部分如圖2所示。圖2中的單片機采用外部RC振蕩,振蕩頻率為4MHz。其中LED1~LED6和按鍵K2、K3共用了P61~P65五個I/O口。在該電路設(shè)計時,要注意按鍵按下時不能影響LED的正常點亮,所以在I/O口與按鍵之間串了一個2kΩ的電阻,這樣即使按住按鍵不放。LED也能正常點亮。每一路LED燈的點亮須由兩個I/O口同時控制,一路置高、一路置低,使LED產(chǎn)生正向壓降才能點亮。而其余的I/O口則作為正常的輸入、輸出控制。

          3 程序流程

          本文以按鍵輸入、LED輸出為例,按鍵K2控制第一組LED1~3做跑馬燈變化,按鍵K3控制第二組LED4~6做跑馬燈變化,第一組與第二組燈中每次只能同時亮一個。這里的復用實際上是利用人眼的視覺暫留功能,實際LED是閃爍的,只是人眼分辨不出來而已。每組燈點亮的周期為20ms,按鍵檢測占用的時間為10μs左右,在這么短的時間內(nèi),人眼不可能察覺到LED的變化。所以在實際電路設(shè)計中,顯示和按鍵等人機接口部分的功能最容易實現(xiàn)分時復用。點亮LED1與LED4的I/O口的工作波形如圖3所示。將按鍵檢測的值送到keybuf中,并做20 ms的延時比較檢測,主要是為了增加按鍵檢測的可靠性。其程序邏輯如圖4所示。

          這里需要注意的是,在作為按鍵檢測的時候,P6.2、P6.3、P6.4必須輸出高電平,或者作為輸入口打開內(nèi)部上拉(如圖3中的P6.2)。這樣可以避免LED在這時被點亮形成鬼影,而影響整個系統(tǒng)的顯示效果。當然也可以將LED驅(qū)動換成帶三極管驅(qū)動的繼電器。但因為繼電器的吸合或斷開需要幾毫秒的響應過程,而按鍵檢測所需的10μs時間絕對不足以讓繼電器發(fā)生狀態(tài)跳變。

          晶振相關(guān)文章:晶振原理

          上一頁 1 2 下一頁

          關(guān)鍵詞: 單片機 EM78P156 IO口復用

          評論


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