?? 串口匯編.asm
字號:
;*************************************
;CONTROLLER:ST7920(串行接口)
;128×64 點陣
;EDITOR: 張炎
;CRYSTAL:12MHz
;CS=P3.0 SID=P3.1 SCLK=P3.2
;**************************************
CS EQU P3.4 ;H=DATA,L=COM
SID EQU P3.5 ;H=READ,L=WRITE
SCLK EQU P3.3 ;
COM EQU 30H ;控制字暫存單元
DAT EQU 31H ;顯示數據暫存單元
CODER EQU 32H ;字符代碼暫存單元
ADDR EQU 33H ;地址暫存單元
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
MOV SP,#60H
LCALL DEL_40MS
LCALL INI
MOV ADDR,#80H
MOV DPTR,#WEL_1
LCALL W_LINE
MOV ADDR,#90H
MOV DPTR,#WEL_2
LCALL W_LINE
MOV ADDR,#88H
MOV DPTR,#WEL_3
LCALL W_LINE
MOV ADDR,#98H
MOV DPTR,#WEL_4
LCALL W_LINE
LCALL DEL_1500MS
MOV ADDR,#80H
MOV DPTR,#WEL_5
LCALL W_LINE
MOV ADDR,#90H
MOV DPTR,#WEL_6
LCALL W_LINE
MOV ADDR,#88H
MOV DPTR,#WEL_7
LCALL W_LINE
MOV ADDR,#98H
MOV DPTR,#WEL_8
LCALL W_LINE
LCALL DEL_1500MS
MOV ADDR,#80H ;
MOV DPTR,#HZ_1 ;
LCALL W_LINE
MOV ADDR,#90H ;
MOV DPTR,#HZ_2 ;
LCALL W_LINE
MOV ADDR,#88H ;
MOV DPTR,#HZ_3 ;
LCALL W_LINE
MOV ADDR,#98H ;
MOV DPTR,#HZ_4 ;
LCALL W_LINE
LCALL DEL_1500MS ;延時后顯示下一頁
MOV ADDR,#80H ;
MOV DPTR,#HZ_5 ;
LCALL W_LINE
MOV ADDR,#90H ;
MOV DPTR,#HZ_6 ;
LCALL W_LINE
MOV ADDR,#88H ;
MOV DPTR,#HZ_7 ;
LCALL W_LINE
MOV ADDR,#98H ;
MOV DPTR,#HZ_8 ;
LCALL W_LINE
LCALL DEL_1500MS
LJMP MAIN
INI:
MOV COM,#30H ;功能設定,基本指令
LCALL WCOM
MOV COM,#30H ;基本指令,8-bit 模式,基本指令
LCALL WCOM
MOV COM,#0CH ;顯示開,游標關,反白關
LCALL WCOM
MOV COM,#01H ;清除顯示
LCALL WCOM
MOV COM,#06H ;進入設定點,游標 7 右移,畫面不移動
LCALL WCOM
RET
W_LINE:
MOV COM,ADDR
LCALL WCOM
MOV R4,#16 ;連續寫入 8 個中文或者 16 個西文字符
W_L1:
MOV A,#00H
MOVC A,@A+DPTR
MOV CODER,A
LCALL WCODE
INC DPTR
DJNZ R4,W_L1
RET
WCOM:
LCALL STWC
MOV A,COM
LCALL W4_D ;送入高四位指令
LCALL W4_0 ;連續送入四個 0
LCALL W4_D ;送入高四位指令
LCALL W4_0 ;連續送入四個 0
CLR CS
LCALL DEL_2MS
RET
WCODE:
LCALL STWD
MOV A,CODER
LCALL W4_D
LCALL W4_0
LCALL W4_D
LCALL W4_0
CLR CS
LCALL DEL_2MS
RET
STWC:
SETB CS
SETB SID
MOV R3,#5 ;連續送入 5 個"1",起始
STWC1:
SETB SCLK
CLR SCLK
DJNZ R3,STWC1
CLR SID
MOV R3,#3
STWC2:
SETB SCLK ;RW=0,RS=0,第八位"0"
CLR SCLK
DJNZ R3,STWC2
RET
STWD:
SETB CS
SETB SID
MOV R3,#5 ;連續送入 5 個"1",起始
STWD1:
SETB SCLK
CLR SCLK
DJNZ R3,STWD1
CLR SID ;RW=0
SETB SCLK
CLR SCLK
SETB SID ;RS=1
SETB SCLK
CLR SCLK
CLR SID ;第八位"0"
SETB SCLK
CLR SCLK
RET
W4_D:
MOV R3,#4
W4_D1:
RLC A
MOV SID,C
SETB SCLK
CLR SCLK
DJNZ R3,W4_D1
RET
W4_0:
MOV R3,#4
W4_01:
CLR SID
SETB SCLK
CLR SCLK
DJNZ R3,W4_01
RET
DEL_2MS:
MOV R0,#2
D1:
MOV R1,#200
D2:
NOP
NOP
NOP
DJNZ R1,D2
DJNZ R0,D1
RET
DEL_40MS:
MOV R2,#20
D3:
LCALL DEL_2MS
DJNZ R2,D3
RET
DEL_200MS:
MOV R2,#100
D4:
LCALL DEL_2MS
DJNZ R2,D4
RET
DEL_500MS:
MOV R2,#250
D5:
LCALL DEL_2MS
DJNZ R2,D5
RET
DEL_1500MS:
LCALL DEL_500MS
LCALL DEL_500MS
LCALL DEL_500MS
RET
WEL_1:
DB "WWW.RHLCM.COM.CN"
WEL_2:
DB "歡迎使用人和液晶"
WEL_3:
DB "020-87573676"
WEL_4:
DB "支持圖形和文本顯"
WEL_5:
DB "示,可顯示 8X4行"
WEL_6:
DB "共 32 個中文,內帶"
WEL_7:
DB "標準中文字庫,內"
WEL_8:
DB "含 8192 個中文字型"
HZ_1:
DB " 桃 夭 "
HZ_2:
DB "詩經·\u22269X風·\u21608X南"
HZ_3:
DB "桃之夭夭灼灼其華"
HZ_4:
DB "之子于歸宜其室家"
HZ_5:
DB "桃之夭夭有蕡其實"
HZ_6:
DB "之子于歸宜其家室"
HZ_7:
DB "桃之夭夭其葉蓁蓁"
HZ_8:
DB "之子于歸宜其家人"
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -