查看: 418|回复: 8
打印 上一主题 下一主题

LCD显示汇编程序请教

[复制链接] qrcode

136

主题

868

帖子

1880

积分

金牌会员

Rank: 6Rank: 6

积分
1880
楼主
发表于 2015-11-29 01:50 AM | 显示全部楼层
仔细看了你的程序,其实你的程序是在反复循环写A,就没有写BCDE,也就是缺少了一个循环,我给你加的那个LOOP标号就是让其循环把ABCDE都写出来.还有这个 JZ SRET
AJMP START
SRET: RET

执行这句话"SRET: RET",是往哪里返回了,漫无目的.

还有一个问题,就是在检测写完5个数据的时候,有一个判断就可以了,不用多判断那一次,多余了.我已经去了这一部分,

; INC R1
; MOV A,R1
; XRL A,#85H
; JZ SRET

下面是我修改后的程序,你参考一下.

ORG 0000H
RS BIT P2.5
RW BIT P2.6
E BIT P2.7

MOV P0,#00000001B ;清屏并光标归位
LCALL WI ;写指令
MOV P0,#00111000B ;功能设置
LCALL WI
MOV P0,#00000110B ;输入模式设置:文字不动,光标自动右移
LCALL WI
MOV P0,#00001100B ;显示开关控制
LCALL WI


START:

MOV R1,#80H
MOV P0,R1
LCALL WI ;写指令
;MOV P0,'A' ;??('A')?=(#41H)
MOV R2,#41H
LOOP: MOV P0,R2
SETB RS
CLR RW
CLR E
LCALL BF
SETB E
; INC R1
; MOV A,R1
; XRL A,#85H
; JZ SRET
INC R2
MOV A,R2
XRL A,#46H
JZ SRET
jmp LOOP
SRET: AJMP START
;SRET: RET

WI: ;写指令
CLR RS
CLR RW
CLR E
LCALL BF
SETB E
RET

BF: ;检测是否忙
MOV P0,#0FFH
CLR RS
SETB RW
CLR E ;??删去行吗
NOP
SETB E
JB P0.7,BF
RET

END

另外,我还在PROTEUS里做了个仿真,上传上来让你看一下效果吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表