📄 12864lcm_asm.txt
字号:
12864液晶显示汉字程序
________________________________________
;/*****************************************************************************/
;语言:汇编语言
;功能:12864上显示汉字
;修改:
;时间:2006-10-19
;作者:www.22sky.com
;/*****************************************************************************/
RS EQU P2.7
RW EQU P2.6
E EQU P2.5
PSB EQU P2.4 ;高是并行的 低是串行的
RST EQU P2.2 ;复位
com equ 20h
dat equ 21h
;********************************************************************************
;程序开始
;********************************************************************************
ORG 0000H
LJMP MAIN
ORG 0100H
;-----------------------------------------------
MAIN:
CLR P2.1
CLR P2.0
mov p0,#0ffh
LCALL DELAY2
SETB RST
SETB PSB ;通讯方式为8位数据并口
;********************初始化**********************
LGS0:
MOV com,#30H ;30H--基本指令操作
LCALL SEND_I
MOV com,#01H ;清除显示
LCALL SEND_I
MOV com,#06H ;指定在资料写入或读取时,光标的移动方向
LCALL SEND_I
MOV com,#0cH ;开显示,关光标,不闪烁
LCALL SEND_I
;===============================================
;显示汉字和字符
;加入80ms的延时,使你能够看清楚显示的过程
;根据汉字显示坐标分段写入(顺序写入)
;=================================================
MOV DPTR,#TAB1 ;显示汉字和字符
MOV com,#82H ;第一行起始地址
LCALL SEND_I
MOV R1,#0
MOV A,#0
MOV R2,#8
LOOP:
MOV a,r1
MOVC A,@A+DPTR
mov dat,a
LCALL SEND_DATA
inc r1
DJNZ R2,LOOP
sJMP $
;===============================================
;写数据子程序
;RS=1,RW=0,E=高脉冲,D0-D7=数据
;===============================================
SEND_data:
lcall delay2
clr rs
setb rw
SETB RS
CLR RW
clr e
MOV P0,dat
SETB E
NOP
NOP
CLR E
RET
;===============================================
;写指令子程序
;RS=0,RW=0,E=高脉冲,D0-D7=指令码
;===============================================
SEND_I:
lcall delay2
setb rs
setb rw
CLR RS
CLR RW
clr e
MOV P0,com
SETB E
NOP
NOP
CLR E
RET
;延时子程序
DELAY2:
MOV R6,#60H
DEL21: MOV R7,#60H
DEL22: DJNZ R7,DEL22
DJNZ R6,DEL21
RET
;***********************************************
TAB1: DB 0CCH,0ECH,0BFH,0D5H,0B5H,0E7H,0D7H,0D3H ;天空电子
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -