关于1602液晶显示问题求教
时间:10-02
整理:3721RD
点击:
请问,write_date(0x30+shi);//送去液晶显示十位 //cichu cichuccccccccccccccccccccccccccccc write_date(0x30+ge); //送去液晶显示个位
}
这两个语句里面。为什么写数据的十,个位要加上0x30呢?液晶显示不能就直接显示十、个位吗
}
这两个语句里面。为什么写数据的十,个位要加上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也可以
