3662|6

77

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求此程序的执行流程图 [复制链接]


                   RS EQU P3.7         ;RS <---->P3.7
                   RW EQU P3.6         ;R/W <--->P3.6
                   E  EQU P3.5         ;E <----->P3.5
                   ORG 0000H
                   AJMP INT
;
;=======================模块初始化================================
INT:    MOV P1,#01H                ;清屏
        ACALL ENABLE
        MOV P1,#38H                ;工作方式设置
        ACALL ENABLE
        MOV P1,#0EH                ;显示状态设置
        ACALL ENABLE
        MOV P1,#06H                ;输入方式设置
        ACALL ENABLE
;
;=====以下是一个循环显示xuehao
;==================在第一行前8位显示字符==================
MAIN1:        MOV P1,#80H                  ;1 0000000,设定DDRAM地址为00H
;                                 实际是设定从显示屏的第1位开始显示
        ACALL ENABLE
        MOV P1,#0FH                ;这P1口仅作为辅助指示用
        MOV DPTR,#TAB1
        MOV R1,#00H
A1:     MOV A,R1
        MOVC A,@A+DPTR
        MOV P1,A                ;把取到的数据送给模块显示
        ACALL WRITER
        INC R1
        ACALL DELAY1S
        CJNE A,#00H,A1        ;遇00H结束
;
;==================在第一行后前8位显示字符===================
MAIN2:  MOV P1,#0C0H         ;1 1000000,设定DDRAM地址为40H
;                                 实际是设定从显示屏的第9位开始显示
        ACALL ENABLE
        MOV P1,#0F0H                ;这P1口仅作为辅助指示用
        MOV DPTR,#TAB2
        MOV R1,#00H
A2:     MOV A,R1
        MOVC A,@A+DPTR
        MOV P1,A                ;把取到的数据送给模块显示
        ACALL WRITER
        INC R1
        ACALL DELAY1S
        CJNE A,#00H,A2        ;遇00H结束
        ACALL DELAY1S
;
;==============重复显示=======================================
        MOV P1,#01H                ;清屏
        ACALL ENABLE
        AJMP MAIN1
;
;======================显示模块前后8位字符表===================
TAB1:    DB "105263010440";xuehao
        DB 00H
;
;======================显示模块后8位字符表======================
TAB2:   DB "weiwei jinshuan"        ;xingming
         DB 00H
;
;
;

;
;===================模块的各个子程序============================
;
;
;========RS=0,RW=0,E=1,使模块工作并准备接收控制指令===========
ENABLE: CLR RS
        CLR RW
        CLR E
        ACALL WAIT
        SETB E
        RET
;
;=======读BF的值,对模块进行任何操作前必须判断模块是否“忙”(BF=1)====
;            如果不“忙”(BF=0)才可以进行各种操作
WAIT:   MOV P1,#0FFH
        CLR RS
        SETB RW
        CLR E
        NOP
        SETB E
        JB P1.7,WAIT
        RET
;
;================RS=1,RW=0,E=1,写显示数据到模块指令============
WRITER: SETB RS
        CLR RW
        CLR E
        ACALL WAIT
        SETB E
        RET
;
;==============延时=============================
DELAY1S:MOV     R5,#04
DL4_PA: MOV     R6,#100
DL4_PB: MOV     R7,#100
        DJNZ    R7,$
        DJNZ    R6,DL4_PB
        DJNZ    R5,DL4_PA
        RET
;===========================================
END



不一定要流程图的,具体的说一下执行过程就行了,谢谢各位大侠了。
因为我很久没有接触汇编了。不太熟悉了。

最新回复

等待牛人来答.  详情 回复 发表于 2008-5-1 03:34
点赞 关注

回复
举报

84

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
今天放假哈。。。


LZ是做课设?

那您先扛几天,学学,要是不会

到时候在和你说说。。。
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
把编译后的HEX或BIN文件载入IDA试试~~~~
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

4
 
大哥,你需要先学习一下LCD的工作流程,你可以下载一些LCD的模块的使用说明书,上面讲得非常清楚的,先设置哪一些位,再设置哪一些位。。。呵呵
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
点阵显示而已
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

6
 
先给LCD相关寄存器初始化,然后分别显示两组字符.要说明的是,ENABLE子函数是写寄存器指令的,WRITER子函数是写显示数据的,在LCD模块手册上可以找到说明,体现在RS端子的电平上,H写数据,L写指令.该模块采用6800总线,读写是通过RW与E的时序来实现的,RW为L,且E在上升沿时写入.在显示字符时先确定了起始位置,写字符数据采用的方法不用再说了吧
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

7
 
等待牛人来答.
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表