STC12C5410AD AD转换示例程序
时间:12-02
来源:互联网
点击:
#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设置成适合AD转换的模式
ADC_CONTR=ADC_CONTR|0x80;//1000,0000打开A/D转换电源
delay(20);//20ms
ADC_CONTR=ADC_CONTR&0xE0;//1110,0000清ADC_FLAG,ADC_START位和低3位
ADC_CONTR=ADC_CONTR&0xf8|adcvcc;//设置当前通道号
delay(10);//延时使输入电压达到稳定
ADC_DATA=0;//清A/D转换结果寄存器
ADC_CONTR=ADC_CONTR|0x08;//0000,1000ADCS=1,启动转换
do{;}while((ADC_CONTR&0x10)==0);//0001,0000等待A/D转换结束
ADC_CONTR=ADC_CONTR&0xE7;//1110,0111清ADC_FLAG和ADC_START位,停止A/D转换
returnADC_DATA;
}
voidmain()
{
//里要加上设置ADC的端口,如)1.0,P1.1设为ADC口的话:
P1M0=0x03;//0000,0011用于A/D转换的P1.x口,先设为开漏
P1M1=0xC3;//0000,0011P1.0--P1.1先设为开漏。断开内部上拉电阻
bb=0x01;
while(1)
{
aa=Read_ADC(1);//第一路A/D转换;如要改别的路,只要把代入通道改一下.
P3=aa;//这是让A/D的数据显示在P3口的LED上.
}
}
#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设置成适合AD转换的模式
ADC_CONTR=ADC_CONTR|0x80;//1000,0000打开A/D转换电源
delay(20);//20ms
ADC_CONTR=ADC_CONTR&0xE0;//1110,0000清ADC_FLAG,ADC_START位和低3位
ADC_CONTR=ADC_CONTR&0xf8|adcvcc;//设置当前通道号
delay(10);//延时使输入电压达到稳定
ADC_DATA=0;//清A/D转换结果寄存器
ADC_CONTR=ADC_CONTR|0x08;//0000,1000ADCS=1,启动转换
do{;}while((ADC_CONTR&0x10)==0);//0001,0000等待A/D转换结束
ADC_CONTR=ADC_CONTR&0xE7;//1110,0111清ADC_FLAG和ADC_START位,停止A/D转换
returnADC_DATA;
}
voidmain()
{
//里要加上设置ADC的端口,如)1.0,P1.1设为ADC口的话:
P1M0=0x03;//0000,0011用于A/D转换的P1.x口,先设为开漏
P1M1=0xC3;//0000,0011P1.0--P1.1先设为开漏。断开内部上拉电阻
bb=0x01;
while(1)
{
aa=Read_ADC(1);//第一路A/D转换;如要改别的路,只要把代入通道改一下.
P3=aa;//这是让A/D的数据显示在P3口的LED上.
}
}
STC12C5410ADAD转 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)