|
我用stc12c5608AD自带的AD做一个AD转换的程序
具体的代码如下
void ad_cov()
{
P1M0=P1M0||0x20;
P1M1=P1M1||0x20; //选择P1.5为开漏。(做A/D使用时选择的模式)
ADC_CONTR=0xc5; //540个时钟周期转换一次;ADC_FLAG=0;ADC_START=0(设置为1,开始转换,结束后清零);选P1.5做输入通道;
ADC_DATA=0;
ADC_LOW2=0;
ADC_CONTR=ADC_CONTR||0x08; //0000 1000 ADC_START=1;
//dely(1000);
if(ADC_CONTR&&0x10!=0) //while(ADC_FLAG=1)
{
ADC_CONTR=ADC_CONTR&&0xEF; //1110 1111 ADC_FLAG=0;
ADC_CONTR=ADC_CONTR&&0xF7; //1111 0111 ACD_START=0;
yl=ADC_DATA+ADC_LOW2&&0x03;
}
}
我将转换后的值yl用液晶显示出来,无论给p1.5的电压是多大,yl的值始终为0.谁能给看看程序哪里错了呢,万分感谢!
|
|