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_CONTR0x10)); //0001,0000 等待A/D转换结束
temp7=ADC_DATA; //读取转换结果
temp8=ADC_LOW2;
ADC_DATA =0x00; //清A/D转换结果寄存器
ADC_LOW2 =0x00;
ADC_CONTR=ADC_CONTR0xe7; //将ADC_FLAG软件清零
Delay25us(1);
ADC_CONTR |= 0x08; //ADC_START=1,开始转换
while(!(ADC_CONTR0x10)); //0001,0000 等待A/D转换结束
temp9=ADC_DATA; //读取转换结果
temp10=ADC_LOW2;
ADC_CONTR=ADC_CONTR0xe7; //将ADC_FLAG软件清零
Delay25us(1);
ADC_DATA =0x00; //清A/D转换结果寄存器
ADC_LOW2 =0x00;
ADC_CONTR |= 0x08; //ADC_START=1,开始转换
while(!(ADC_CONTR0x10)); //0001,0000 等待A/D转换结束
temp11=ADC_DATA; //读取转换结果
temp12=ADC_LOW2;
ADC_CONTR=ADC_CONTR0xe7; //将ADC_FLAG软件清零
Delay25us(1);
ADC_DATA =0x00; //清A/D转换结果寄存器
ADC_LOW2 =0x00;
}
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch ;//开始转换
这是用STC单片机内部A/D转换电路进行A/D转换时,要给A/D控制寄存器ADC_CONTR写启动转换命令,ADC_CONTR是ADC控制寄存器,其中的每一位的作用见下图,而这行语句前面肯定要有定义每一位状态的语句,或用#define宏定义了各位的值。
呵呵
为你解答
单片机几种常见的外围电路及作用:
1键盘显示接口电路:
用于下达用户命令和传送、修改单片机内部的数据、参数,同时可以将运算结果送显示器上显示。
可用
8279或74LS164芯片进行键盘、显示电路的扩展。
2模拟量输入通道:
数据采集和测量,将工业现场的非电量转换成电量(如电压、电流),再经过模数转换器转换为数字量送给单片机。
一般由传感器、运算放大器、多路开关、模数转换器等组成。
3模拟量输出通道:
将计算的结果数字量经数模转换器转换成模拟量(电压、电流)反过来去控制工业的现场设备。
4
单片机与电脑的通讯接口电路:
完成单片机与电脑之间的连接,采用串口通讯,进行单片机与电脑之间的数据信息传送。
5
继电器驱动电路:
完成对继电器线圈的控制,驱动继电器动作。
还有一些
就不再一一例举了
如满意
请选择:满意回答
stc单片机ad转换电路的介绍就聊到这里吧,感谢您花时间阅读,谢谢。
本文标签:stc单片机ad转换电路