;模 塊 名:ST7920 控制器 NS12864R
;功能描述:庫(kù)內(nèi)漢字的顯示
;***************************;
; NS12864顯示程序(庫(kù)內(nèi)漢字) ;
;***************************;
ORG 0000H
SJMP START
RS EQU P3.2 ;并行的指令/數(shù)據(jù)選擇信號(hào)
RW EQU P3.3 ;并行的讀寫選擇信號(hào)
E EQU P3.4 ;并行的使能信號(hào)
PSB EQU P3.5 ;并/串行接口選擇:H-并行;L-串行
COM EQU 20H ;指令代碼單元
DAT EQU 21H ;數(shù)據(jù)單元
ADRTEMP EQU 22H ;首地址暫存
COUNT EQU 23H ;計(jì)數(shù)器
H_DATA EQU 24H ;顯示數(shù)據(jù)高位地址暫存
L_DATA EQU 25H ;顯示數(shù)據(jù)低位地址暫存
;*******************;
; 主程序 ;
;*******************;
START: MOV SP,#30H
SETB PSB ;并行接口選擇
LCALL INT ;調(diào)用初始化子程序
MOV ADRTEMP,#80H ;第一行顯示首地址
MOV COUNT,#04H ;顯示的個(gè)數(shù)
LCALL CCW_PR ;顯示第一行的幾個(gè)漢字
MOV ADRTEMP,#90H ;第二行顯示首地址
MOV COUNT,#8H ;顯示的個(gè)數(shù)
LCALL CCW_0 ;顯示第二行的幾個(gè)漢字
MOV ADRTEMP,#88H ;第三行顯示首地址
MOV COUNT,#4H ;顯示的個(gè)數(shù)
LCALL CCW_0 ;顯示第三行的幾個(gè)漢字
MOV ADRTEMP,#98H ;第四行顯示首地址
MOV COUNT,#8H ;顯示的個(gè)數(shù)
LCALL CCW_0 ;顯示第四行的幾個(gè)漢字
SJMP $
;*******************;
; 寫指令代碼子程序 ;
;*******************;
PR0: PUSH ACC
CLR RS ;并行指令通道
SETB RW ;R/W=0
PR01: MOV P1,#0FFH ;P1口置"1"
SETB E
MOV A,P1 ;P1讀數(shù)
NOP
CLR E
JB ACC.7,PR01 ;判斷狀態(tài)字
CLR RS
CLR RW
SETB E
MOV P1,COM ;寫入指令
CLR E
POP ACC
RET
;*******************;
; 寫顯示數(shù)據(jù)子程序 ;
;*******************;
PR1: PUSH ACC
CLR RS
SETB RW
PR11: MOV P1,#0FFH ;P1口置"1"
SETB E
MOV A,P1 ;P1讀數(shù)
NOP
CLR E
JB ACC.7,PR11 ;判斷狀態(tài)字
SETB RS
CLR RW
SETB E
MOV P1,DAT ;顯示數(shù)據(jù)
CLR E
POP ACC
RET
;*******************;
; 初始化子程序 ;
;*******************;
INT: MOV COM,#30H ; 基本指令動(dòng)作
LCALL PR0
MOV COM,#06H ;位址歸位
LCALL PR0
MOV COM,#0FH ;開顯示設(shè)置(光標(biāo)顯示)
LCALL PR0
MOV COM,#01H ;清除顯示
LCALL PR0
RET
;*******************;
; 漢字輸入子程序 ;
;*******************;
CCW_PR: MOV DPTR,#CCTAB ;確定字符模塊首地址
MOV L_DATA,DPL ;字模低位地址
MOV H_DATA,DPH ;字模高位地址
CCW_0: MOV R0,#00H ;R0清零
MOV COM,ADRTEMP ;漢字顯示首地址
LCALL PR0 ;設(shè)置顯示首地址
MOV DPL,L_DATA ;字模高位地址
MOV DPH,H_DATA ;字模低位地址
CCW_1: CLR A
MOVC A,@A+DPTR ;取漢字字模高位數(shù)據(jù)
MOV DAT,A
LCALL PR1
INC DPTR
CLR A
MOVC A,@A+DPTR ;取漢字字模低位數(shù)據(jù)
MOV DAT,A
LCALL PR1
INC DPTR
INC R0
MOV A,R0
CJNE A,COUNT,CCW_1 ;一行顯示判斷
MOV L_DATA,DPL ;字模低位地址
MOV H_DATA,DPH ;字模高位地址
RET
CCTAB: DB 0B3H,0E8H,0C8H,0E8H,0B2H,0BBH,0BEH,0AAH
; 寵 辱 不 驚
DB 0CFH,0D0H,0BFH,0B4H,0CDH,0A5H,0C7H,0B0H,0BBH,0A8H,0BFH,0AAH,0BBH,0A8H,0C2H,0E4H
; 閑 看 庭 前 花 開 花 落
DB 0C8H,0A5H,0C1H,0F4H,0CEH,0DEH,0D2H,0E2H
; 去 留 無(wú) 意
DB 0C2H,0FEH,0CBH,0E6H,0CCH,0ECH,0CDH,0E2H,0D4H,0C6H,0BEH,0EDH,0D4H,0C6H,0CAH,0E6H
; 漫 隨 天 外 云 卷 云 舒
END