Итак, в основном это нижеприведенная программа, которая предназначена для печати информации «Hello» на LCD-дисплее.
Проблема в том, что как только я компилирую и запускаю программу, ЖК-экран ничего не делает, просто горит без информации. Может быть, что-то не так с задержками?
Я попытался изменить задержки без каких-либо изменений, и я уверен, что кабели и тому подобное подключены правильно, так как у меня две микросхемы, работающие с одинаковыми кабелями и т. Д. c.
CONFIG OSC = HS
CONFIG PWRT = OFF
CONFIG WDT = OFF
CONFIG PBADEN = OFF
CONFIG LVP = OFF
org 0x000000
;80MS**
IDSHORT equ 0x07D
IDLONG equ 0x07E
ED80MS CLRF IDSHORT
CLRF IDLONG
LDLOOP DECFSZ IDSHORT
GOTO LDLOOP
DECFSZ IDLONG
GOTO LDLOOP
RETURN
;80MS**
CLRF TRISD
CLRF TRISB
BCF PORTB,RB2
CALL ED80MS
CALL ED80MS
CALL ED80MS
CALL ED80MS
MOVLW UPPER(MYCOM)
MOVWF TBLPTRU
MOVLW HIGH(MYCOM)
MOVWF TBLPTRH
MOVLW LOW(MYCOM)
MOVWF TBLPTRL
C1 TBLRD+
MOVF TABLAT,W ;Lägg in ovan i WREG
IORLW 0x0
BZ SEND_DAT
CALL COMNWRT
CALL ED80MS
BRA C1
SEND_DAT MOVLW UPPER(MYDATA)
MOVWF TBLPTRU
MOVLW HIGH(MYDATA)
MOVWF TBLPTRH
MOVLW LOW(MYDATA)
MOVWF TBLPTRL
DT1 TBLRD+
MOVF TABLAT,W
IORLW 0x0
BZ OVER
CALL DATAWRT
CALL ED80MS
BRA DT1
OVER BRA OVER
COMNWRT MOVWF PORTD ;Skicka till LCD
BCF PORTB,RB0
BCF PORTB,RB1
BSF PORTB,RB2
CALL ED80MS
BCF PORTB,RB2
RETURN
DATAWRT ;Skriv data till LCD
MOVWF PORTD ;Flytta till LCD
BSF PORTB,RB0
BCF PORTB,RB1
BSF PORTB,RB2
CALL ED80MS
BCF PORTB,RB2
RETURN
ORG 500H
MYDATA DB "HELLO",0 ;Data och null
MYCOM DB 0x38,0x0E,0x01,0x06,0x84,0 ;Instruktioner och null
END