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

📄 正在检测.txt

📁 是HD61202液晶显示汉字的完整程序代码
💻 TXT
📖 第 1 页 / 共 3 页
字号:


         DRAW1:

                LCALL   DELAY2S
                MOV     A, R1
                MOV     R6,A         ; 绘点
                MOV     R2,A
                MOV     R7,#09AH
        LOOP1:  MOV     O_XL,R6       ; 列地址设置
                MOV     O_YL,R7         ; 行地址设置
                LCALL   W_DOT

                INC     R6
                NOP                     ;725
                NOP
                NOP
                NOP

                MOV    A,R2

                ADD    A,#02H
                MOV     80H,A
                MOV     A,R6
                ;MOV    R1,A
                ;ADD    R2,#0AH

                CJNE    A,80H,LOOP1 ;725
                MOV     A,R2         ;725
                MOV     R6,A          ;725
                INC     R7
                NOP                     ;725
                NOP
                NOP
                NOP
                NOP                     ;725
                NOP
                NOP
                NOP
                CJNE    R7,#09CH,LOOP1
                MOV     A,R1


                ADD     A,#0AH
                MOV     R1,A
;LOOP:           LCALL   DRAW1

                ;CJNE    R1,#80H,DRAW1
                DJNZ    82H,DRAW1
                AJMP    $
                ;LCALL   DRAW
                RET

                ;AJMP    WIPE
                ;RET

;        LOOP3:  MOV     O_XL,R6       ; 列地址设置
;                MOV     O_YL,R7         ; 行地址设置
;                LCALL   W_DOT
;                INC     R6
;                INC     R7
;                CJNE    R7,#0C0H,LOOP3
;*******************************************************************************
       ; WIPE:

                LCALL   DELAY2S
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                MOV     A,R2
                MOV     R6,A         ; 绘点727
                MOV     R7,#00H
        LOOP3:  MOV     O_XL,R6       ; 列地址设置
                MOV     O_YL,R7         ; 行地址设置
                LCALL   W_DOT


                INC     R6
                MOV    A,R2

                ADD    A,#10H
                MOV     34H,A
                MOV     A,R6


                CJNE    A,34H,LOOP3 ;725
                ;MOV     R6,#00H         ;725
                MOV     A,R2         ;725
                MOV     R6,A          ;725
                INC     R7


                CJNE    R7,#10H,LOOP3
                MOV     A,R1


                ADD     A,#05H
                MOV     R1,A
;LOOP:           LCALL   DRAW1
                CJNE    R1,#80H,DRAW1

                ;LCALL   DRAW
                RET




;----------------------------------------------------
         ;WIPE:  MOV     R6,#00H         ; 消点
                MOV     R7,#00H
        LOOP4:  MOV     O_XL,R6       ; 列地址设置
                MOV     O_YL,R7         ; 行地址设置
                LCALL   W_DOT
                INC     R6
                INC     R7
                CJNE    R7,#040H,LOOP4
        LOOP5:  DEC     R7
                MOV     O_XL,R6       ; 列地址设置
                MOV     O_YL,R7         ; 行地址设置
                LCALL   W_DOT
                INC     R6
                CJNE    R7,#00H,LOOP5

;        LOOP6:  MOV     O_XL,R6       ; 列地址设置
;                MOV     O_YL,R7         ; 行地址设置
;                LCALL   W_DOT
;                INC     R6
;                INC     R7
;                CJNE    R7,#40H,LOOP6
                SJMP    $


