单片机lcd显示函数
发布网友
发布时间:2022-04-19 19:36
我来回答
共2个回答
热心网友
时间:2023-06-23 01:40
在数字系统里,字符有它的编码,比如你在在LCD上显示7,这个7它的意义是个字符,那么你必须加个引号,因为加了个引号后,编译程序就会知道它是一个“字符”而不是一个数字(实际上,加引号的7会被编译程序翻译成37H,对应7的ASIIC码”。为什么非要用“字符”呢,因为LCD只认字符,它只对“字符”进行显示,就像上面的例子,LCD知道37H是字符7,所以会显示字符7。如果不用引号,那么编译程序就单纯的把它当作一个常量送过去,到LCD时,LCD ”看"到的是07H,它当然不会显示出字符7出来。
要显示PC传来的数组,重写一个函数如下:
void LCD_printstr(unsigned char * Pch)
{
unsigned char chnum=20; //一个字串里最多有几个字符,这里是20个,可以改
while(chnum!=0) //循环取字符当一个字串不能超过20个,防止陷入死循环
{
if (*Pch)!=0x0d ; //数组里的字符串以0x0d,也就是回车符结束,如果不是回车符,
//表示还未到字串结尾,PC传过来的字串要以0x0d结束,当然别的
//特殊字符也可以
{
LCD_write_data(* Pch); //显示字符
//如果上面的函数显示后不会自动向右移动,在此处加入移动字符位置的函数
Pch++; //指向下一个字符
chnum--; //字符计数减1
}
}//循环结束
}
比如你存字符的数组是unsgiend char str[],调用函数的方法如下:
LCD_printstr(&str);
热心网友
时间:2023-06-23 01:40
肯定了,是乱码之类的?