51单片机驱动1602初始化问题(汇编)

程序在硬件能成功初始化,仿真时初始化不成功,停留在如图状态,1602一直处于忙状态(P0.7一直为高电平),求高人指点,最好能写出优化后的程序!谢谢~相关程序段如下:OR... 程序在硬件能成功初始化,仿真时初始化不成功,停留在如图状态,1602一直处于忙状态(P0.7一直为高电平),求高人指点,最好能写出优化后的程序!谢谢~
相关程序段如下:
ORG 0000H
SJMP MAIN
ORG 000BH
LJMP TIME
ORG 0020H
MAIN: MOV SP,#60H;设置堆栈 60H
CALL D10MS ;D10MS延时10ms
MOV A,#38H ;初始化LCD
CALL XIEZL0
CALL D10MS
CALL XIEZL
MOV A,#08H
CALL XIEZL
MOV A,#01H
CALL XIEZL
MOV A,#06H
CALL XIEZL
MOV A,#0FH
CALL XIEZL
SJMP $
;=================
D10MS: MOV R5,#20 ; 10MS延时
LOPD: MOV R6,#249
DJNZ R6,$
DJNZ R5,LOPD
RET
;=================
DUZT: MOV P0,#0FFH ;LCD读状态
MOV P2,#11011111B
LOPT: JB P0.7,LOPT
CLR E
RET
;=================
XIEZL: CALL DUZT ;写LCD指令
XIEZL0: MOV P0,A ;指令存放 A
MOV P2,#00011111B
SETB E
CLR E
RET
;=========================
XIESJ: CALL DUZT ;写LCD数据
MOV P0,A ;数据存放 A
MOV P2,#00111111B
SETB E
CLR E
RET
;=================
DUSJ: CALL DUZT ;LCD读数据
MOV P2,#11111111B
MOV A,P0 ;数据读入 A
CLR E
RET
END
展开
 我来答
做而论道
高能答主

2012-06-04 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:8336万
展开全部
液晶屏 的 电源线,是不是接反了?
追问
看了一下,却是是接反了,但那不是主要问题,接反了仿真没关系,自己仔细看了一下,问题是程序初始化查询状态子程序(DUZT)有问题!仿真的LCD读状态是上升沿有效,我硬件datasheet是高电平有效~~
程序改为:
DUZT: MOV P0,#0FFH ;LCD读状态
MOV P2,#01011111B
LOPT: clr e
setb e
JB P0.7,LOPT
CLR E
RET
仿真可以了!
谢谢~~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式