之前做的显示模块的时候用的是LCD1602 但是这个只能显示频率值 怎么做才能显示信号波形呢
要在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”获取资料