找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3138|回复: 7
收起左侧

求教 ADC0809+AT89C52+LCD1602怎么同时显示4组电压值?

  [复制链接]
回帖奖励 1 黑币 回复本帖可获得 1 黑币奖励! 每人限 1 次
ID:301797 发表于 2018-4-8 01:11 | 显示全部楼层 |阅读模式
本帖最后由 电子酷酷 于 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

评分

参与人数 2黑币 +8 收起 理由
jxncgxy22 + 5 回帖助人的奖励!
danpianji3501 + 3 淡定

查看全部评分

回复

使用道具 举报

ID:303303 发表于 2018-4-8 15:10 | 显示全部楼层
哈哈 这个有点复杂  可以私聊
回复

使用道具 举报

ID:301797 发表于 2018-4-8 17:09 | 显示全部楼层
csh381729668 发表于 2018-4-8 15:10
哈哈 这个有点复杂  可以私聊

你好 程序问题 怎么跟你联系
回复

使用道具 举报

ID:308903 发表于 2018-7-27 16:35 | 显示全部楼层
解决了吗?楼主
回复

使用道具 举报

ID:111634 发表于 2018-7-28 07:33 | 显示全部楼层
显示与AD分开来
回复

使用道具 举报

ID:724521 发表于 2020-4-8 09:10 | 显示全部楼层
你好,你做的ADC0809,4路电压表可以给我参考一下吗,我对此有点疑问
回复

使用道具 举报

ID:724521 发表于 2020-4-8 09:11 | 显示全部楼层
楼主解决了吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表