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

📄 handler.asm

📁 本人亲自开发的320240LCD测试程序,这里为51平台,LCD控制器为SED1335,初学着研读之后非常方便移植到其他平台
💻 ASM
字号:
;           *************************************
;           *      SED1330 CONTROLLER TEST      *
;           *        LARGE SCREEN MODULE        *
;           *        TEST FOR 320240            *
;           *        98.11.9 OF WHY             *
;           *************************************
OXL    EQU 34H ; X 坐标低8 位寄存器(字节)
OY     EQU 36H ; Y 坐标寄存器(点行)
CODE   EQU 37H ; 汉字代码
AP     EQU 28H ; AP 值为SYSTEM SET 指令参数P9,每行字节数
COUNT1 EQU 32H ; 计数器1
COUNT2 EQU 33H ; 计数器2

WC_ADD EQU 7FFFH ; 写指令代码地址
WD_ADD EQU 7EFFH ; 写参数及显示数据地址
;RD_ADD EQU 7FFFH ; 读参数及显示数据地址
;RB_ADD EQU 7EFFH ; 读忙状态地址

ORG 0000H
START:      LCALL  INTR
            LCALL  CLEAR
L1:MOV OXL,#00H ; 设置X 坐标
MOV OY,#00H ; 设置Y 坐标
MOV CODE,#00H ; 设置汉字代码
LCALL CCTW ; 调汉字写入子程序
MOV OXL,#02H ; 设置X 坐标
MOV OY,#00H ; 设置Y 坐标
MOV CODE,#01H ; 设置汉字代码
LCALL CCTW ; 调汉字写入子程序
MOV OXL,#04H ; 设置X 坐标
MOV OY,#00H ; 设置Y 坐标
MOV CODE,#02H ; 设置汉字代码
LCALL CCTW ; 调汉字写入子程序
MOV OXL,#06H ; 设置X 坐标
MOV OY,#00H ; 设置Y 坐标
MOV CODE,#03H ; 设置汉字代码
LCALL CCTW ; 调汉字写入子程序


MOV OXL,#08H ; 设置X 坐标
MOV OY,#00H ; 设置Y 坐标
MOV CODE,#04H ; 设置汉字代码
LCALL CCTW ; 调汉字写入子程序
MOV OXL,#0aH ; 设置X 坐标
MOV OY,#00H ; 设置Y 坐标
MOV CODE,#05H ; 设置汉字代码
LCALL CCTW ; 调汉字写入子程序
MOV OXL,#0cH ; 设置X 坐标
MOV OY,#00H ; 设置Y 坐标
MOV CODE,#06H ; 设置汉字代码
LCALL CCTW ; 调汉字写入子程序
MOV OXL,#0eH ; 设置X 坐标
MOV OY,#00H ; 设置Y 坐标
MOV CODE,#07H ; 设置汉字代码
LCALL CCTW ; 调汉字写入子程序
MOV OXL,#10H ; 设置X 坐标
MOV OY,#00H ; 设置Y 坐标
MOV CODE,#08H ; 设置汉字代码
LCALL CCTW ; 调汉字写入子程序
MOV OXL,#12H ; 设置X 坐标
MOV OY,#00H ; 设置Y 坐标
MOV CODE,#09H ; 设置汉字代码
LCALL CCTW ; 调汉字写入子程序
MOV OXL,#14H ; 设置X 坐标
MOV OY,#00H ; 设置Y 坐标
MOV CODE,#0aH ; 设置汉字代码
LCALL CCTW ; 调汉字写入子程序
MOV OXL,#16H ; 设置X 坐标
MOV OY,#00H ; 设置Y 坐标
MOV CODE,#0bH ; 设置汉字代码
LCALL CCTW ; 调汉字写入子程序
HERE:       lJMP  L1




