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

📄 qc0409a.asm

📁 2005年全国大学生电子设计大赛实验程序 附各个模块以及生成文件
💻 ASM
📖 第 1 页 / 共 2 页
字号:
  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 + -