;------------------------------------------
;  绘点子程序W_DOT(适应MGLS12864)
;  占用内部资源:O_XL,O_YL,A,B
;  内部调用子程序:PR1,PR2,PR3,PR4,PR5,PR6
;  程序调用入口: W_DOT
;  程序输入变量:  O_XL,O_YL
;-----------------------------------------------------------------------
        W_DOT:  MOV     A,O_YL          ; 读行地址寄存器
                ANL     A,#7FH          ; 屏蔽点标志位
                MOV     B,#08H          ; 8点行/页
                DIV     AB              ; A为页地址,B为点位置
                ORL     A,#0B8H         ; 设置页面地址
                MOV     COM,A
                LCALL   PR1
                LCALL   PR4
                INC     B               ; B作为循环量加1
                SETB    C               ; 设置点数据
                CLR     A               ; A=0
       W_DOT1:  RLC     A               ; 数据带进位左移位
                DJNZ    B,W_DOT1        ; 循环将点数据移到位
                PUSH    ACC             ; 点数据入栈
                MOV     A,O_XL        ; 读列寄存器
                CLR     C
                SUBB    A,#40H          ; 列地址-64
                JC      W_DOT3          ; 〈0为左屏显示区域
                MOV     O_XL,A        ; ≥0为右屏显示区域
                MOV     COM,O_XL      ; 设置列地址值
                ORL     COM,#40H        ; "或"列地址指令标志位
                LCALL   PR4
                LCALL   PR6            ; "空读"
                LCALL   PR6
                MOV     A,O_YL          ; 取点标志位置入进位位C
                MOV     C,ACC.7
                POP     ACC             ; 取点数据
                JNC     W_DOT11         ; 判点标志为"0"?
                ORL     A,DAT1           ; 将点数据"1"写入当前显示数据
                LJMP    W_DOT12
       W_DOT11: CPL     A               ; 点数据取反
                ANL     A,DAT1           ; 将点数据"0"写入当前显示数据
       W_DOT12: MOV     DAT1,A           ; 存入数据
                MOV     COM,O_XL      ; 设置列地址值
                ORL     COM,#40H        ; "或"列地址指令标志位
                LCALL   PR4
                LCALL   PR5            ; 写入数据
                RET
        W_DOT3: MOV     COM,O_XL      ; 设置列地址值
                ORL     COM,#40H        ; "或"列地址指令标志位
                LCALL   PR1
                LCALL   PR3            ; "空读"
                LCALL   PR3
                MOV     A,O_YL          ; 取点标志位置入进位位C
                MOV     C,ACC.7
                POP     ACC             ; 取点数据
                JNC     W_DOT31         ; 判点标志为"0"?
                ORL     A,DAT1           ; 将点数据"1"写入当前显示数据
                LJMP    W_DOT32
       W_DOT31: CPL     A               ; 点数据取反
                ANL     A,DAT1           ; 将点数据"0"写入当前显示数据
       W_DOT32: MOV     DAT1,A           ; 存入数据
                MOV     COM,O_XL      ; 设置列地址值
                ORL     COM,#40H        ; "或"列地址指令标志位
                LCALL   PR1
                LCALL   PR2            ; 写入数据
                RET
