smileguitar
New Member
Hello, recently doing a project using LCD-JHD162A with PIC 16F877. Everything was done, but the LCD cannot display any character. It really frustrated. Hopefully, somebody can kindly give some comment. The coding is shown as below: (SCHEMATIC DIAGRAM AT http://www.cytron.com.my/Images/project/schematicPR3.gif)LIST P=16F877
#INCLUDE <P16F877.INC>
__CONFIG 0X3F32
;========================MACRO ===========================
BANK0 MACRO
BCF STATUS,RP0
BCF
ENDM
BANK1 MACRO
BSF STATUS,RP0
BCF STATUS,RP1
ENDM
CLOCK_E MACRO
BSF PORTD,3
CALL DELAY2
BCF PORTD,3
ENDM
;========== VARIABLE ======================================
D1 EQU 0X20
D2 EQU 0X21
D3 EQU 0X22
D4 EQU 0X23
D5 EQU 0X24
D6 EQU 0X25
;=========================================================
;========== MAIN PROGRAMME ===============================
;=========================================================
ORG 0X000
GOTO START
STOP ORG 0X004
GOTO STOP
START BANK0
CLRF PORTA
CLRF PORTB
CLRF PORTC
CLRF PORTD
CLRF PORTE
BANK1
MOVLW 0x06
MOVWF ADCON1
CLRF TRISA
CLRF TRISB
CLRF TRISC
CLRF TRISD
CLRF TRISE
BANK0
CLRF PORTB
;*****************LCD INITIALIZED****************************
CALL DELAY1
BCF PORTD,2
MOVLW B'00110000'
MOVWF PORTB
CLOCK_E
CALL DELAY2
MOVLW B'00001101'
MOVWF PORTB
CLOCK_E
CALL DELAY3
MOVLW B'00111000'
MOVWF PORTB
CLOCK_E
MOVLW B'00000001'
MOVWF PORTB
CLOCK_E
MOVLW B'00000110'
MOVWF PORTB
CLOCK_E
;****************MESSAGES DISPLAY IN LINE 1 ******************
BSF PORTD,2
MOVLW H'59'
MOVWF PORTB ;DISPLAY "YES"
CLOCK_E
MOVLW H'45'
MOVWF PORTB
CLOCK_E
MOVLW H'53'
MOVWF PORTB
CLOCK_E
;****************SET LCD TO SECOND LINE**********************
BCF PORTD,2
MOVLW B'11000000'
MOVWF PORTB
CLOCK_E
;****************MESSAGES DISPLAY IN LINE 2******************
BSF PORTD,2
MOVLW H'31'
MOVWF PORTB ;DISPLAY123
CLOCK_E
MOVLW H'32'
MOVWF PORTB
CLOCK_E
MOVLW H'33'
MOVWF PORTB
CLOCK_E
GOTO $-1
;=========================================================
;========== SUBROUTINE FOR DELAY ===========================
;=========================================================
DELAY1 MOVLW D'65' ;DELAY 50ms
MOVWF D2
MOVLW D'238'
MOVWF D1
LOOP1 DECFSZ D1,1
GOTO LOOP1
DECFSZ D2,1
GOTO LOOP1
RETURN
DELAY2 MOVLW D'13' ;DELAY 10ms
MOVWF D4
MOVLW D'251'
MOVWF D3
LOOP2 DECFSZ D3,1
GOTO LOOP2
DECFSZ D4,1
GOTO LOOP2
RETURN
DELAY3 MOVLW D'1' ;DELAY 100us
MOVWF D6
MOVLW D'31'
MOVWF D5
LOOP3 DECFSZ D5,1
GOTO LOOP3
DECFSZ D6,1
GOTO LOOP3
RETURN
END
seems the coding I typed in is hard to see, I've been attached.
Attachments
Last edited: