单片机lcd显示函数

cd显示函数定义成:voidLCD_printc(unsignedcharlcd_data)//输出一个字符到LCD{LCD_write_data(lcd_data);}... cd显示函数定义成:
void LCD_printc(unsigned char lcd_data) //输出一个字符到LCD
{
LCD_write_data(lcd_data);
}

在主函数中调用LCD_printc('a'); 可以显示a
参数传递时必须要用单引号 ' '么?
我把pc机传来的数据存到一个数组中,怎么调用函数把数组中的数据显示啊??

比如我定义unsigned char w=7;
然后调用LCD_printc(w) ;
结果lcd没有显示7
展开
 我来答
雷霆跳蚤
2011-05-18 · TA获得超过2538个赞
知道小有建树答主
回答量:248
采纳率:100%
帮助的人:117万
展开全部
在数字系统里,字符有它的编码,比如你在在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);
百度网友8284027
2011-05-18 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:252
采纳率:100%
帮助的人:105万
展开全部
肯定了,是乱码之类的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式