如何用LCD1602实时显示接收到的数据

2019-07-14 19:08发布

请教如何将一个动态变化整数发送给1602显示出来?
       一般1602输入显示数据都是定义数组或者直接输入,但这是个动态的数,就不知道该怎么输送给1602了。。。      
比如我将动态的数赋值给a了,我该怎么再把a的值给lcd1602?
       我也考虑过使用占位符,但只会输出,不知道在这里具体应该怎么操作。。。百度半天也没找到想要的答案,,拜托大神给讲讲这里应该怎么写,感谢!!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
别抢我的锅
1楼-- · 2019-07-15 03:25
 精彩回答 2  元偷偷看……
chu23000
2楼-- · 2019-07-15 06:08
把所要显示的数值分解成字段后,送到数组里,再把数组显示出来,要显示实时的数值,在显示上一组数据后,延迟一段时间后再刷新,数组里的值实时更新就好了
人中狼
3楼-- · 2019-07-15 07:08
不太明白你的问题,对于1602或其他显示来说,都是将要显示的内容发给液晶就可以了,所谓的动态数据,只是指这个数据是实时的,那也只是指这个数据是不停变化的,但是显示操作没有不同,对于动态数据,只是需要在显示前更新这个数据,得到数据的最新数值,然后显示。
至于显示的内容是用数组还是变量都没有区别
别抢我的锅
4楼-- · 2019-07-15 07:26
chu23000 发表于 2017-12-14 11:18
把所要显示的数值分解成字段后,送到数组里,再把数组显示出来,要显示实时的数值,在显示上一组数据后,延迟一段时间后再刷新,数组里的值实时更新就好了

这个过程大致明白了,就是具体不知道怎么写,我想把ADC转换的数据用1602显示出来,我先用Get_Adc_Average()函数得到ADC转换后的输出值,令adc=Get_Adc_Average();值,然后用两个函数:
void LCD1602_Set_Cursor(u8 x, u8 y)
{
        u16 addr;
       
        if (y == 0)
                addr = 0x00 + x;
        else
                addr = 0x40 + x;
        LCD1602_Write_Cmd(addr | 0x80);
}

/* 在液晶上显示字符串,(x,y)-对应屏幕上的起始坐标,str-字符串指针 */
void LCD1602_Show_Str(u8 x, u8 y, u8 *str)
{
        LCD1602_Set_Cursor(x, y);
        while(*str != '')
        {
                LCD1602_Write_Dat(*str++);
        }
}[/code]
输出到1602显示,令
  1. a=adc/1000;
  2. b=(adc%1000)/100;
  3. c=(adc%100)/10;
  4. d=adc%10;
复制代码
但我不知道该怎么写数组,我觉得我上面定义的数据类型也不对。。也不知道函数要怎么改
别抢我的锅
5楼-- · 2019-07-15 08:50
人中狼 发表于 2017-12-14 11:52
不太明白你的问题,对于1602或其他显示来说,都是将要显示的内容发给液晶就可以了,所谓的动态数据,只是指这个数据是实时的,那也只是指这个数据是不停变化的,但是显示操作没有不同,对于动态数据,只是需要在显示前更新这个数据,得到数据的最新数值,然后显示。
至于显示的内容是用数组还是变量都没有区别 ...

我想把ADC转换的数据用1602显示出来,我先用Get_Adc_Average()函数得到ADC转换后的输出值,令adc=Get_Adc_Average();值,然后用两个函数:
  1. void LCD1602_Set_Cursor(u8 x, u8 y)
  2. {
  3.         u16 addr;
  4.       
  5.         if (y == 0)
  6.                 addr = 0x00 + x;
  7.         else
  8.                 addr = 0x40 + x;
  9.         LCD1602_Write_Cmd(addr | 0x80);
  10. }

  11. /* 在液晶上显示字符串,(x,y)-对应屏幕上的起始坐标,str-字符串指针 */
  12. void LCD1602_Show_Str(u8 x, u8 y, u8 *str)
  13. {
  14.         LCD1602_Set_Cursor(x, y);
  15.         while(*str != '')
  16.         {
  17.                 LCD1602_Write_Dat(*str++);
  18.         }
  19. }
复制代码
输出到1602显示,不知道具体要怎么去写
kangkyongmo
6楼-- · 2019-07-15 13:34
 精彩回答 2  元偷偷看……

一周热门 更多>