用RC522做门禁,有个函数看不懂,求解释
每次从卡中读出的数据都要经过下面这个函数的转换才送去显示,我不知道这个函数式什么意思,希望大虾们能够解释!void LCD_Data(unsigned char LCDbyte )
{
unsigned char count;
count=(LCDbyte&0xf0)>>4;
if (count>0x9) lcd_wdat(count%9+0x40);
else lcd_wdat(count+0x30);
count=LCDbyte&0x0f;
if (count>9) lcd_wdat(count%9+0x40);
else lcd_wdat(count+0x30);
}
非常感谢啦 这个函数是用于把字符串转换成实际屏幕字符显示的 液晶屏中是需要对地址进行+0x30的,才是实际显示的地址,数据LCDbyte的低四位如果大于0x09(估计是10一个一行)显示地址是下一行,小于就在本行显示+0x30 2楼的解释很合理 磊磊映画 发表于 2014-11-13 15:41
液晶屏中是需要对地址进行+0x30的,才是实际显示的地址,数据LCDbyte的低四位如果大于0x09(估计是10一个一 ...
感觉有问题,我不理解count%9是什么意思 Mortimer 发表于 2014-11-13 17:56
感觉有问题,我不理解count%9是什么意思
已经多加一个整行了,显示的时候就算列就行了啊 将LCDByte的高低半字节分别转换成ASCII码,如LCDbyte = 0xA3,首先取高半字节0X0A,如果大于9则除以9取余数1,加上0X40后得0X41,即字符“A",如果小于9则加0X30得到数字”0“-”9“,然后取低半字节重复高半字节的处理。 hzyyl2008 发表于 2014-11-15 17:16
将LCDByte的高低半字节分别转换成ASCII码,如LCDbyte = 0xA3,首先取高半字节0X0A,如果大于9则除以9取余数 ...
恩,非常有道理,谢谢~
页:
[1]