?? st7920.txt
字號:
;************************************************************
;ST7920的測試程序,該程序使用并口,可測試128×64點陣。其接口為
;RS---P3.3 R/W---P3.1 E---------P3.0 DB0~7-----P1
;************************************************************
RS EQU P3.0
RW EQU P3.1
E EQU P3.3
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 P1,A
MOV P1,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 P1,A
MOV P1,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 ;"這里是16*8點陣的字符代碼"
TABLE1: DB
TABLE2: DB ;結束
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -