assembly - 如何在 ASSEMBLY 中打印 PIC18f4520 LCD 显示屏上的信息
问题描述
这是应该在 LCD 显示器上打印信息“Hello”的程序。
问题是,一旦我编译并运行程序,LCD 屏幕什么也不做,只是一直亮着,没有信息。延迟可能有问题吗?
我已经尝试在没有任何更改的情况下更改延迟,并且我很确定电缆等已正确连接,因为我有两个芯片使用相同的电缆等运行。
#include "p18F4520.inc"
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
解决方案
推荐阅读
- python - 在wx python中打开子窗口时关闭父窗口
- google-apps-script - 如何使用谷歌脚本将多个范围复制到另一张工作表中的完全相同的位置?
- django - 当调试 = false 时,apache 不服务媒体文件 django
- python-3.x - 如何在 python 中一起使用多个 bigquery 项目
- css - WordPress网站页面和帖子(左右两侧)的填充调整
- excel - 需要很长时间的简单形式的循环公式
- python - 如何为每个新循环创建新的屏幕截图?
- javascript - 为什么登录后没有重新渲染?
- c# - 使用属性覆盖数据模型约定
- hyperledger-fabric - 为 Raft 生成 orderer genesis block 返回不明确的日志