标题: 求教 ADC0809+AT89C52+LCD1602怎么同时显示4组电压值? [打印本页]

作者: 电子酷酷    时间: 2018-4-8 01:11
标题: 求教 ADC0809+AT89C52+LCD1602怎么同时显示4组电压值?
本帖最后由 电子酷酷 于 2018-4-8 10:17 编辑

求教 ADC0809+AT89C52+LCD1602怎么同时显示4组电压值? 不知道主程序哪里出错

void main()
{
         uchar num=0;
         unsigned char temp[7];//显示区域临时存储数组
         float Voltage;        //浮点变量
         ADC0809_init();
         LCD_Init();           //LCD初始化
         DelayMs(20);         
         LCD_Clear();          //清屏
         LCD_Write_String(0,0,"");        //设置表头"PYH_DVM /V"
         LCD_Write_String(2,1,"0593");        //设置表头"PYH_DVM /V"
        DelayMs(500);
        
         ADC0809_init();   //AD0809初始化

         ST=0;
        while(1)
        {
                ST=1;                        //启动ADC0809
                ST=0;
            //keyscan();  //0~2
                     
                 if(r==0)
                 { ALE=1;  //允许写入地址
                  ADDA=0;
                  ADDB=0;
                  ADDC=0;
              ALE=0;
                         num=Read_AD();  //读取AD0809数据
                Voltage=(float)num*5/256; //数据转换,float是强制转换符号,将结果转换为浮点型
       sprintf(temp,"V1:%4.1f ",Voltage);  //格式输出电压值,%4.1表示浮点输出,小数点后1位
                        
                    LCD_Write_String(0,0,temp); }  //将数据写入1602显示
                 else if(r==1)
                 { ALE=1;  //允许写入地址
                  ADDA=1;
                  ADDB=0;
                  ADDC=0;
              ALE=0;
                         num=Read_AD();  //读取AD0809数据
                Voltage=(float)num*5/256; //数据转换,float是强制转换符号,将结果转换为浮点型
       sprintf(temp,"V2:%4.1f ",Voltage);  //格式输出电压值,%4.1表示浮点输出,小数点后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数据
                Voltage=(float)num*5/256; //数据转换,float是强制转换符号,将结果转换为浮点型
       sprintf(temp,"V3:%4.1f ",Voltage);  //格式输出电压值,%4.1表示浮点输出,小数点后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数据
                Voltage=(float)num*5/256; //数据转换,float是强制转换符号,将结果转换为浮点型
       sprintf(temp,"V4:%4.1f ",Voltage);  //格式输出电压值,%4.1表示浮点输出,小数点后1位
               
                    LCD_Write_String(9,1,temp);}
                }
}
        

QQ图片20180408010921.png (44 KB, 下载次数: 134)

QQ图片20180408010921.png

作者: csh381729668    时间: 2018-4-8 15:10
哈哈 这个有点复杂  可以私聊
作者: 电子酷酷    时间: 2018-4-8 17:09
csh381729668 发表于 2018-4-8 15:10
哈哈 这个有点复杂  可以私聊

你好 程序问题 怎么跟你联系
作者: 1261867136qq    时间: 2018-7-27 16:35
解决了吗?楼主
作者: zl2168    时间: 2018-7-28 07:33
显示与AD分开来
作者: llx888888888    时间: 2020-4-8 09:10
你好,你做的ADC0809,4路电压表可以给我参考一下吗,我对此有点疑问
作者: llx888888888    时间: 2020-4-8 09:11
楼主解决了吗




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1