成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

使用STC89LE516AD/X2單片機進行高速A/D轉換

STC系列單片機中的STC89LE516AD/X2提供了8路8位精度的高速A/D轉換器,位于P1口上,從而省去了片外ADC的麻煩。這8路ADC為電壓輸入型,可用于按鍵掃描、電池電壓檢測、頻譜檢測等應用

STC系列單片機中的STC89LE516AD/X2提供了8路8位精度的高速A/D轉換器,位于P1口上,從而省去了片外ADC的麻煩。這8路ADC為電壓輸入型,可用于按鍵掃描、電池電壓檢測、頻譜檢測等應用。ADC轉換過程需要17個機器周期。通過對相關功能寄存器的適當配置,就可以控制其工作。

功能寄存器介紹

1. P1_ADC_EN:特殊功能寄存器P1.x作為A/D轉換輸入通道來用允許特殊功能寄存器。相應位為“1”時,對應的P1.x口作為A/D轉換使用,內部上拉電阻自動斷開。

2. ADC_CONTR:特殊功能寄存器CHS2/CHS1/CHS0是模擬輸入通道選擇,CHS2/CHS1/CHS0的取值如下表所示。ADC_START是模擬/數(shù)字轉換(ADC)啟動控制位,設置為1時,開始轉換。ADC_FLAG是模擬/數(shù)字轉換結束標志位,當A/D轉換完成后,ADC_FLAG1。

3. ADC_DATA:A/D轉換結果特殊功能寄存器模擬/數(shù)字轉換結果計算公式為結果256×Vin/Vcc。Vin是模擬輸入通道輸入電壓,Vcc為單片機實際工作電壓,用單片機工作電壓作為模擬參考電壓。

內置ADC的使用例程

在編寫內置ADC的使用例程時,需要合理配置相應的功能寄存器。以下是一個簡單的例程:

```c

include

void AD_Init(unsigned char ADin) {

P1 P1 | ADin; // 要設置為A/D轉換的P1.x口,先設為高

P1_ADC_EN ADin;

}

int GetAD(unsigned char channel) {

unsigned char AD_finished 0;

ADC_DATA 0;

ADC_CONTR channel;

ADC_CONTR | 0x08;

while (!AD_finished) {

AD_finished (ADC_CONTR 0x10);

}

ADC_CONTR 0xF7;

return (ADC_DATA);

}

void main() {

AD_Init(0x63); // 0110,0011,要設置為A/D轉換的P1.x口,先設置為高

while(1) {

P2 GetAD(0);

delay(10000);

P2 GetAD(1);

delay(10000);

P2 GetAD(5);

delay(10000);

P2 GetAD(6);

delay(10000);

}

}

```

以上例程展示了如何初始化并使用STC89LE516AD/X2單片機進行A/D轉換,以及如何延時獲取轉換結果。

結語

通過合理配置功能寄存器和利用內置ADC的例程,可以充分發(fā)揮STC89LE516AD/X2單片機的高速A/D轉換功能,為電子設計提供便利和效率。在實際應用中,結合具體需求和場景,進行適當修改和優(yōu)化,能夠更好地滿足項目需求。

標簽: