这些天行九歌问一个单片机LCD的驱动程序的问题第1个回答:xingdian5182011-05-12TA获

第1个回答:

xingdian5182011-05-12TA获得超过135个赞关注先解释第一个问题:0x80是LCD1602第一行的首地址,0x40是第二行的首地址。你问为什么要算?其实是在计算地址码,计算方法就是让首地址+偏移量。参数x是偏移量,y是控制第一行还是第二行。比如x=0,y=0时,该字符会显示在液晶屏幕第一行的第一个字符处,x=15,y=1时,该字符会显示在第二行最后一个字符处。第二个问题:你看一下ASICii对照表就清楚了,0x20之前表示的是特殊符号,电脑上常用的。0x20之后(0x20是空格,液晶也能显示)的所有字符都是液晶能够显示的。由于每一个字符串尾部编译器会自动给添加一个空字符,来表示字符串结尾(空字符的asicii码是0x00,属于0x20之前的),所以当检测到asicii码小于0x20字符的时候自动跳出循环。那个条件其实可以改为while(DData[ListLength]!=0x00),或者while(DData[ListLength]!='\0')。'\0'也表示空字符。