📄 chr1335.asm
字号:
;********************CHR1335********************
;本程序实现液晶显示控制器SED1335的字符和汉字显示。
;入口参数:汉字左上角的X坐标在SOU中,Y坐标在SOUH中。
;出口参数:无。
;占用资源:W,STATUS,RB0~RB2,RC,023H,024H,025H,028H,029H,二重堆栈。
;说 明:1.显示屏为320*240点阵。
; 2.显示屏前128行为图形方式显示汉字,后112行为文本方式显示字符
; 3.汉字的Y坐标以象素点为单位,X坐标以8象素点为单位。
WWR EQU 0
RRD EQU 1
A0 EQU 2
IFNDEF CHR13351
#DEFINE CHR13351
INCLUDE "INIT1335.ASM"
;*****************显示半个汉字***********************
SEND MOVLW 46H ;CSRW
CALL CMDIN
MOVF SOU,W
CALL DATAIN
MOVF SOUH,W
CALL DATAIN
MOVLW .16
MOVWF CNT ;8个字符
MOVLW 42H ;MWRITE
CALL CMDIN
LOOP98 MOVF TEMP1,W
CALL GETDATA
CALL DATAIN
INCF TEMP1,F
DECFSZ CNT,F
GOTO LOOP98
RETURN
;****************汉字和字符表格************
GETDATA ADDWF PCL,F
RETLW 01H ;青
RETLW 01H
RETLW 3FH
RETLW 01H
RETLW 1FH
RETLW 01H
RETLW 0FFH
RETLW 00
RETLW 01FH
RETLW 10H
RETLW 1FH
RETLW 010H
RETLW 01FH
RETLW 10H
RETLW 10H
RETLW 10H
RETLW 00H
RETLW 0H
RETLW 0F8H
RETLW 0H
RETLW 0F0H
RETLW 00H
RETLW 0FEH
RETLW 0H
RETLW 0F0H
RETLW 10H
RETLW 0F0H
RETLW 10H
RETLW 0F0H
RETLW 10H
RETLW 50H
RETLW 20H
RETLW 02H ;岛
RETLW 04H
RETLW 1FH
RETLW 10H
RETLW 14H
RETLW 13H
RETLW 12H
RETLW 10H
RETLW 1FH
RETLW 04H
RETLW 04H
RETLW 44H
RETLW 44H
RETLW 7FH
RETLW 00H
RETLW 00H
RETLW 00H
RETLW 00H
RETLW 0F0H
RETLW 10H
RETLW 10H
RETLW 10H
RETLW 50H
RETLW 020H
RETLW 0FCH
RETLW 04H
RETLW 04H
RETLW 044H
RETLW 044H
RETLW 0C4H
RETLW 028H
RETLW 10H
GETDATA2 ADDWF PCL,F
RETLW 57H ;W
RETLW 65H ;e
RETLW 6CH ;l
RETLW 63H ;c
RETLW 6FH ;o
RETLW 6DH ;m
RETLW 65H ;e
RETLW 20H ;空格
RETLW 59H ;Y
RETLW 6FH ;o
RETLW 75H ;u
RETLW 21H ;!
;*************第一个字***********
CHR1335 MOVLW 01001111B ;CSRDIR
CALL CMDIN ;设置光标移动方向为纵向
CLRF TEMP1 ;TEMP1暂存移出位
BCF STATUS,C
RLF SOUH,F
RLF TEMP1,F
RLF SOUH,F
RLF TEMP1,F
RLF SOUH,F
RLF TEMP1,F
RLF SOUH,F
RLF TEMP1,F
MOVF TEMP1,W
MOVWF TEMP2
MOVF SOUH,W
RLF SOUH,F
RLF TEMP1,F
ADDWF SOUH,W
BTFSC STATUS,C
INCF TEMP1,F ;TEMP1:SOUH=SOUH*48
ADDWF SOU,F
BTFSC STATUS,C
INCF TEMP1,F
MOVF TEMP2,W
ADDWF TEMP1,W
MOVWF SOUH ;SOUH:SOU=SOUH*48+SOU
CLRF TEMP1 ;TEMP1暂存字模表格首地址
CALL SEND ;显示汉字左半部分
INCF SOU,F
CALL SEND ;显示汉字右半部分
;**********第二个字*********
INCF SOU,F
BTFSC STATUS,Z
INCF SOUH,F
MOVLW .32
MOVWF TEMP1 ;第二个字的表格首地址
CALL SEND
INCF SOU,F
BTFSC STATUS,Z
INCF SOUH,F
CALL SEND
;**********三区显示"Welcome You!"****************
MOVLW .12
MOVWF CNT ;CNT作为字符计数器
CLRF TEMP2 ;TEMP2作为字符表格首地址
MOVLW 01001100B ;CSRDIR
CALL CMDIN
MOVLW 46H ;CSRW
CALL CMDIN
MOVLW 00H ;P1
CALL DATAIN
MOVLW 30H
CALL DATAIN ;P2(从三区首地址3000h开始)
MOVLW 42H
CALL CMDIN
LOOP97 MOVF TEMP2,W
CALL GETDATA2
CALL DATAIN
INCF TEMP2,F ;显示下一个字母
DECFSZ CNT,F
GOTO LOOP97
RETURN
ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -