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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 微控制器AduC812通用數(shù)據(jù)端口介紹及P1口的應(yīng)用

          微控制器AduC812通用數(shù)據(jù)端口介紹及P1口的應(yīng)用

          作者: 時(shí)間:2012-02-22 來源:網(wǎng)絡(luò) 收藏

          由于ADC0作為心電信號的模擬輸入,選擇ADCCON1可使ADC正常工作,ADC時(shí)鐘分頻比為2。由于LM324輸出阻抗遠(yuǎn)遠(yuǎn)小于8kΩ,所以選擇ADC采集時(shí)鐘1,得到ADCCON1=50H。選擇通道0,可利用ADCCON2的默認(rèn)值00H。

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

            由于ADC1作為電源監(jiān)測的模擬輸入,選擇ADCCON1可使ADC正常工作,ADC時(shí)鐘分頻比為2。由于電源阻抗遠(yuǎn)遠(yuǎn)小于8kΩ,所以選擇ADC采集時(shí)鐘1,得到ADCCON1=50H。選擇通道1,ADCCON2=01H。

            在下面程序中,堆棧設(shè)置在60H,利用定時(shí)器0中斷后執(zhí)行采樣程序,選取采樣頻率為200Hz,因而定時(shí)器0的定時(shí)值為TL0=3CH,TH0=F6H。由于啟動單個(gè)轉(zhuǎn)換周期完成一次A/D轉(zhuǎn)換需要16×2+1=33個(gè)主時(shí)鐘,程序中一次延時(shí)循環(huán)為2個(gè)主時(shí)鐘,因而在采樣程序中利用R0=16作為單個(gè)轉(zhuǎn)換周期,延時(shí)36個(gè)主時(shí)鐘,以完成一次采樣后的A/D轉(zhuǎn)換。ADCDATAL為A/D轉(zhuǎn)換低8位,ADCDATAH為A/D轉(zhuǎn)換高4位;R1、R2用于存放12位A/D轉(zhuǎn)換結(jié)果,設(shè)置00H位作為采樣結(jié)束標(biāo)志位。

            

          程序

            2.2按鍵控制

            當(dāng)不需要使用的ADC的全部8個(gè)通道時(shí),剩余的ADC輸入可用作數(shù)字輸入端。例如,我們將口中的幾位用于按鍵控制的輸入端口,此時(shí)要先將0寫至端口值。需要注意的是,口用作按鍵時(shí)是高電平有效,在沒有按鍵輸入時(shí),口應(yīng)保持低電平,因此在用作按鍵的P1口應(yīng)加下拉電阻(即P1.3~P1.7在沒有輸入時(shí)為低電平),阻值一般為幾千歐。在前面的例子中,按鍵分別連接到P1.3~P1.7,它們通過2kΩ的下拉電阻接至地;插座的第6腳接高電平VCC,用于觸發(fā)按鍵。當(dāng)有鍵按下時(shí),P1.3~P1.7中的相應(yīng)位接至高電平VCC,這樣就給出了按鍵信息。通過上面的程序就可以進(jìn)行判斷并執(zhí)行相應(yī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); })();