;INITIAZATION
INTR: MOV DPTR,#WC_ADD ; 设置写指令代码地址
MOV A,#40H ; SYSTEM SET 代码
MOVX @DPTR,A ; 写入指令代码
MOV COUNT1,#00H ; 设置计数器COUNT=0
INTR1: MOV DPTR,#SYSTAB ; 设置指令参数表地址
MOV A,COUNT1 ; 取参数
MOVC A,@A+DPTR
MOV DPTR,#WD_ADD ; 设置写参数及数据地址
MOVX @DPTR,A ; 写入参数
INC COUNT1 ; 计数器加一
MOV A,COUNT1
CJNE A,#08H,INTR1 ; 循环
MOV DPTR,#WC_ADD ; 设置写指令代码地址
MOV A,#44H ; SCROLL 代码
MOVX @DPTR,A ; 写入指令代码
MOV COUNT1,#00H ; 设置计数器COUNT=0
INTR2: MOV DPTR,#SCRTAB ; 设置指令参数表地址
MOV A,COUNT1 ; 取参数
MOVC A,@A+DPTR
MOV DPTR,#WD_ADD ; 设置写参数及数据地址
MOVX @DPTR,A ; 写入参数
INC COUNT1
MOV A,COUNT1 ; 计数器加一
CJNE A,#0AH,INTR2 ; 循环
MOV DPTR,#WC_ADD ; 设置写指令代码地址
MOV A,#5AH ; HDOT SCR 代码
MOVX @DPTR,A ; 写入指令代码
MOV DPTR,#WD_ADD ; 设置写参数及数据地址
MOV A,#00H ; 设置参数P1
MOVX @DPTR,A ; 写入参数
MOV DPTR,#WC_ADD ; 设置写指令代码地址
MOV A,#5BH ; OVLAY 代码
MOVX @DPTR,A ; 写入指令代码
MOV DPTR,#WD_ADD ; 设置写参数及数据地址
MOV A,#0cH ; 设置参数:显示一,三区为文本属性
MOVX @DPTR,A ; 二重"或"合成
LCALL CLEAR ; 调清显示RAM 子程序
MOV DPTR,#WC_ADD ; 设置写指令代码地址
MOV A,#59H ; DISP ON/OFF 代码
MOVX @DPTR,A ; 写入指令代码
MOV DPTR,#WD_ADD ; 设置写参数及数据地址
MOV A,#54H ; 设置参数:显示一四区开显示
MOVX @DPTR,A ; 光标关显示
RET
;CLEAR DISPLAY SUBROUTINE
CLEAR:      MOV    DPTR,#7fffH
            MOV    A,#4CH;光标右移
            MOVX   @DPTR,A
            MOV    A,#46H;光标指针首地址设置2个参数
            MOVX   @DPTR,A
            MOV    DPTR,#7effH
            MOV    A,#00H
            MOVX   @DPTR,A;0000h开始
            MOVX   @DPTR,A
            MOV    R1,#02H
            MOV    R2,#0F0H
            MOV    R3,#028H
            MOV    DPTR,#7fffH
            MOV    A,#42H;数据写入设置
            MOVX   @DPTR,A
            MOV    A,#00H
CLEAR0:     MOV    DPTR,#7effH
            MOVX   @DPTR,A
            DJNZ   R3,CLEAR0
            DJNZ   R2,CLEAR0
            DJNZ   R1,CLEAR0
            ;820添加
            MOV    DPTR,#7fffH
            MOV    A,#4fH
            MOVX   @DPTR,A
            RET
CCTW: MOV A,CODE ; 计算汉字字模数据首地址
MOV B,#20H
MUL AB
MOV DPTR,#CCTAB1 ; 汉字库入口地址
ADD A,DPL
PUSH ACC ; 入栈DPL
MOV A,B
ADDC A,DPH
PUSH ACC ; 入栈DPH
MOV A,OY ; 计算光标地址
MOV B,#AP ; 在计算时假定AP 值等于SYSTEM SET 指令P9
MUL AB ; 而P10=0
ADD A,OXL
;*8.21添加
ADD A,#80H;加显示二区起始地址低字节SAD2L
MOV OXL,A ; 存光标地址低字节
MOV A,B
ADDC A,#25H ; 加入显示二区起始地址高字节SAD2H
MOV OY,A ; 存光标地址高字节
MOV DPTR,#7FFFH
MOV A,#4FH ; CSRDIR 代码(下移)
MOVX @DPTR,A
MOV COUNT1,#02H ; 设置计数器1=2
CCTW1: MOV DPTR,#7FFFH
MOV A,#46H ; CSRW 代码
MOVX @DPTR,A
MOV DPTR,#7EFFH
MOV A ,OXL ; 设置光标地址CSR
MOVX @DPTR,A
MOV A,OY
MOVX @DPTR,A
MOV DPTR,#7FFFH
MOV A,#42H ; MWRITE 代码
MOVX @DPTR,A
MOV COUNT2,#10H ; 设置计数器2=16
CCTW2: POP DPH ; 出栈DPH
POP DPL ; 出栈DPL
CLR A
MOVC A,@A+DPTR ; 取字模数据
INC DPTR ; 指针加一
PUSH DPL ; 入栈DPL
PUSH DPH ; 入栈DPH
MOV DPTR,#7EFFH
MOVX @DPTR,A ; 写入数据
DJNZ COUNT2,CCTW2 ; 循环
MOV A,OXL ; 修正光标地址
ADD A,#01H ; (加一)
MOV OXL,A
MOV A,OY
ADDC A,#00H
MOV OY,A
DJNZ COUNT1,CCTW1;循环
POP ACC ; 修正栈值
POP ACC
RET








