LCD1602使用1. M16C20板子在重新启动后,写入的显示程序只能显示一行回答-发现每次重新启动后,需要通过指令给板子一个电压稳定到2,7到4。5之间的时间解决方法-在main入口多进行一次或者多次初始化程序,为了稳定电压,也为了确定初始化指令确实被执行2. 指令间的延时不同,有时候lcd不会显示字符回答-指令间的时间延时长短必须有,对于单指令系统,长短没有区别,但是如果往lcd上面写数据的时候,因为是5*10个点阵,这个期间一直处于忙得状态,所以需要比较长的时间.解决方法-a.加长延时时间b.写一个检查忙得程序3. 显示一个流水字符程序在lcd上的时候,光标老是在**行**个字符上停留。回答-清屏指令(0001H)的原因,现在没有解决解决方法-重新写一个清屏程序,把2*16个字符设定成空字符。LCD1602使用1. Lcd初始化的时候,不是显示2行,老是显示1行回答-有几种情况应该考虑a. 因为lcd打开电源以后默认的是8位接口(DB0~BD7),所以要先写入3次03H命令,这个时候因为以8位处理,所以中间要加入一定延长时间。因为使用的是4位数据指令,所以然后要写入一次02H指令,防止没有写入,不加延时再执行一次02H,这个时候有2种可能,一种以4bit处理,一种是以8bit处理。紧接着开始进行lcd的初始化,在进行初始化前要加入延时。 delay_1(100); writeini(0x03); delay_1(50); writeini(0x03); delay_1(10); writeini(0x03); delay_1(10); writeini(0x02); writeini(0x02); delay_1(50); lcd_writeCommand(LCD_SETDISPLAY);b、启动电压到电压稳定,需要一定的时间,这个时间要在初始化程序中体现出来。在主程序中,可以利用2次初始化,来满足这段时间。void main(){ unsigned char i,address1,address2,address22; for(i = 0;i < 80;i++) for(i = 0;i < 80;i++)
ini_sys(); ini_sys(); ini_sys();
1. 练习了往lcd1602中写入自己的字符图形并且输出,发现没有初始化的字符行列却出现了字符。回答-在重新往CGRAM中写字符的时候,应该对5*8行列或者5”10行列的每一行进行初始化,否则没有初始化的地方就会出现乱码,在*后一行的光标位应该全部初始化为0。
LCD1602液晶(驱动器为HD44780)LCD1602液晶的工作方式1. 能够区分清楚DDRAM与CGROM,1602使用的字符存储器是EEPROM,而不是手册中说的EPROM。2. HD44780带有192字符的字符库,可以自定义8个5*8的字符3. 在写程序的时候要严格按照”指令-----数据”的格式考虑4. 建立了分控制位和数据位的概念5. 掌握了读懂时序图的基本方法,写程序的时候应该严格参照时序图6. Character code与character address与characterpattern是不同的概念,以后要区分清楚7. Lcd有14个端口可与单片机连接,8个数据位,3个控制位,剩下3个为电源,地,调节电源。