| ??? 09/08/09 02:26 Read: times |
#168789 - hd44780 16x2 lcd some letters display as other letters |
I have no idea what is causing it but for some reason some letters like e for example shows on the lcd as the letter d ,
Im using the built in character gen , could it be a dud? or is it more then likely something wrong with my program?. ...
$MOD52
;;;;;;ports for lcd ;;;;;;;
EN EQU P1.2
RS EQU P1.0
RW EQU P1.1
LCD_DATA EQU P0
; Program start
; start timer 1 and then start serial rx in mode 1
start:
LCALL INIT_LCD
LCALL CLEAR_LCD
mov dptr,#0
mov dptr,#WelcomeText
lcall loop
sjmp stop
Loop:
clr a
movc a,@a+dptr
inc dptr
jz WriteStringEnd
call WRITE_TEXT
sjmp loop
WriteStringEnd:
ret
stop: sjmp stop
;;;;;;;lcd routines ;;;;;;
WAIT_LCD:
MOV R1,#1H ;
SEC_LOOP:
MOV TH0,#00H ; CLEAR TIMER 0
MOV TL0,#00H
CLR TF0 ; CLEAR OVERFLOW BIT
SETB TR0 ; START TIMER 0
JNB TF0,$ ; WAIT FOR OVERFLOW FLAG
CLR TR0 ; STOP TIMER 0
DJNZ R1,SEC_LOOP
RET
WAIT_LCD2:
MOV R1,#16H ;
SEC_LOOP2:
MOV TH0,#00H ; CLEAR TIMER 0
MOV TL0,#00H
CLR TF0 ; CLEAR OVERFLOW BIT
SETB TR0 ; START TIMER 0
JNB TF0,$ ; WAIT FOR OVERFLOW FLAG
CLR TR0 ; STOP TIMER 0
DJNZ R1,SEC_LOOP2
RET
INIT_LCD:
LCALL WAIT_LCD2
CLR RS
CLR RW
MOV LCD_DATA,#38h
SETB EN
CLR EN
LCALL WAIT_LCD
CLR RS
CLR RW
MOV LCD_DATA,#0Eh
SETB EN
CLR EN
LCALL WAIT_LCD
CLR RS
CLR RW
MOV LCD_DATA,#06h
SETB EN
CLR EN
LCALL WAIT_LCD
RET
CLEAR_LCD:
CLR RS
CLR RW
MOV LCD_DATA,#01h
SETB EN
CLR EN
LCALL WAIT_LCD
RET
WRITE_TEXT:
SETB RS
MOV LCD_DATA,A
SETB EN
CLR EN
LCALL WAIT_LCD
RET
WelcomeText:
db 'abcdefghijklmnopqrstuvwxyz',0
endloop:
jmp endloop
END
|
| Topic | Author | Date |
| hd44780 16x2 lcd some letters display as other letters | 01/01/70 00:00 | |
| How fast is your 8051? | 01/01/70 00:00 | |
| speed | 01/01/70 00:00 | |
| incomplete init, or some hardware issue | 01/01/70 00:00 | |
| Looks like short between D0 and GND | 01/01/70 00:00 | |
| Pullup on D0 P0 | 01/01/70 00:00 | |
| Debug Tip: Always look for patterns! | 01/01/70 00:00 | |
| Oscilloscope | 01/01/70 00:00 | |
| will check D0 | 01/01/70 00:00 | |
| It could simply be open ... | 01/01/70 00:00 | |
| the analysis is fine... | 01/01/70 00:00 | |
It's easier if he has one ... | 01/01/70 00:00 |



