微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > LCD1602动态显示时间的时候,为什么要在写数据里面加上0x30呢?

LCD1602动态显示时间的时候,为什么要在写数据里面加上0x30呢?

时间:10-02 整理:3721RD 点击:
各位大神晚上好,
      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)

我已经将变量设置成了字符型啦。
如果是一个数组,然后用写数据输出都没有问题呢?

谢谢你,感觉有点道理!

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

网站地图

Top