CCTAB1:

DB 000H 000H 000H 0F0H 091H 092H 09CH 093H;
DB 090H 0F3H 092H 082H 002H 002H 003H 002H;
DB 000H 040H 040H 0A0H 018H 00EH 004H 0F8H;
DB 000H 0F8H 008H 008H 008H 008H 0F8H 008H;"哈",0

DB 000H 004H 006H 008H 00FH 011H 020H 044H;
DB 006H 004H 008H 010H 020H 040H 000H 002H;
DB 000H 000H 000H 000H 0FEH 004H 088H 080H;
DB 0A0H 090H 088H 08CH 088H 080H 080H 080H;"尔",1

DB 000H 040H 020H 027H 084H 040H 001H 011H;
DB 011H 021H 021H 0C7H 040H 040H 041H 042H;
DB 000H 040H 020H 0FEH 004H 038H 0C0H 000H;
DB 0FCH 010H 010H 0FEH 000H 010H 008H 004H;"滨",2

DB 000H 000H 03FH 001H 001H 001H 001H 001H;
DB 001H 001H 001H 001H 001H 001H 0FFH 000H;
DB 000H 000H 0FCH 000H 000H 000H 000H 000H;
DB 000H 000H 000H 000H 000H 000H 0FEH 000H;"工",3

DB 00DH 071H 011H 011H 0FDH 011H 030H 03BH;
DB 054H 050H 093H 010H 010H 010H 017H 010H;
DB 0F8H 008H 008H 008H 008H 0F8H 000H 0FCH;
DB 040H 040H 0FCH 040H 040H 040H 0FEH 000H;"程",4

DB 001H 001H 001H 001H 001H 0FFH 001H 002H;
DB 002H 002H 004H 004H 008H 010H 020H 040H;
DB 000H 000H 000H 000H 000H 0FEH 000H 080H;
DB 080H 040H 040H 020H 010H 018H 00EH 004H;"大",5

DB 001H 010H 00CH 008H 07FH 040H 08FH 000H;
DB 000H 07FH 000H 000H 000H 000H 002H 001H;
DB 008H 08CH 0C8H 090H 0FEH 004H 0E8H 040H;
DB 080H 0FEH 080H 080H 080H 080H 080H 000H;"学",6


DB 000H 000H 000H 004H 00CH 014H 024H 024H;
DB 044H 044H 07EH 004H 004H 01EH 000H 000H;"4",0

DB 000H 000H 000H 010H 070H 010H 010H 010H;
DB 010H 010H 010H 010H 010H 07CH 000H 000H;"1",1

DB 000H 000H 000H 010H 070H 010H 010H 010H;
DB 010H 010H 010H 010H 010H 07CH 000H 000H;"1",2

DB 008H 008H 07FH 00AH 0FFH 008H 010H 03EH;
DB 0C4H 008H 00FH 0F8H 008H 008H 02BH 010H;
DB 020H 020H 020H 07EH 0C4H 044H 0C4H 048H;
DB 028H 028H 010H 010H 028H 0C8H 006H 004H;"教",3

DB 000H 0FDH 010H 010H 020H 020H 07BH 068H;
DB 0A8H 028H 028H 029H 039H 022H 004H 008H;
DB 000H 0FEH 088H 088H 088H 088H 0FEH 088H;
DB 088H 088H 088H 008H 008H 008H 008H 008H;"研",4

DB 002H 001H 03FH 020H 040H 03FH 004H 008H;
DB 01FH 001H 001H 03FH 001H 001H 0FFH 000H;
DB 000H 000H 0FEH 004H 008H 0FCH 000H 020H;
DB 0F0H 010H 000H 0F8H 000H 000H 0FEH 000H;"室",5




DB 001H 001H 0FFH 001H 002H 03FH 024H 022H;
DB 02FH 021H 03FH 021H 021H 021H 021H 000H;
DB 000H 004H 0FEH 000H 000H 0FCH 024H 044H;
DB 0F4H 004H 0FCH 004H 004H 014H 008H 000H;"南",0

DB 000H 07FH 004H 004H 004H 004H 0FFH 004H;
DB 004H 004H 008H 008H 010H 020H 040H 000H;
DB 000H 0FEH 020H 020H 020H 020H 0FEH 020H;
DB 020H 020H 020H 020H 020H 020H 020H 000H;"开",1