;====================== 西文字符库 =============================
;================适应HD61202,SED1520控制器=====================
CHTAB:   DB 000H,000H,000H,000H,000H,000H,000H,000H      ;" "=00H
        DB 000H,000H,000H,04FH,000H,000H,000H,000H      ;"!"=01H
        DB 000H,000H,007H,000H,007H,000H,000H,000H      ;"""=02H
        DB 000H,014H,07FH,014H,07FH,014H,000H,000H      ;"#"=03H
        DB 000H,024H,02AH,07FH,02AH,012H,000H,000H      ;"$"=04H
        DB 000H,023H,013H,008H,064H,062H,000H,000H      ;"%"=05H
        DB 000H,036H,049H,055H,022H,050H,000H,000H      ;"&"=06H
        DB 000H,000H,005H,003H,000H,000H,000H,000H      ;"'"=07H
        DB 000H,000H,01CH,022H,041H,000H,000H,000H      ;"("=08H
        DB 000H,000H,041H,022H,01CH,000H,000H,000H      ;")"=09H
        DB 000H,014H,008H,03EH,008H,014H,000H,000H      ;"*"=0AH
        DB 000H,008H,008H,03EH,008H,008H,000H,000H      ;"+"=0BH
        DB 000H,000H,050H,030H,000H,000H,000H,000H      ;";"=0CH
        DB 000H,008H,008H,008H,008H,008H,000H,000H      ;"-"=0DH
        DB 000H,000H,060H,060H,000H,000H,000H,000H      ;"."=0EH
        DB 000H,020H,010H,008H,004H,002H,000H,000H      ;"/"=0FH
        DB 000H,03EH,051H,049H,045H,03EH,000H,000H      ;"0"=10H
        DB 000H,000H,042H,07FH,040H,000H,000H,000H      ;"1"=11H
        DB 000H,042H,061H,051H,049H,046H,000H,000H      ;"2"=12H
        DB 000H,021H,041H,045H,04BH,031H,000H,000H      ;"3"=13H
        DB 000H,018H,014H,012H,07FH,010H,000H,000H      ;"4"=14H
        DB 000H,027H,045H,045H,045H,039H,000H,000H      ;"5"=15H
        DB 000H,03CH,04AH,049H,049H,030H,000H,000H      ;"6"=16H
        DB 000H,001H,001H,079H,005H,003H,000H,000H      ;"7"=17H
        DB 000H,036H,049H,049H,049H,036H,000H,000H      ;"8"=18H
        DB 000H,006H,049H,049H,029H,01EH,000H,000H      ;"9"=19H
        DB 000H,000H,036H,036H,000H,000H,000H,000H      ;":"=1AH
        DB 000H,000H,056H,036H,000H,000H,000H,000H      ;";"=1BH
        DB 000H,008H,014H,022H,041H,000H,000H,000H      ;"<"=1CH
        DB 000H,014H,014H,014H,014H,014H,000H,000H      ;"="=1DH
        DB 000H,000H,041H,022H,014H,008H,000H,000H      ;">"=1EH
        DB 000H,002H,001H,051H,009H,006H,000H,000H      ;"?"=1FH
        DB 000H,032H,049H,079H,041H,03EH,000H,000H      ;"@"=20H
        DB 000H,07EH,011H,011H,011H,07EH,000H,000H      ;"A"=21H
        DB 000H,041H,07FH,049H,049H,036H,000H,000H      ;"B"=22H
        DB 000H,03EH,041H,041H,041H,022H,000H,000H      ;"C"=23H
        DB 000H,041H,07FH,041H,041H,03EH,000H,000H      ;"D"=24H
        DB 000H,07FH,049H,049H,049H,049H,000H,000H      ;"E"=25H
        DB 000H,07FH,009H,009H,009H,001H,000H,000H      ;"F"=26H
        DB 000H,03EH,041H,041H,049H,07AH,000H,000H      ;"G"=27H
        DB 000H,07FH,008H,008H,008H,07FH,000H,000H      ;"H"=28H
        DB 000H,000H,041H,07FH,041H,000H,000H,000H      ;"I"=29H
        DB 000H,020H,040H,041H,03FH,001H,000H,000H      ;"J"=2AH
        DB 000H,07FH,008H,014H,022H,041H,000H,000H      ;"K"=2BH
        DB 000H,07FH,040H,040H,040H,040H,000H,000H      ;"L"=2CH
        DB 000H,07FH,002H,00CH,002H,07FH,000H,000H      ;"M"=2DH
        DB 000H,07FH,006H,008H,030H,07FH,000H,000H      ;"N"=2EH
        DB 000H,03EH,041H,041H,041H,03EH,000H,000H      ;"O"=2FH
        DB 000H,07FH,009H,009H,009H,006H,000H,000H      ;"P"=30H
        DB 000H,03EH,041H,051H,021H,05EH,000H,000H      ;"Q"=31H
        DB 000H,07FH,009H,019H,029H,046H,000H,000H      ;"R"=32H
        DB 000H,026H,049H,049H,049H,032H,000H,000H      ;"S"=33H
        DB 000H,001H,001H,07FH,001H,001H,000H,000H      ;"T"=34H
        DB 000H,03FH,040H,040H,040H,03FH,000H,000H      ;"U"=35H
        DB 000H,01FH,020H,040H,020H,01FH,000H,000H      ;"V"=36H
        DB 000H,07FH,020H,018H,020H,07FH,000H,000H      ;"W"=37H
        DB 000H,063H,014H,008H,014H,063H,000H,000H      ;"X"=38H
        DB 000H,007H,008H,070H,008H,007H,000H,000H      ;"Y"=39H
        DB 000H,061H,051H,049H,045H,043H,000H,000H      ;"Z"=3AH
        DB 000H,000H,07FH,041H,041H,000H,000H,000H      ;"["=3BH
        DB 000H,002H,004H,008H,010H,020H,000H,000H      ;"\"=3CH
        DB 000H,000H,041H,041H,07FH,000H,000H,000H      ;"]"=3DH
        DB 000H,004H,002H,001H,002H,004H,000H,000H      ;"^"=3EH
        DB 000H,040H,040H,040H,040H,040H,000H,000H      ;"_"=3FH
        DB 000H,001H,002H,004H,000H,000H,000H,000H      ;"`"=40H
        DB 000H,020H,054H,054H,054H,078H,000H,000H      ;"a"=41H
        DB 000H,07FH,048H,044H,044H,038H,000H,000H      ;"b"=42H
        DB 000H,038H,044H,044H,044H,028H,000H,000H      ;"c"=43H
        DB 000H,038H,044H,044H,048H,07FH,000H,000H      ;"d"=44H
        DB 000H,038H,054H,054H,054H,018H,000H,000H      ;"e"=45H
        DB 000H,000H,008H,07EH,009H,002H,000H,000H      ;"f"=46H
        DB 000H,00CH,052H,052H,04CH,03EH,000H,000H      ;"g"=47H
        DB 000H,07FH,008H,004H,004H,078H,000H,000H      ;"h"=48H
        DB 000H,000H,044H,07DH,040H,000H,000H,000H      ;"i"=49H
        DB 000H,020H,040H,044H,03DH,000H,000H,000H      ;"j"=4AH
        DB 000H,000H,07FH,010H,028H,044H,000H,000H      ;"k"=4BH
        DB 000H,000H,041H,07FH,040H,000H,000H,000H      ;"l"=4CH
        DB 000H,07CH,004H,078H,004H,078H,000H,000H      ;"m"=4DH
        DB 000H,07CH,008H,004H,004H,078H,000H,000H      ;"n"=4EH
        DB 000H,038H,044H,044H,044H,038H,000H,000H      ;"o'=4FH
        DB 000H,07EH,00CH,012H,012H,00CH,000H,000H      ;"p"=50H
        DB 000H,00CH,012H,012H,00CH,07EH,000H,000H      ;"q"=51H
        DB 000H,07CH,008H,004H,004H,008H,000H,000H      ;"r"=52H
        DB 000H,058H,054H,054H,054H,064H,000H,000H      ;"s"=53H
        DB 000H,004H,03FH,044H,040H,020H,000H,000H      ;"t"=54H
        DB 000H,03CH,040H,040H,03CH,040H,000H,000H      ;"u"=55H
        DB 000H,01CH,020H,040H,020H,01CH,000H,000H      ;"v"=56H
        DB 000H,03CH,040H,030H,040H,03CH,000H,000H      ;"w"=57H
        DB 000H,044H,028H,010H,028H,044H,000H,000H      ;"x"=58H
        DB 000H,01CH,0A0H,0A0H,090H,07CH,000H,000H      ;"y"=59H
        DB 000H,044H,064H,054H,04CH,044H,000H,000H      ;"z"=5AH
        DB 000H,000H,008H,036H,041H,000H,000H,000H      ;"{"=5BH
        DB 000H,000H,000H,077H,000H,000H,000H,000H      ;"|"=5CH
        DB 000H,000H,041H,036H,008H,000H,000H,000H      ;"}"=5DH
        DB 000H,002H,001H,002H,004H,002H,000H,000H      ;"~"=5FH
        DB 000H,0FFH,0FFH,0FFH,0FFH,0FFH,000H,000H      ;" "=60H
;============== 中文字符库 ==================================
CCTAB:
DB 000H,002H,002H,0C2H,002H,002H,002H,0FEH    ; 正
DB 082H,082H,082H,0C2H,083H,002H,000H,000H
DB 040H,040H,040H,07FH,040H,040H,040H,07FH
DB 040H,040H,040H,040H,040H,060H,040H,000H

DB 008H,008H,008H,008H,0C8H,038H,00FH,008H    ; 在
DB 008H,0E8H,008H,088H,008H,00CH,008H,000H
DB 008H,004H,002H,0FFH,000H,040H,041H,041H
DB 041H,07FH,041H,041H,041H,060H,040H,000H
DB 010H,010H,0D0H,0FFH,010H,050H,020H,050H    ; 检
DB 04CH,043H,04CH,050H,020H,060H,020H,000H
DB 004H,003H,000H,0FFH,041H,042H,042H,05CH
DB 040H,05FH,040H,050H,04EH,064H,040H,000H
DB 010H,022H,06CH,000H,080H,0FCH,004H,0F4H    ; 测
DB 004H,0FEH,004H,0F8H,000H,0FEH,000H,000H
DB 004H,004H,0FEH,001H,040H,027H,010H,00FH
DB 010H,067H,000H,047H,080H,07FH,000H,000H
;**************************************************
DELAY2S:                ;725
         MOV   R3,#50
DE1:     MOV   R4,#100
DE2:     MOV   R5,#100
         DJNZ  R5,$
         DJNZ  R4,DE2
         DJNZ  R3,DE1
         RET


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -