stc12c5a16s2这个单片机的AD转换怎么做?它的硬件电路怎么连,还有程序。

核心提示void adchange()//AD采集程序,采集3路{ uchar temp7,temp8,temp9,temp10,temp11,temp12;//这些变量用来暂存转换结果ADC_CONTR=ADC_CONTR|0X80;//1000

void adchange()//AD采集程序,采集3路

{

uchar temp7,temp8,temp9,temp10,temp11,temp12;//这些变量用来暂存转换结果

ADC_ConTR=ADC_ConTR|0X80; //10000000 开启转换电源

Delay1ms(1); //延时,等待内部电源稳定

P1M0=P1M0|0X07; //设置p1.0 P1.1和 p1.3所在通道为开/漏模式

P1M1=P1M1|0X07;

ADC_ConTR=0xe0; //11100000 开启P1.0通道开始转换

Delay25us(10); //延时一端时间,使输入电压达到稳定

ADC_DATA =0x00; //清A/D转换结果寄存器

ADC_LOW2 =0x00;

ADC_ConTR |= 0x08; //ADC_START=1,开始转换

while(!(ADC_CONTR&0x10)); //0001,0000 等待A/D转换结束

temp7=ADC_DATA; //读取转换结果

temp8=ADC_LOW2;

ADC_DATA =0x00; //清A/D转换结果寄存器

ADC_LOW2 =0x00;

ADC_ConTR=ADC_CONTR&0xe7; //将ADC_FLAG软件清零

Delay25us(1);

ADC_ConTR |= 0x08; //ADC_START=1,开始转换

while(!(ADC_CONTR&0x10)); //0001,0000 等待A/D转换结束

temp9=ADC_DATA; //读取转换结果

temp10=ADC_LOW2;

ADC_ConTR=ADC_CONTR&0xe7; //将ADC_FLAG软件清零

Delay25us(1);

ADC_DATA =0x00; //清A/D转换结果寄存器

ADC_LOW2 =0x00;

ADC_ConTR |= 0x08; //ADC_START=1,开始转换

while(!(ADC_CONTR&0x10)); //0001,0000 等待A/D转换结束

temp11=ADC_DATA; //读取转换结果

temp12=ADC_LOW2;

ADC_ConTR=ADC_CONTR&0xe7; //将ADC_FLAG软件清零

Delay25us(1);

ADC_DATA =0x00; //清A/D转换结果寄存器

ADC_LOW2 =0x00;

}

 
友情链接
鄂ICP备19019357号-22