DB 000H 002H 002H 002H 002H 002H 03EH 002H;
DB 002H 002H 002H 006H 01AH 072H 022H 002H;
DB 000H 020H 020H 020H 022H 027H 02CH 030H;
DB 020H 020H 020H 020H 021H 021H 021H 01FH;"北",0

DB 000H 001H 000H 03FH 000H 000H 00FH 008H;
DB 008H 00FH 000H 004H 00CH 018H 020H 002H;
DB 000H 000H 084H 0FEH 000H 000H 0F8H 008H;
DB 008H 0F8H 080H 098H 08CH 086H 084H 080H;"京",1



DB 000H,040H,037H,010H,083H,060H,02FH,008H ;清
DB 013H,022H,0E3H,022H,023H,022H,022H,022H
DB 040H,048H,0FCH,040H,0F8H,040H,0FEH,008H
DB 0FCH,008H,0F8H,008H,0F8H,008H,028H,010H

DB	 80H, 00H, 80H, 00H, 80H, 00H, 80H, 00H
DB	0ffH,0ffH, 80H, 40H, 80H, 40H,0a0H, 23H
DB	 90H, 04H, 88H, 08H, 84H, 10H, 86H, 20H
DB	 80H, 60H,0c0H, 20H, 80H, 00H, 00H, 00H
;(c9b3H)(沙)(8001)
DB	 10H, 04H, 20H, 04H, 62H,0feH, 04H, 01H
DB	 8cH, 80H, 00H, 81H,0c0H, 40H, 30H, 40H
DB	 00H, 20H,0ffH, 17H, 00H, 08H, 10H, 04H
DB	 20H, 03H, 40H, 00H,0c0H, 00H, 00H, 00H

; * @0 哈(16x16,V)@ [suki software]*
  DB  080H,000H,  040H,001H,  02FH,0FEH,  018H,00CH
  DB  008H,008H,  00CH,018H,  01FH,0FCH,  001H,0C0H
  DB  001H,080H,  003H,04FH,  006H,068H,  03CH,058H
  DB  068H,048H,  018H,04CH,  024H,08AH,  042H,09FH

  DB  080H,000H,  040H,009H,  020H,01AH,  012H,014H
  DB  03EH,01CH,  026H,032H,  022H,061H,  023H,0C0H
  DB  023H,083H,  023H,07CH,  022H,020H,  026H,011H
  DB  03EH,07FH,  032H,045H,  020H,043H,  040H,041H




DB 004H,004H,008H,008H,018H,029H,04AH,008H ;华
DB 009H,001H,0FFH,001H,001H,001H,001H,001H
DB 040H,048H,058H,060H,0C0H,040H,044H,044H
DB 03CH,000H,0FEH,000H,000H,000H,000H,000H
DB 004H,0FFH,005H,041H,033H,014H,001H,0F6H ;蓬
DB 01BH,010H,013H,010H,017H,010H,028H,047H
DB 044H,0FEH,040H,0F8H,010H,0E0H,018H,046H
DB 0F8H,040H,0F8H,040H,0FCH,040H,046H,0FCH
DB 000H,043H,030H,010H,000H,007H,0F1H,011H ;远
DB 011H,011H,012H,012H,014H,028H,047H,000H
DB 010H,0F8H,000H,000H,008H,0FCH,020H,020H
DB 020H,024H,024H,01CH,000H,006H,0FCH,000H
ADATA:    DB  0FFH,000H,0FFH,000H,0FFH,000H,0FFH,000H
          DB  000H,0FFH,000H,0FFH,000H,0FFH,000H,0FFH
          DB  055H,055H,055H,055H,055H,055H,055H,055H
          DB  0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH,0AAH
          DB  0CCH,0CCH,0CCH,0CCH,0CCH,0CCH,0CCH,0CCH
          DB  033H,033H,033H,033H,033H,033H,033H,033H
          DB  01EH,012H,01EH,012H,01EH,012H,022H,000H
          DB  004H,00FH,014H,00EH,005H,01EH,004H,000H
          DB  008H,00FH,012H,00FH,00AH,01FH,002H,002H
          DB  00EH,011H,001H,00DH,015H,015H,00EH,000H
TAB1:       DB     030H,087H,007H,027H,042H,0F0H,028H,000H
TAB2:       DB     000H,000H,0F0H,080H,025H,0F0H,000H,04BH,080H,070H
SYSTAB:DB     030H,087H,007H,028H,02cH,0F0H,028H,000H; P1-P8 参数
SCRTAB:DB     000H,000H,0F0H,080H,025H,0F0H,000H,04BH,080H,070H; P1-P10 参数
          END




⌨️ 快捷键说明

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