微控制器AduC812通用數(shù)據(jù)端口介紹及P1口的應(yīng)用
由于ADC0作為心電信號的模擬輸入,選擇ADCCON1可使ADC正常工作,ADC時鐘分頻比為2。由于LM324輸出阻抗遠(yuǎn)遠(yuǎn)小于8kΩ,所以選擇ADC采集時鐘1,得到ADCCON1=50H。選擇通道0,可利用ADCCON2的默認(rèn)值00H。本文引用地址:http://cafeforensic.com/article/172008.htm
由于ADC1作為電源監(jiān)測的模擬輸入,選擇ADCCON1可使ADC正常工作,ADC時鐘分頻比為2。由于電源阻抗遠(yuǎn)遠(yuǎn)小于8kΩ,所以選擇ADC采集時鐘1,得到ADCCON1=50H。選擇通道1,ADCCON2=01H。
在下面程序中,堆棧設(shè)置在60H,利用定時器0中斷后執(zhí)行采樣程序,選取采樣頻率為200Hz,因而定時器0的定時值為TL0=3CH,TH0=F6H。由于啟動單個轉(zhuǎn)換周期完成一次A/D轉(zhuǎn)換需要16×2+1=33個AduC812主時鐘,程序中一次延時循環(huán)為2個主時鐘,因而在采樣程序中利用R0=16作為單個轉(zhuǎn)換周期,延時36個主時鐘,以完成一次采樣后的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)不需要使用AduC812的ADC的全部8個通道時,剩余的ADC輸入可用作數(shù)字輸入端。例如,我們將P1口中的幾位用于按鍵控制的輸入端口,此時要先將0寫至端口值。需要注意的是,AduC812的P1口用作按鍵時是高電平有效,在沒有按鍵輸入時,P1口應(yīng)保持低電平,因此在用作按鍵的P1口應(yīng)加下拉電阻(即P1.3~P1.7在沒有輸入時為低電平),阻值一般為幾千歐。在前面的例子中,按鍵分別連接到P1.3~P1.7,它們通過2kΩ的下拉電阻接至地;插座的第6腳接高電平VCC,用于觸發(fā)按鍵。當(dāng)有鍵按下時,P1.3~P1.7中的相應(yīng)位接至高電平VCC,這樣就給出了按鍵信息。通過上面的程序就可以進(jìn)行判斷并執(zhí)行相應(yīng)的按鍵功能,并且采用防抖方法來提高可靠性,具體程序如下:
評論