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

📄 chr1335.asm

📁 PIC单片机的汇编源码合集,应用比较广泛,设计程序时可做子程序来用
💻 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 + -