| ??? 10/10/02 15:37 Read: times |
#30540 - RE: Graphic character in LCD 16x2 |
Why is this happen ?
You are trying to write the character before you have stored it in CGRAM and you are overwriting the first CGRAM character with the second one. Try this: start:
lcall INIT_LCD
...
; CG char 0
mov a,#40h ; write to CGRAM
lcall WRCommand2LCD
MOV A,#04H
LCALL WRChar2LCD ; write row 0
MOV A,#00H
LCALL WRChar2LCD ; write row 1
MOV A,#04H
LCALL WRChar2LCD ; write row 2
MOV A,#04H
LCALL WRChar2LCD ; write row 3
MOV A,#08H
LCALL WRChar2LCD ; write row 4
MOV A,#11h
LCALL WRChar2LCD ; write row 5
MOV A,#11H
LCALL WRChar2LCD ; write row 6
MOV A,#0eH
LCALL WRChar2LCD ; write row 7
; CG char 1
MOV a,#48h ; write CGRAM ; These 2 lines are optional.
lcall WRCommand2LCD ; CGRAM addr will already be 48H.
MOV A,#04H
LCALL WRChar2LCD ; write row 0
MOV A,#4H
LCALL WRChar2LCD ; write row 1
MOV A,#4H
LCALL WRChar2LCD ; write row 2
MOV A,#4H
LCALL WRChar2LCD ; write row 3
MOV A,#4H
LCALL WRChar2LCD ; write row 4
MOV A,#4H
LCALL WRChar2LCD ; write row 5
MOV A,#4H
LCALL WRChar2LCD ; write row 6
MOV A,#00H
LCALL WRChar2LCD ; write row 7
mov a,#80h ; go to address 0
lcall WRCommand2LCD
MOV A,#00H ; Write character 0
LCALL WRChar2LCD
MOV a,#81h ; go to address 1
lcall WRCommand2LCD
MOV A,#01H ; write character 1
LCALL WRChar2LCD
|
| Topic | Author | Date |
| Graphic character in LCD 16x2 | 01/01/70 00:00 | |
| RE: Graphic character in LCD 16x2 | 01/01/70 00:00 | |
| RE: Graphic character in LCD 16x2 | 01/01/70 00:00 | |
| RE: Graphic character in LCD 16x2 | 01/01/70 00:00 | |
| RE: Graphic character in LCD 16x2.cont. | 01/01/70 00:00 | |
| RE: Graphic character in LCD 16x2 | 01/01/70 00:00 | |
| RE: Graphic character in LCD 16x2 | 01/01/70 00:00 | |
| RE: Graphic character in LCD 16x2 | 01/01/70 00:00 | |
RE: software interface LCD 16x2 | 01/01/70 00:00 | |
| RE: Graphic character in LCD 16x2 | 01/01/70 00:00 | |
| RE: Graphic character in LCD 16x2 | 01/01/70 00:00 | |
| RE: Graphic character in LCD 16x2 | 01/01/70 00:00 |



