微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STC12C5410AD AD转换示例程序

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上.
}
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top