There is an initialization process to get LCDs to come on line. It usually isn't needed, but I ran into an instance like yours where everything suggested it SHOULD work, but it didn't. One of the HD44780 LCD Data Sheets outlined an initialization process. Here is what I use:
4-Wire
For 8-wire:Code:Init_LCD: RS = 0 ' LCD = $20 DB7 = 0 DB6 = 0 DB5 = 1 DB4 = 0 En = 1 pauseus 10 En = 0 pause 5 ' LCD = $20 DB7 = 0 DB6 = 0 DB5 = 1 DB4 = 0 En = 1 pauseus 10 En = 0 pauseus 160 ' LCD = $20 DB7 = 0 DB6 = 0 DB5 = 1 DB4 = 0 En = 1 pauseus 10 En = 0 pauseus 160 LCD = $28 gosub Send LCD = $10 gosub Send LCD = $0C gosub Send LCD = $06 gosub Send LCD = 1 gosub Send pause 1 LCD = $80 gosub Send RS = 1 pause 1 RETURN
Maybe this will help.Code:Init_LCD: low RS PORTB = $30 high En pauseus 4 low En pause 5 PORTB = $30 high En pauseus 4 low En pauseus 160 PORTB = $30 high En pauseus 4 low En pauseus 160 PORTB = $38 gosub Send PORTB = $10 gosub Send PORTB = $0C gosub Send PORTB = $06 gosub Send PORTB = 1 gosub Send pause 1 PORTB = $80 gosub Send high RS pause 1 RETURN Send: high En pauseus 8 low En pause 1 return




Bookmarks