新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STC12C5410AD AD轉(zhuǎn)換示例程序

STC12C5410AD AD轉(zhuǎn)換示例程序

作者: 時(shí)間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
#include"STC12C5410AD.h"
#defineucharunsignedchar
unsignedcharaa,bb;
voiddelay(uchardd)
{
intx,y;
for(x=dd;x>0;x--)
for(y=100;y>0;y--);
}
unsignedcharRead_ADC(unsignedcharadcvcc)
{
//將P1.0--P1.1設(shè)置成適合AD轉(zhuǎn)換的模式
ADC_CONTR=ADC_CONTR|0x80;//1000,0000打開A/D轉(zhuǎn)換電源
delay(20);//20ms
ADC_CONTR=ADC_CONTR&0xE0;//1110,0000清ADC_FLAG,ADC_START位和低3位
ADC_CONTR=ADC_CONTR&0xf8|adcvcc;//設(shè)置當(dāng)前通道號(hào)
delay(10);//延時(shí)使輸入電壓達(dá)到穩(wěn)定
ADC_DATA=0;//清A/D轉(zhuǎn)換結(jié)果寄存器
ADC_CONTR=ADC_CONTR|0x08;//0000,1000ADCS=1,啟動(dòng)轉(zhuǎn)換
do{;}while((ADC_CONTR&0x10)==0);//0001,0000等待A/D轉(zhuǎn)換結(jié)束
ADC_CONTR=ADC_CONTR&0xE7;//1110,0111清ADC_FLAG和ADC_START位,停止A/D轉(zhuǎn)換
returnADC_DATA;
}
voidmain()
{
//里要加上設(shè)置ADC的端口,如)1.0,P1.1設(shè)為ADC口的話:
P1M0=0x03;//0000,0011用于A/D轉(zhuǎn)換的P1.x口,先設(shè)為開漏
P1M1=0xC3;//0000,0011P1.0--P1.1先設(shè)為開漏。斷開內(nèi)部上拉電阻
bb=0x01;
while(1)
{
aa=Read_ADC(1);//第一路A/D轉(zhuǎn)換;如要改別的路,只要把代入通道改一下.
P3=aa;//這是讓A/D的數(shù)據(jù)顯示在P3口的LED上.
}
}


關(guān)鍵詞: STC12C5410ADAD轉(zhuǎn)

評(píng)論


技術(shù)專區(qū)

關(guān)閉