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

单片机C语言程序设计:ADC0809数模转换与显示

发布时间:2022-05-09 发布时间:
|

ADC0809 数模转换与显示c语言程序


/*名称:ADC0809数模转换与显示


说明:ADC0809采样通道3输入的


模拟量,转换后的结果显示在数码管上。


*/


#include《reg51.h》


#defineucharunsignedchar


#defineuintunsignedint


//各数字的数码管段码(共阴)


ucharcodeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};


sbitCLK=P1^3;//时钟信号


sbitST=P1^2;//启动信号


sbitEOC=P1^1;//转换结束信号


sbitOE=P1^0;//输出使能


//延时


voidDelayMS(uintms)


{


uchari;


while(ms--)for(i=0;i《120;i++);


}


//显示转换结果


voidDisplay_Result(uchard)


{


P2=0xf7;第4个数码管显示个位数


P0=DSY_CODE[d%10];


DelayMS(5);


P2=0xfb;第3个数码管显示十位数


P0=DSY_CODE[d%100/10];


DelayMS(5);


P2=0xfd;第2个数码管显示百位数


P0=DSY_CODE[d/100];


DelayMS(5);


}


//主程序


voidmain()


{


TMOD=0x02;//T1工作模式2


TH0=0x14;


TL0=0x00;


IE=0x82;


TR0=1;


P1=0x3f;//选择ADC0809的通道3(0111)(P1.4~P1.6)


while(1)


{


ST=0;ST=1;ST=0;//启动A/D转换


while(EOC==0);//等待转换完成


OE=1;


Display_Result(P3);


OE=0;


}


}


//T0定时器中断给ADC0808提供时钟信号


voidTImer0_INT()interrupt1


{


CLK=~CLK;


}

 

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

热门文章 更多
ADI 高精度低功耗精密放大器