×
嵌入式 > 技术百科 > 详情

STC12C5410AD AD转换示例程序

发布时间:2020-06-03 发布时间:
|
#include"STC12C5410AD.h" 
#define uchar unsigned char 
unsigned char  aa,bb; 
void delay(uchar dd) 

int x,y; 
for(x=dd;x>0;x--) 
for(y=100;y>0;y--); 

unsigned char Read_ADC(unsigned char adcvcc) 

//将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转换 
return ADC_DATA; 

void main() 

//里要加上设置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上. 

}
 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
NS推出采用第二代PowerWise技术的能源管理单元及先进电源控制器