⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 12864.asm

📁 12864测试时间温度18b20
💻 ASM
字号:
;************************************************************
;ST7920的测试程序,该程序使用并口,可测试128×64点阵。其接口为
;RS---P2.5     R/W---P2.6     E---------P2.7     DB0~7-----P0
;重庆电子网 www.cqmcu.com QQ 444011745  469040972
;************************************************************
RS EQU P2.5
RW EQU P2.6
E EQU P2.7

ORG 0000H
AJMP START

;主程序
ORG 0100H
START:
MOV  IE,#81H        ;EXT. INT0 PERMIT
MOV  IP,#01H        ;INT0 IS FIRST INT. LEVEL
MOV  TCON,#00H        ;TIMER/COUNTER CONTROLER INIT.
MOV  SP, #67h

LCALL DELAY
LCALL DELAY
LCALL SETUP

MOV  A,#80H ;第一,三行汉字测试
LCALL WRITE_COM
MOV  DPTR,#CHINESE1
LCALL WRITE_HZ
MOV  A,#90H ;第二,四行汉字测试
LCALL WRITE_COM
MOV  DPTR,#CHINESE2
LCALL WRITE_HZ

LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY

MOV  A,#80H ;第一,三行字符测试
LCALL WRITE_COM
MOV DPTR,#TABLE1
LCALL WRITE_ASCII
MOV  A,#90H ;第二,四行字符测试
LCALL WRITE_COM
MOV DPTR,#TABLE2
LCALL WRITE_ASCII


LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY

AAA: LJMP START

;初始化
SETUP:
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV  A,#01H ;清除显示
LCALL WRITE_COM
MOV  A,#00110000B ;8位MPU控制界面,基本指令集动作
LCALL WRITE_COM
MOV  A,#00000010B ;DDRAM的计数器(AC)到"00H",降游标移动到开头原点位置
LCALL WRITE_COM
MOV  A,#00000100B ;
LCALL WRITE_COM
MOV  A,#00001100B ;DISPLAY ON
LCALL WRITE_COM
MOV  A,#00000001B ;CLEARING SCREEN
LCALL WRITE_COM
MOV  A,#10000000B ;SET DDRAM ADDRESS
LCALL WRITE_COM
RET

;写指令
WRITE_COM: 
LCALL DELAY 
CLR  RS
CLR  RS
CLR  RW
CLR  RW
MOV  P0,A
MOV  P0,A
SETB E
SETB E
NOP
NOP
CLR  E
CLR  E
RET

;写显示数据 
WRITE_DAT: 
LCALL DELAY1
SETB RS
SETB RS
CLR  RW
CLR  RW
MOV  P0,A
MOV  P0,A
SETB E
SETB E
NOP
NOP
CLR  E
CLR  E
RET

;延时1×1+16×1+16×16×2+16×2+1×2=563us 
DELAY1:
MOV  R7,#10H
D11: MOV  R6,#10H
DJNZ R6,$
DJNZ R7,D11
RET

;延时1×1+256×1+256×256×2+256×2+1×2=131843us
DELAY:
MOV  R1,#00H
D2: MOV  R2,#00H
DJNZ R2,$
DJNZ R1,D2
RET

;写32个字符到128×64液晶模块,前16个汉字在第一(二)行,后16个汉字在第三(四)行。
WRITE_ASCII:
MOV  R4,#32
DDDD: CLR  A
MOVC A,@A+DPTR
LCALL WRITE_DAT
INC  DPTR
DJNZ R4,DDDD
RET

;写16个汉字到128×64液晶模块,前8个汉字在第一(二)行,后8个汉字在第三(四)行。
WRITE_HZ: 
MOV  R4,#16
DD: CLR  A
MOVC A,@A+DPTR

LCALL WRITE_DAT
INC  DPTR
CLR  A
MOVC A,@A+DPTR

LCALL WRITE_DAT
INC DPTR
DJNZ R4,DD
RET

;定位,使汉字代码以偶字节开始
ORG 1000H
;"这里是16*16点阵的汉字代码表"
CHINESE1:            DB "重庆电子网—--—"   
CHINESE2:            DB "黑金刚51单片机学习板"   
;"这里是16*8点阵的字符代码"
TABLE1: DB        "www.cqmcu.com"               
TABLE2: DB        "QQ:444011745 469040972         "
;结束
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -