📄 qc0409a.asm
字号:
LCALL REBUSY
MOV ADDRL,#0
MOV ADDRH,#00H
LCALL SETADDR
MOV R2,#0
MOV R3,#120
CLRK:
MOV P1,#0FFH
CLR E
SETB E
DJNZ R2,CLRK
DJNZ R3,CLRK
RET
;;================================================================================
;清屏
CLREA2:
MOV ADDRL,#00H
MOV ADDRH,#00H
LCALL SETADDR
MOV R2,#0B8H
MOV R3,#0CH
CLRK2:
MOV P1,#0FFH
CLR E
SETB E
DJNZ R2,CLRK2
DJNZ R3,CLRK2
RET
;;================================================================================
;清屏
CLREA3:
MOV ADDRL,#30H
MOV ADDRH,#0CH
LCALL SETADDR
MOV R2,#018H
MOV R3,#016H
CLRK3:
MOV P1,#0FFH
CLR E
SETB E
DJNZ R2,CLRK3
DJNZ R3,CLRK3
RET
;;==================================================================
;地址换算子程序
;
FORADDR:
MOV A,ADDBH
JB ACC.7,FORADDR1
FORADDR1: ;第一区的换算: ADDRH,ADDRL=ADDBH,ADDBL*3
MOV B,#3
MOV A,ADDBL
MUL AB
MOV ADDRL,A
MOV TEMP1,B
MOV B,#3
MOV A,ADDBH
MUL AB
ADD A,TEMP1
MOV ADDRH,A
RET
FORADDR2: ;第二区的换算: 先ADDBH的最高位置0,然后是ADDRH,ADDRL=ADDBH,ADDBL*3
CLR ACC.7 ;最后再把ADDRH的最高位置1。
MOV ADDBH,A
MOV B,#3
MOV A,ADDBL
MUL AB
MOV ADDRL,A
MOV TEMP1,B
MOV B,#3
MOV A,ADDBH
MUL AB
ADD A,TEMP1
SETB ACC.7
MOV ADDRH,A
RET
;;==============================================================================
;设置颜色子程序(同时把数据写入LCD)
;入口: 变量BCOLOR 是背景颜色,FCOLOR 是前景颜色,大小为00H~07H, 其中00H为黑色,FFH为白色,
; 04H为红色, 02H为绿色,01H为蓝色.........
;设置颜色,一个字节WRDATA(单色)扩展到三个字节TEMP3,TEMP2,TEMP1(RGB 8色)
;实现的原理是检查WEDATA的每一位,为0时用背景颜色填充,为1时用前景颜色填充。
SETCOLOR:
MOV R6,#8
SETSRT:
JB WRDATA.0,SETC1
MOV A,BCOLOR
LJMP SETC2
SETC1:
MOV A,FCOLOR
SETC2:
MOV R7,#3
LCALL LOOP
MOV A,WRDATA
RRC A
MOV WRDATA,A
DJNZ R6,SETSRT
MOV P1,TEMP3
CLR E
SETB E
MOV P1,TEMP2
CLR E
SETB E
MOV P1,TEMP1
CLR E
SETB E
RET
LOOP:
RRC A
MOV TEMP4,A
MOV A,TEMP3
RRC A
MOV TEMP3,A
MOV A,TEMP2
RRC A
MOV TEMP2,A
MOV A,TEMP1
RRC A
MOV TEMP1,A
MOV A,TEMP4
DJNZ R7,LOOP
RET
;;==================================================================
WRCHINA24: ;写一个24*20的中文到LCD子程序
MOV DPTR,#CHIN24TAB
MOV A,CODEN
MOV B,#60
MUL AB
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
MOV R5,#20
LCALL FORADDR
LCALL SETADDR
WRCHIN241:
CLR A
MOVC A,@A+DPTR
MOV WRDATA,A
LCALL SETCOLOR
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV WRDATA,A
LCALL SETCOLOR
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV WRDATA,A
LCALL SETCOLOR
MOV A,#120 ;
ADD A,ADDRL ;
MOV ADDRL,A ;也可以像16*16的中文子程序那样用ADDBH,ADDBL+40换行
CLR A ;这里用ADDRH,ADDRL+120换行,作用是一样的
ADDC A,ADDRH ;
MOV ADDRH,A ;
LCALL SETADDR ;
INC DPTR
DJNZ R5,WRCHIN241
INC CODEN
MOV A,#3
ADD A,ADDBL
MOV ADDBL,A
CLR A
ADDC A,ADDBH
MOV ADDBH,A
RET
;;======================================================================
;设置地址子程序
SETADDR:
CLR AOO
MOV P1,ADDRL
CLR E
SETB E
MOV P1,ADDRH
CLR E
SETB E
SETB AOO
RET
NMTAB:
DB 020H,020H,0CEH,0D2H,0B9H,0ABH,0CBH,0BEH,0BFH,0AAH,0B7H
DB 0A2H,0B5H,0C4H,0B2H,0CAH,0C9H,0ABH,04CH,043H,044H
DB 0D6H,0C7H,0C4H,0DCH,0BFH,0D8H,0D6H,0C6H,0B0H,0E5H
DB 051H,058H,056H,04CH,043H,04DH,031H,02EH,031H,0C4H
DB 0DAH,0D6H,0C3H,0D7H,0D6H,0BFH,0E2H,0A3H,0ACH,0CDH
DB 0BCH,0BFH,0E2H,0A1H,0A3H,0B2H,0A2H,0BAH,0ACH,0D3H
DB 0D0H,0BBH,0ADH,0D4H,0B2H,0A3H,0ACH,0BBH,0ADH,0D6H
DB 0B1H,0CFH,0DFH,0B5H,0C8H,0B7H,0E1H,0B8H,0BBH,0B5H
DB 0C4H,0D6H,0B8H,0C1H,0EEH,0A1H,0A3H,0CDH,0A8H,0B9H
DB 0FDH,0D6H,0B8H,0C1H,0EEH,0BFH,0C9H,0BBH,0ADH,0B3H
DB 0F6H,0C8H,0CEH,0D2H,0E2H,0D0H,0B1H,0C2H,0CAH,0B5H
DB 0C4H,0D6H,0B1H,0CFH,0DFH,0A3H,0A8H,0D4H,0DAH,0D6H
DB 0B8H,0C1H,0EEH,0D6H,0D0H,0B8H,0F8H,0B3H,0F6H,0CAH
DB 0BCH,0B5H,0E3H,0D7H,0F9H,0B1H,0EAH,0BAH,0CDH,0D6H
DB 0D5H,0B5H,0E3H,0D7H,0F9H,0B1H,0EAH,0BCH,0B4H,0BFH
DB 0C9H,0A3H,0A9H,0A3H,0ACH,0CDH,0A8H,0B9H,0FDH,0D6H
DB 0B8H,0C1H,0EEH,0BFH,0C9H,0C8H,0CEH,0D2H,0E2H,0CEH
DB 0BBH,0D6H,0C3H,0BBH,0ADH,0B3H,0F6H,0C8H,0CEH,0D2H
DB 0E2H,0B4H,0F3H,0D0H,0A1H,0B0H,0EBH,0BEH,0B6H,0B5H
DB 0C4H,0D4H,0B2H,0D4H,0DAH,0D6H,0B8H,0C1H,0EEH,0D6H
DB 0D0H,0B8H,0F8H,0B3H,0F6H,0D4H,0B2H,0D0H,0C4H,0D7H
DB 0F9H,0B1H,0EAH,0BAH,0CDH,0B0H,0EBH,0BEH,0B6H,0B4H
DB 0F3H,0D0H,0A1H,0BCH,0B4H,0BFH,0C9H,0A3H,0A9H,0A1H
DB 0A3H,051H,058H,056H,04CH,043H,04DH,0BFH,0C9H,0CDH
DB 0A8H,0B9H,0FDH,0B4H,0AEH,0BFH,0DAH,0BBH,0F2H,0B2H
DB 0A2H,0BFH,0DAH,0D3H,0EBH,0B5H,0A5H,0C6H,0ACH,0BBH
DB 0FAH,0CDH,0A8H,0D0H,0C5H,0A1H,0A3H,0B5H,0B1H,0C8H
DB 0BBH,0D2H,0B2H,0BFH,0C9H,0D6H,0B1H,0BDH,0D3H,0D3H
DB 0EBH,050H,043H,0BBH,0FAH,0B4H,0AEH,0BFH,0DAH,0A3H
DB 0A8H,052H,032H,033H,032H,0A3H,0A9H,0CDH,0A8H,0D0H
DB 0C5H,0A3H,0ACH,0C8H,0E7H,0CDH,0A8H,0B9H,0FDH,0B0H
DB 0B2H,0D7H,0B0H,0CEH,0D2H,0B9H,0ABH,0CBH,0BEH,0B5H
DB 0C4H,0B7H,0C2H,0D5H,0E6H,0B5H,0F7H,0CAH,0D4H,0C8H
DB 0EDH,0BCH,0FEH,0BDH,0F8H,0D0H,0D0H,0D7H,0CAH,0C1H
DB 0CFH,0CFH,0C2H,0D4H,0D8H,0BCH,0B0H,0B7H,0C2H,0D5H
DB 0E6H,0B5H,0F7H,0CAH,0D4H,0A3H,0ACH,0B1H,0E3H,0BFH
DB 0C9H,0D2H,0D4H,0D4H,0DAH,050H,043H,0BBH,0FAH,0C9H
DB 0CFH,0CAH,0B5H,0CAH,0B1H,0BFH,0D8H,0D6H,0C6H,04CH
DB 043H,044H,0D6H,0C7H,0C4H,0DCH,0B0H,0E5H,0B6H,0F8H
DB 0BFH,0B4H,0B5H,0BDH,0CFH,0D4H,0CAH,0BEH,0D0H,0A7H
DB 0B9H,0FBH,0A1H,0A3H
DB 00DH,000H ;00DH,00H是字符传送结束码
CHIN24TAB:
;-- 文字: 彩 --
;-- 楷体_GB231215; 此字体下对应的点阵为:宽x高=20x20 --
;-- 宽度不是8的倍数,现调整为:宽度x高度=24x20 --;
DB 000H,0C0H,000H,001H,0C0H,040H,006H,000H,0C0H,001H,030H,080H,009H,061H,000H,00CH
DB 002H,000H,001H,004H,080H,001H,0E1H,080H,01FH,003H,000H,073H,082H,000H,007H,06CH
DB 000H,00DH,000H,0C0H,009H,000H,0C0H,031H,001H,080H,001H,003H,000H,001H,006H,000H
DB 001H,018H,000H,000H,020H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 色 --
;-- 楷体_GB231215; 此字体下对应的点阵为:宽x高=20x20 --
;-- 宽度不是8的倍数,现调整为:宽度x高度=24x20 --;
DB 000H,0C0H,000H,001H,090H,000H,001H,0F8H,000H,002H,030H,000H,004H,060H,000H,008H
DB 040H,000H,000H,0FCH,000H,01FH,08CH,000H,008H,088H,000H,008H,088H,000H,00FH,0F8H
DB 000H,008H,000H,040H,008H,000H,040H,008H,000H,040H,008H,000H,0C0H,00CH,001H,0C0H
DB 007H,0FFH,080H,001H,0FEH,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 液 --
;-- 楷体_GB231215; 此字体下对应的点阵为:宽x高=20x20 --
;-- 宽度不是8的倍数,现调整为:宽度x高度=24x20 --;
DB 000H,030H,000H,000H,018H,000H,018H,000H,000H,00CH,00FH,000H,000H,0F8H,000H,003H
DB 080H,000H,060H,0C8H,000H,030H,09FH,000H,001H,091H,000H,009H,02BH,000H,00BH,006H
DB 000H,015H,06CH,000H,011H,018H,000H,031H,026H,000H,061H,043H,080H,021H,001H,0F0H
DB 001H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 晶 --
;-- 楷体_GB231215; 此字体下对应的点阵为:宽x高=20x20 --
;-- 宽度不是8的倍数,现调整为:宽度x高度=24x20 --;
DB 000H,018H,000H,003H,0FCH,000H,001H,008H,000H,001H,0E8H,000H,001H,008H,000H,001H
DB 008H,000H,001H,0F8H,000H,001H,008H,000H,000H,000H,000H,007H,00FH,080H,039H,090H
DB 080H,011H,010H,080H,01DH,01EH,080H,011H,010H,080H,011H,010H,080H,01FH,01FH,080H
DB 001H,011H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 智 --
;-- 楷体_GB231215; 此字体下对应的点阵为:宽x高=20x20 --
;-- 宽度不是8的倍数,现调整为:宽度x高度=24x20 --;
DB 003H,000H,000H,002H,000H,000H,002H,0E0H,000H,007H,003H,0C0H,009H,01EH,0C0H,001H
DB 0E8H,080H,07FH,008H,080H,032H,0CFH,080H,006H,068H,000H,004H,000H,000H,009H,0FEH
DB 000H,031H,004H,000H,001H,0F4H,000H,001H,004H,000H,001H,004H,000H,001H,0FCH,000H
DB 001H,00CH,000H,000H,004H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 能 --
;-- 楷体_GB231215; 此字体下对应的点阵为:宽x高=20x20 --
;-- 宽度不是8的倍数,现调整为:宽度x高度=24x20 --;
DB 000H,030H,000H,006H,010H,000H,006H,012H,000H,00CH,017H,000H,009H,01CH,000H,013H
DB 090H,080H,03EH,090H,080H,020H,01FH,080H,01FH,080H,000H,011H,090H,000H,01DH,091H
DB 000H,011H,093H,000H,011H,09EH,000H,01DH,090H,040H,011H,090H,060H,013H,098H,060H
DB 011H,08FH,0C0H,001H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 控 --
;-- 楷体_GB231215; 此字体下对应的点阵为:宽x高=20x20 --
;-- 宽度不是8的倍数,现调整为:宽度x高度=24x20 --;
DB 004H,000H,000H,006H,008H,000H,006H,00CH,000H,006H,004H,000H,004H,043H,0C0H,007H
DB 07CH,0E0H,03CH,0C0H,080H,004H,096H,000H,004H,033H,000H,006H,021H,000H,00CH,040H
DB 000H,034H,00FH,000H,0E4H,038H,000H,044H,008H,000H,004H,008H,000H,01CH,03FH,0E0H
DB 00DH,0E0H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 制 --
;-- 楷体_GB231215; 此字体下对应的点阵为:宽x高=20x20 --
;-- 宽度不是8的倍数,现调整为:宽度x高度=24x20 --;
DB 001H,001H,080H,001H,000H,080H,001H,000H,080H,009H,000H,080H,009H,0E0H,080H,00FH
DB 004H,080H,019H,004H,080H,011H,0F4H,080H,07FH,004H,080H,001H,064H,080H,00FH,0F4H
DB 080H,009H,024H,080H,009H,020H,080H,009H,060H,080H,009H,020H,080H,003H,003H,080H
DB 003H,001H,080H,001H,001H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 板 --
;-- 楷体_GB231215; 此字体下对应的点阵为:宽x高=20x20 --
;-- 宽度不是8的倍数,现调整为:宽度x高度=24x20 --;
DB 00CH,000H,000H,00CH,000H,000H,00CH,002H,000H,004H,006H,000H,004H,01CH,000H,004H
DB 070H,000H,007H,040H,000H,07CH,04FH,000H,004H,073H,000H,00EH,042H,000H,01DH,056H
DB 000H,014H,04CH,000H,024H,084H,000H,044H,08AH,000H,00DH,011H,080H,00EH,060H,0E0H
DB 008H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -