用89C52单片机驱动AD574A 程序 在四位共阴极数码管上显示
#include
#include
#define uchar unsigned char #define uint unsigned int #define AD574Data P1
#define ADC_8 AD574_A0=0; #define Out_H8 AD574_A0=0; //高八位输出 #define Out_L4 AD574_A0=1; //低四位输出 #define AD574_Start AD574_RC=0; //启动AD转换 #define AD574_Read AD574_RC=1; //读取转换结果
sbit dula=P2^6;
sbit wela=P2^7;
sbit AD574_A0=P3^0;
sbit AD574_RC=P3^1;
sbit AD574_STS=P2^0; //STS
uchar A1,A2,A3,A4;
uint AD574value;
uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};
void delay(uint xms) {
uint i,j;
for(i=xms;i>0;i--) //i=xms即延时xms毫秒 for(j=110;j>0;j--);
}
void display(uchar qian,uchar bai, uchar shi, uchar ge ) //显示子程序
{
dula=1;
P0=table[qian]; //显示千位
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay(5);
dula=1;
P0=table[bai]; //显示百位
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delay(5);
dula=1; //显示十位
P0=table[shi]; dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay(5);
dula=1;
P0=table[ge]; //显示个位
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delay(5);
}
uint AD574Convert(void)
{
uchar h8,l4;
ADC_8;
_nop_();
AD574_Start; //启动转换 _nop_();
while(AD574_STS==1); //等待转换结束
AD574_Read; _nop_();
Out_H8;
_nop_();
h8=AD574Data; Out_L4;
_nop_();
l4=AD574Data;
AD574value=((uint)(h8<<4)+(l4&0x0f));
return(AD574value); }
init() //ad初始化 {
AD574_A0=0;
_nop_();
AD574_RC=1;
_nop_();
}
void main(void)
{
while(1)
{
init();
AD574Convert();
display(A1,A2,A3,A4); A1=AD574value/1000; A2=(AD574value-A1*1000)/100;
A3=(AD574value-A1*1000-A2*100)/10;
A4=AD574value%10;
}
}
本文档为【用89C52单片机驱动AD574A 程序 在四位共阴极数码管上显示】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。