12864显示程序(汇编语言)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ACALL WRI ;调用写指令子程序
ACALL DELAY
ACALL DELAY
LCALL DELAY ;延迟39uS
MOV COM,#06H ;DDRAM的地址计数器(AC)加1
ACALL WRI ;调用写指令子程序
LCALL DELAY ;延迟39uS
MOV A,#8
MOV R3,A
DISP32: MOV R2,A
MOV A,R1
ADD A,#2
MOV R0,A
MOV R1,A
ACALL DELAY1
ACALL DELAY
DJNZ R4,DISP2
;右移显示,时间间隔为1秒
MOV R0,#00H
MOV R1,#00H
MOV R2,#1
MOV R3,#1
DISP4: MOV COM,B
ACALL WRI
ACALL DISP21
MOV R0,#00H
INC R3
MOV A,R3
CJNE A,#9,DISP42
MOV R3,A ;保存显示位数
DISP22: MOV R2,A
DEC B ;取下一次显示首地址,并进行判断
MOV A,B
CJNE A,#8FH,DISP23
INC R3 ;取下一次显示文字个数
MOV A,R3
CJNE A,#9,DISP12 ;判断文字个数是否超过8
MOV A,#8 ;超过8个就定死显示个数
ACALL WRI ;调用写指令子程序
ACALL DELAY ;延时
ACALL DELAY
ACALL DELAY
DJNZ R4,DISP1 ;判断移位显示是否完毕
DAT2 EQU 33H ;汉字码址表高位存放单元
;******************************以上是接口定义
ORG 0000H
AJMP START
ORG 0030H
START: MOV SP,#60H
MOV B,#90H ;首地址小于90H时就定死在90H
INC R1 ;这时的首位文字偏移量也要相应改变
INC R1
MOV A,R1
MOV R0,A
INC R1
INC R1
MOV A,R1
MOV R0,A
DISP43: ACALL DELAY1
MOV COM,#01H ;清除屏幕显示,将DDRAM的地址计数器归零
ACALL WRI ;调用写指令子程序
LCALL DELAY ;延迟39uS
MOV COM,#01H ;清除屏幕显示,将DDRAM的地址计数器归零
ACALL WRI ;调用写指令子程序
DISP23: ACALL DELAY1
MOV COM,#01H ;清除屏幕显示,将DDRAM的地址计数器归零
ACALL WRI ;调用写指令子程序
ACALL DELAY
ACALL DELAY
MOV COM,#30H ;功能设置---8BIT控制界面,基本指令集
ACALL WRI ;调用写指令子程序
LCALL DELAY ;延迟39uS
MOV COM,#0CH ;显示打开,光标关,反白显示关
DJNZ R4,DISP3
MOV R0,#00H
MOV R1,#00H
MOV R2,#1
MOV R3,#1
MOV R4,#25
MOV B,#9FH
MOV R0,#00H ;显示文字偏移量
MOV R1,#00H ;附加显示文字偏移量
MOV R2,#1 ;显示文字个数
MOV R3,#1 ;附加显示文字个数
;R/W=“L”,E=“H→L”, DB7——DB0的数据被写到IR或DR
E EQU P2.6 ;使能信号
PSB EQU P2.7 ;H:8位或4位并口方式,L:串口方式(见注释1)
RST EQU P2.0 ;复位端,低电平有效
MOV R4,#25
DISP3: MOV COM,L DISP11
INC R3
MOV A,R3
CJNE A,#9,DISP32
MOV R0,A ;保存新的文字偏移量
MOV R1,A
ACALL DELAY1 ;延时下1秒再进行下一次显示
MOV COM,#01H ;清除屏幕显示,将DDRAM的地址计数器归零
MOV R3,A ;把新的显示个数进行保存
DISP12: MOV R2,A
MOV A,R1 ;把原先的文字偏移量加2得到新的首位文字偏移量
ADD A,#2
MOV R3,#1 ;附加显示文字个数
MOV R4,#25 ;总的显示次数
DISP1: MOV COM,#80H ;显示首地址
ACALL WRI ;调用写指令子程序
ACALL DISP11 ;调用右移显示子程序
MOV R4,#25 ;总的显示次数
MOV B,#97H ;显示首地址
DISP2: MOV COM,B ;送首位显示地址
ACALL WRI ;调用写指令子程序
ACALL DISP21 ;调用左移显示子程序
;模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空
COM EQU 30H ;DD RAM 地址存放单元
DAT EQU 31H ;汉字代码数据存放单元
DAT1 EQU 32H ;汉字码址表低位存放单元
LJMP DISP
;*********************************
DISP: CLR PSB
LCALL DELAY
SETB PSB ;将PSB置1,通信方式为8位数据并口
LCALL DELAY
MOV COM,#01H ;清除屏幕显示,将DDRAM的地址计数器归零
ACALL WRI ;调用写指令子程序
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV R0,#00H ;重新放首位显示偏移量
INC R3 ;取下一次显示位数,并进行判断
MOV A,R3
CJNE A,#9,DISP22
MOV A,#8
;****************************************************
;右移显示,时间间隔为1秒
DISPX: MOV R0,#00H ;显示文字偏移量
MOV R1,#00H ;附加显示文字偏移量
MOV R2,#1 ;显示文字个数
MOV A,#8
MOV R3,A
DISP42: MOV R2,A
DEC B
MOV A,B
CJNE A,#97H,DISP43
MOV B,#98H
;**********************************************
;占用单元30H,31H,32H,33H,A,DPTR,R2,R4,R6,R7
;功能:显示 浙江工业职业技术
; 学院电子协会欢迎
; 您
;
RS EQU P2.4 ;RS=“H”,表示DB7——DB0为显示数据
;RS=“L”,表示DB7——DB0为显示指令数据
RW EQU P2.5 ;R/W=“H”,E=“H”,数据被读到DB7——DB0
;*********************************************
;Controller:ST7920
;MCU:AT89C51 ,晶体频率:12MHz
;LCM:128*64
;LCM型号:带中文字库的128X64-0402
;LCM 接口:1:GND 2:VCC 3:V0 4.RS 5:RW 6:E 7--14:DB0-DB7 15:PSB 16:NC 17:RST 18:Vout
相关文档
最新文档