有没有人知道dds信号发生器需要用液晶显示信号波形这个怎么做呀

之前做的显示模块的时候用的是LCD1602 但是这个只能显示频率值 怎么做才能显示信号波形呢

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7786391
  • 你也可以参考下这篇文章:通过点击移位按键移位修改LCD1602字符型液晶显示器显示时分秒个位十位数值的计时项目
  • 除此之外, 这篇博客: 详解LCD1602液晶显示屏的使用中的 4.显示字符 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 要在LCD1602上显示特定的字符,实际上就是对LCD1602的DDRAM上写入对应的数据,显示屏便显示你想要的字符。
    (1)DDRAM地址映射图
    从RAM可以看出来,是读的意思,地址与显示位置如下,每行40个地址,1602只用到前16个,共两行,对应关系如图:
    在这里插入图片描述
    根据写指令格式,由于地址为7位,在写入地址是,第8位恒为1,如图:
    在这里插入图片描述
    当我们想在指定位置写入内容时,要先指定地址,如在第一行第一位写入,地址位是00H,再加上DB7的1,即80H(0010000000),第二行第一位是40H,再加上DB7的1,即C0H(0011000000),依次类推。
    比如要在第1行第3位写入“HELLO WOLRD”,即先写入地址,再写入数据:

    write_com(0x40+0);  //第1行第3位
    write_com(‘H’);
    write_com(‘O’);
    .....
    write_com(‘D’);
    

    如果是写在第2行第2位:

    write_com(0x40+0x80+2);  //第2行第2位
    //写数据与上面一样
    

    (2)显示函数
    为了程序的简洁与方便,我们将显示程序整合成一个显示函数:

    void Display_1602(uchar x,uchar y,uchar *str)
    {
    	 unsigned char addr;
      
      if (y == 0)
      {
        addr = 0x00 + x; //第一行的x位置显示
      }
      else
      {
        addr = 0x40 + x; //第二行x的位置显示
      }
      write_com(addr + 0x80);
      while (*str != '\0')
      {
        write_data(*str++);
      }
    
    }
    

    要实现上面显示就比较简单:
    第1行第3位显示“HELLO WOLRD”:

    Display_1602(3,1,”HELLO WOLRD”);
    

    第2行第2位显示“HELLO WOLRD”:

    Display_1602(2,2,”HELLO WOLRD”);
    

    更多LCD1602设计资料及例程 请关注公众号,首页回复“1602”获取资料
    在这里插入图片描述