|
本帖最后由 電子酷酷 于 2018-4-8 10:17 編輯
求教 ADC0809+AT89C52+LCD1602怎么同時(shí)顯示4組電壓值? 不知道主程序哪里出錯(cuò)
void main()
{
uchar num=0;
unsigned char temp[7];//顯示區(qū)域臨時(shí)存儲(chǔ)數(shù)組
float Voltage; //浮點(diǎn)變量
ADC0809_init();
LCD_Init(); //LCD初始化
DelayMs(20);
LCD_Clear(); //清屏
LCD_Write_String(0,0,""); //設(shè)置表頭"PYH_DVM /V"
LCD_Write_String(2,1,"0593"); //設(shè)置表頭"PYH_DVM /V"
DelayMs(500);
ADC0809_init(); //AD0809初始化
ST=0;
while(1)
{
ST=1; //啟動(dòng)ADC0809
ST=0;
//keyscan(); //0~2
if(r==0)
{ ALE=1; //允許寫入地址
ADDA=0;
ADDB=0;
ADDC=0;
ALE=0;
num=Read_AD(); //讀取AD0809數(shù)據(jù)
Voltage=(float)num*5/256; //數(shù)據(jù)轉(zhuǎn)換,float是強(qiáng)制轉(zhuǎn)換符號(hào),將結(jié)果轉(zhuǎn)換為浮點(diǎn)型
sprintf(temp,"V1:%4.1f ",Voltage); //格式輸出電壓值,%4.1表示浮點(diǎn)輸出,小數(shù)點(diǎn)后1位
LCD_Write_String(0,0,temp); } //將數(shù)據(jù)寫入1602顯示
else if(r==1)
{ ALE=1; //允許寫入地址
ADDA=1;
ADDB=0;
ADDC=0;
ALE=0;
num=Read_AD(); //讀取AD0809數(shù)據(jù)
Voltage=(float)num*5/256; //數(shù)據(jù)轉(zhuǎn)換,float是強(qiáng)制轉(zhuǎn)換符號(hào),將結(jié)果轉(zhuǎn)換為浮點(diǎn)型
sprintf(temp,"V2:%4.1f ",Voltage); //格式輸出電壓值,%4.1表示浮點(diǎn)輸出,小數(shù)點(diǎn)后1位
LCD_Write_String(0,1,temp);}
else if(r==2)
{ALE=1; //允許寫入地址
ADDA=0;
ADDB=1;
ADDC=0;
ALE=0;
num=Read_AD(); //讀取AD0809數(shù)據(jù)
Voltage=(float)num*5/256; //數(shù)據(jù)轉(zhuǎn)換,float是強(qiáng)制轉(zhuǎn)換符號(hào),將結(jié)果轉(zhuǎn)換為浮點(diǎn)型
sprintf(temp,"V3:%4.1f ",Voltage); //格式輸出電壓值,%4.1表示浮點(diǎn)輸出,小數(shù)點(diǎn)后1位
LCD_Write_String(9,0,temp); }
else if(r==3)
{ALE=1; //允許寫入地址
ADDA=1;
ADDB=1;
ADDC=0;
ALE=0;
num=Read_AD(); //讀取AD0809數(shù)據(jù)
Voltage=(float)num*5/256; //數(shù)據(jù)轉(zhuǎn)換,float是強(qiáng)制轉(zhuǎn)換符號(hào),將結(jié)果轉(zhuǎn)換為浮點(diǎn)型
sprintf(temp,"V4:%4.1f ",Voltage); //格式輸出電壓值,%4.1表示浮點(diǎn)輸出,小數(shù)點(diǎn)后1位
LCD_Write_String(9,1,temp);}
}
}
|
評(píng)分
-
查看全部評(píng)分
|