LCD1602动态显示时间的时候,为什么要在写数据里面加上0x30呢?
时间:10-02
整理:3721RD
点击:
各位大神晚上好,
LCD1602动态显示时间的时候,为什么要在写数据里面加上0x30呢;
比如:write_data(0x30+hour); 我在main函数外面已经将hour设置为unsigned char变量了,按理hour‘
已经是一个字符变量了,怎么还要用0x30转换一次呢?
LCD1602动态显示时间的时候,为什么要在写数据里面加上0x30呢;
比如:write_data(0x30+hour); 我在main函数外面已经将hour设置为unsigned char变量了,按理hour‘
已经是一个字符变量了,怎么还要用0x30转换一次呢?
这要看你赋值时间的时候是怎么赋值了啊,你如果赋值时间用的是hour=1,那实际上这个hour值是1,而不是'1'所代表的0x31.所以你还是要加上0x30.
因为0X30是数字0的ASCII码,当要显示显示数字时,必须要加上这个数,不过还可以这样写:write_data(‘0’+hour);这两种方式是一样的
LCD1602只能识别ASCII码数据,所以需要把数据先转换成其对应的ASCII码,才能正确显示
LCD1602只能识别ASCII码数据,所以需要把数据先转换成其对应的ASCII码,才能正确显示 ...
因为0X30是数字0的ASCII码,当要显示显示数字时,必须要加上这个数,不过还可以这样写:write_data(‘0’+h)
我已经将变量设置成了字符型啦。
如果是一个数组,然后用写数据输出都没有问题呢?
谢谢你,感觉有点道理!