STC12C5A60S2单片机AD转换程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

STC12C5A60S2单片机AD转换程序

转换结果显示在数码管上,数码管电路图如下

#include

#include

unsigned char code dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned int num,result;

void delay(unsigned int cnt)

{

unsigned char i;

for(;cnt>0;cnt--)

for(i=0;i<250;i++);

}

void display(unsigned int num)

{

unsigned char n[5],i;

n[0]=num%100000/10000;

n[1]=num%10000/1000;

n[2]=num%1000/100;

n[3]=num%100/10;

n[4]=num%10;

for(i=0;i<5;i++)

{

P0=dofly[n[i]];

P2=i;

delay(1);

}

P0=0x00;

}

unsigned char ad()

{

ADC_CONTR=0xC0; //开A/D 转换电源,选择AD速度

P1ASF=0x00; //选择P1.0 作为A/D 转换通道

ADC_CONTR|=0x08; //启动A/D 转换

while((ADC_CONTR&0x10)==0); //等待A/D 转换结束

ADC_CONTR&=0xE7; //将ADC_FLAG 清0

return(ADC_RES); //保存A/D 转换结果

}

main()

{

unsigned char i;

TMOD=0x02;

EA=1;

ET0=1;

TH0=0x06;

TL0=0x06;

TR0=1;

while(1)

{

for(i=0;i<10;i++)

{

display(num);

result+=ad();

}

num=result/10;

result=0;

}

}

相关文档
最新文档