微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于1602液晶显示问题求教

关于1602液晶显示问题求教

时间:10-02 整理:3721RD 点击:
请问,write_date(0x30+shi);//送去液晶显示十位        //cichu cichuccccccccccccccccccccccccccccc        write_date(0x30+ge); //送去液晶显示个位
}
这两个语句里面。为什么写数据的十,个位要加上0x30呢?液晶显示不能就直接显示十、个位吗

液晶显示的是ASCII码值,必须将十进制数转化为ASCII码。而转变的方法就是加上偏移量0x30或者加上'0'(要知其然还要知其所以然,ASCII码表是程序员必备的工具)

不能直接显示,原因是数据必须转化为ASCLL码才能显示,加上0x30是为了将十位个位转化为ASCLL 码

0x30+ge 十六进制代码送给单片机的最终都会转换成二级制代码,而1602识别的是ASCII码,所以显示的是(0x30+ge)对应的ASCII码,如果不加0x30的话显示的就是ASCII码中与你个位数字相对应的数码,(PS:ASCII码中+0x30=>48位ASCII码==‘0’)

那是要用ASCII码显示的,数字就是要加0x30的所以

偶,谢谢,非常感谢

非常感谢!因为之前看的参考书上没有讲这个,所以不是很明白,现在知道为什么了

后面加上0x30,是把相应的数字校准到相应的ASCII码上

1602只识别ASCII码,其他的不会识别的

kaifengyougebaoqingtiantiemianwusibianzhongjianjianghuhaojielaixiangzhuwangchaohemahanzaishenbian

我记得好像都是大32,原字母代码+32也可以

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top