《基于MCU89C51ADC08096位数码管的多功能数字电压表程序》由会员分享,可在线阅读,更多相关《基于MCU89C51ADC08096位数码管的多功能数字电压表程序(2页珍藏版)》请在金锄头文库上搜索。
1、本文格式为Word版,下载可任意编辑基于MCU89C51ADC08096位数码管的多功能数字电压表程序 基于MCU89C51、ADC0809、6位数码管的多功能数字电压表程序 # include # include # define uchar unsigned char # define uint unsigned int # define IN0 XBYTE0x8ff8 uchar keyscan(); /键盘扫描函数 void delay(uint z); /延时函数 unsigned char TestKey(); /按键检测函数 void key(); /按键函数 void disp
2、lay(int t); uchar i,h=3,zf,wxm,num,temp; uint l,m,n; /*数码管真值表*/ uchar code table28=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,/0,1,2,3,4,5 ,6 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,/7,8,9,A,b ,C ,d 0x79,0x71,0x80,0x00,0xbf,0x86,0xdb,/E,F,点,灭,0.,1., 2. 0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;/3.,4.,5.,6.,7.,8., 9. sb
3、it ad_busy=P33; uchar idata ad10; /*AD采样函数*/ void adc0809(uchar idata *x) uchar xdata *ad_adr; ad_adr= *ad_adr=0;/启动转换 while(ad_busy=1);/等待EOC信号变为低电平 while(ad_busy=0);/等待EOC信号变为高电平,即转换终止 x0=*ad_adr;/读取转换结果并保存 /*延时100us函数*/ void delayms() int x,y; for(x=0;x=n else P0=0; wxm=0x01; for(f=0;f0;x-) for(y=110;y0;y-); 2