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

LCD显示汇编程序请教

[复制链接] qrcode

6

主题

23

帖子

56

积分

注册会员

Rank: 2

积分
56
楼主
跳转到指定楼层
发表于 2015-11-26 08:28 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AT89S51和LCD1602
往LCD里写ABCDE.问题出在哪呢?
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,#00001111B ;显示开关控制
LCALL WI
MOV P0,#00000110B ;输入模式设置:文字不动,光标自动右移
LCALL WI
MOV R0,#80H
MOV R1,#41H
START: MOV A,R0
XRL A,#85H
JZ SRET
MOV P0,A
LCALL WI
;MOV P0,'A' ;??('A')?=(#41H)
MOV P0,R1
SETB RS
CLR RW
CLR E
LCALL BF
SETB E
INC R0
INC R1
AJMP START
SRET: AJMP $
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
回复

使用道具 举报

34

主题

231

帖子

500

积分

高级会员

Rank: 4

积分
500
沙发
发表于 2015-11-28 10:18 AM | 只看该作者
1.??移上行不----这语句只要放在SETB E前就可以

2.??删去行吗----删去不好,防止p0有干扰的数据让LCD错读指令了

3.删去行吗--E是使能信号,是上升沿才能有效,所以得先CLR再SETB,E只有一个有效动作,任何指令都得让E一个上升沿
回复 支持 反对

使用道具 举报

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
回复 支持 反对

使用道具 举报

107

主题

677

帖子

1519

积分

金牌会员

Rank: 6Rank: 6

积分
1519
地板
发表于 2015-12-3 11:07 AM | 只看该作者
觉得对你有帮助的话,记得给我加赏金哦.呵呵                                                                                                                                                                       
回复 支持 反对

使用道具 举报

6

主题

23

帖子

56

积分

注册会员

Rank: 2

积分
56
5#
 楼主| 发表于 2015-12-26 05:33 AM | 只看该作者
楼上的朋友很热情!                                                                                                                                                                       
回复 支持 反对

使用道具 举报

34

主题

231

帖子

500

积分

高级会员

Rank: 4

积分
500
6#
发表于 2015-12-26 06:34 AM | 只看该作者
热情有什么用?楼主没有一点回应呀!好与不好也不知!                                                                                                                                                                       
回复 支持 反对

使用道具 举报

34

主题

231

帖子

500

积分

高级会员

Rank: 4

积分
500
7#
发表于 2015-12-26 07:49 AM | 只看该作者
汇编永远的痛                                                                                                                                                                       
回复 支持 反对

使用道具 举报

34

主题

231

帖子

500

积分

高级会员

Rank: 4

积分
500
8#
发表于 2015-12-26 09:56 AM | 只看该作者
问题解决了没有啊?                                                                                                                                                                       
回复 支持 反对

使用道具 举报

6

主题

23

帖子

56

积分

注册会员

Rank: 2

积分
56
9#
 楼主| 发表于 2015-12-26 11:30 AM | 只看该作者
哎,不好意思。前些天忙得很,没上网。现在想结贴,竟然过期了,结不了了。                                                                                                                                                                       
回复 支持 反对

使用道具 举报

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

本版积分规则

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