在1602液晶显示屏中,需要通过串行方式进行数据通信,其中8位数据可以传输数字、字母和符号等等。但是在实际操作过程中,却需要将数字数据加上0x30,才能够正常在屏幕上显示。
其实这是因为1602液晶显示屏自身设计原因导致的。在该屏中,对于传输的8位数据,其第0位到第3位表示数据,第4位到第7位则表示控制指令。
ASCII码是计算机中字符和二进制数据间的映射关系,其中第0-31位和第127位并未映射给具体字符,而第48-57位则分别代表数字0-9。而需要在1602液晶显示屏上显示数字0-9时,需要加上0x30即可。
这是因为1602液晶显示屏与ASCII码的映射存在一个偏移量的关系。例如字符“0”在ASCII码中对应的二进制值为00110000,而在1602液晶显示屏中显示数字0的对应二进制值为00001111,二者间存在一个偏移量,为0x30。
在数字系统中,BCD码是一种用二进制数码编码十进制数的形式,即将0-9每个数字都用四位二进制数表示。在1602液晶显示屏中,需要显示数字时,也常常采用BCD码的形式进行传输。因为1602液晶显示屏中的数字段具有BCD码直接解码功能,而与此类似的还包括一些数码管等数字显示设备。
在实际使用1602液晶进行显示时,需要注意以下几点问题:
1)在使用1602串行通信时,需要考虑数据传输的顺序。一般情况下,先传输控制字节,再传输数据字节;
2)在写入数据时,需要注意写入的值是否符合ASCII码或BCD码的规定;
3)当串口通讯速度较慢时,需要加入延时函数,以保证数据在传输过程中不会丢失。