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

📄 hzk16.asm

📁 使用51单片机从芯片AT29C040中按区位码读取HZK16的汉字点阵的子程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;=====读 (ASCII) 点阵到 0A0H-0AFH =======
;===== 中间变量为 R0 , DPTR ===
  RDASC:  NOP
          MOV   R0,#80H
          MOV   A,ASCII
          ANL   A,#0FH
          SWAP  A
          MOV   DPL,A  ;ASCII低四位*16,放入DPL
          MOV   A,ASCII
          ANL   A,#70H
          SWAP  A      
          SETB  ACC.4  ;DPH=1XH
          MOV   DPH,A  ;ASCII高四位*16,放入DPH 
;
    RD0:  MOV   A,#0H
          MOVC  A,@A+DPTR
	;  XRL   A,#0FFH  ;!A
          MOV   @R0,A
          INC   DPTR
          INC   R0
          CJNE  R0,#90H,RD0
          NOP
          RET

;=======汉字在29C040A中的位置依次为===
;=== 由QUMA,WEIMA决定 ADDR2,ADDR1,ADDR0 ======
;=== 中间变量为 R5
PYL00:    NOP
          MOV   A,QUMA
          CLR   C
          SUBB  A,#0A1H
          MOV   B,#94
          MUL   AB
          MOV   ADDR0,A
          MOV   ADDR1,B  ;(QUMA-0A1H)*94
          MOV   A,WEIMA
          CLR   C
          SUBB  A,#0A1H   ;(WEIMA-0A1H)
          CLR   C
          ADD   A,ADDR0
          MOV   ADDR0,A
          MOV   A,ADDR1
          ADDC  A,#0
          MOV   ADDR1,A   ;[(QUMA-0A1H)*94+(WEIMA-0A1H)]
          MOV   ADDR2,#0
          MOV   R5,#5     ;*(2^5)=*32
PYL01:    CLR   C
          MOV   A,ADDR0
          RLC   A
          MOV   ADDR0,A
          NOP
          MOV   A,ADDR1
          RLC   A
          MOV   ADDR1,A
          NOP
          MOV   A,ADDR2
          RLC   A
          MOV   ADDR2,A
          DJNZ  R5,PYL01    ;计算偏移量
;---32*[(QUMA-0A1H)*94+(WEIMA-0A1H)] 完成---
          NOP
          MOV   R5,#3
PYL02:    CLR   C           ;调整DPH及374锁存高6位地址 
          MOV   A,ADDR1
          RLC   A
          MOV   ADDR1,A
          NOP
          MOV   A,ADDR2
          RLC   A
          MOV   ADDR2,A
          DJNZ  R5,PYL02
;
          NOP  
          MOV   A,ADDR1     ;调整DPH    
          CLR   C
          RRC   A
          RRC   A
          RRC   A
          MOV   ADDR1,A
          NOP
          RET
;=====按偏移量 ADDR2,ADDR1,ADDR0 在字库中读取点阵放在 80H-9FH =====
;===  中间变量为 R0 , DPTR  ;29C040A
RDHAN:    NOP
          MOV   AUXR,#2H ; AUXR=XXXX,XX EXTRAM ALLOFF; EXTRAM=0内部扩展RAM可以存取 , EXTRAM=1禁止访问内部扩展RAM 
          MOV   A,ADDR2
          MOV   DPH,#0C0H  ;AD374  (P27P26P25=110)
          MOVX  @DPTR,A   ;374锁存高6位地址
          MOV   A,ADDR1 
          ANL   A,#01FH      
          ORL   A,#80H  ;29C040A AD29=#80H (P27P26P25=100)
          MOV   DPH,A
          MOV   DPL,ADDR0
          MOV   R0,#80H
RDHN1:    MOVX  A,@DPTR
     ;     XRL   A,#0FFH  ;!A
          MOV   @R0,A
          INC   R0
          INC   DPTR
          CJNE  R0,#0A0H,RDHN1
          NOP
	  MOV  AUXR,#0H ; AUXR=XXXX,XX EXTRAM ALLOFF ; EXTRAM=0内部扩展RAM可以存取 , EXTRAM=1禁止访问内部扩展RAM 
          NOP
          RET

;=====西文点阵字库=========
ORG  1000H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,07eH,081H,0a5H,081H,081H,0bdH,099H,081H,081H,07eH,00H,00H,00H,00H
DB  00H,00H,07eH,0ffH,0dbH,0ffH,0ffH,0c3H,0e7H,0ffH,0ffH,07eH,00H,00H,00H,00H
DB  00H,00H,00H,00H,06cH,0feH,0feH,0feH,0feH,07cH,038H,010H,00H,00H,00H,00H
DB  00H,00H,00H,00H,010H,038H,07cH,0feH,07cH,038H,010H,00H,00H,00H,00H,00H
DB  00H,00H,00H,018H,03cH,03cH,0e7H,0e7H,0e7H,018H,018H,03cH,00H,00H,00H,00H
DB  00H,00H,00H,018H,03cH,07eH,0ffH,0ffH,07eH,018H,018H,03cH,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,018H,03cH,03cH,018H,00H,00H,00H,00H,00H,00H
DB  0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0e7H,0c3H,0c3H,0e7H,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB  00H,00H,00H,00H,00H,03cH,066H,042H,042H,066H,03cH,00H,00H,00H,00H,00H
DB  0ffH,0ffH,0ffH,0ffH,0ffH,0c3H,099H,0bdH,0bdH,099H,0c3H,0ffH,0ffH,0ffH,0ffH,0ffH
DB  00H,00H,01eH,0eH,01aH,032H,078H,0ccH,0ccH,0ccH,0ccH,078H,00H,00H,00H,00H
DB  00H,00H,03cH,066H,066H,066H,066H,03cH,018H,07eH,018H,018H,00H,00H,00H,00H
DB  00H,00H,03fH,033H,03fH,030H,030H,030H,030H,070H,0f0H,0e0H,00H,00H,00H,00H
DB  00H,00H,07fH,063H,07fH,063H,063H,063H,063H,067H,0e7H,0e6H,0c0H,00H,00H,00H
DB  00H,00H,00H,018H,018H,0dbH,03cH,0e7H,03cH,0dbH,018H,018H,00H,00H,00H,00H
DB  00H,080H,0c0H,0e0H,0f0H,0f8H,0feH,0f8H,0f0H,0e0H,0c0H,080H,00H,00H,00H,00H
DB  00H,02H,06H,0eH,01eH,03eH,0feH,03eH,01eH,0eH,06H,02H,00H,00H,00H,00H
DB  00H,00H,018H,03cH,07eH,018H,018H,018H,07eH,03cH,018H,00H,00H,00H,00H,00H
DB  00H,00H,066H,066H,066H,066H,066H,066H,066H,00H,066H,066H,00H,00H,00H,00H
DB  00H,00H,07fH,0dbH,0dbH,0dbH,07bH,01bH,01bH,01bH,01bH,01bH,00H,00H,00H,00H
DB  00H,07cH,0c6H,060H,038H,06cH,0c6H,0c6H,06cH,038H,0cH,0c6H,07cH,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,0feH,0feH,0feH,0feH,00H,00H,00H,00H
DB  00H,00H,018H,03cH,07eH,018H,018H,018H,07eH,03cH,018H,07eH,00H,00H,00H,00H
DB  00H,00H,018H,03cH,07eH,018H,018H,018H,018H,018H,018H,018H,00H,00H,00H,00H
DB  00H,00H,018H,018H,018H,018H,018H,018H,018H,07eH,03cH,018H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,018H,0cH,0feH,0cH,018H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,030H,060H,0feH,060H,030H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,0c0H,0c0H,0c0H,0feH,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,028H,06cH,0feH,06cH,028H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,010H,038H,038H,07cH,07cH,0feH,0feH,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,0feH,0feH,07cH,07cH,038H,038H,010H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,018H,03cH,03cH,03cH,018H,018H,018H,00H,018H,018H,00H,00H,00H,00H
DB  00H,066H,066H,066H,024H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,06cH,06cH,0feH,06cH,06cH,06cH,0feH,06cH,06cH,00H,00H,00H,00H
DB  018H,018H,07cH,0c6H,0c2H,0c0H,07cH,06H,06H,086H,0c6H,07cH,018H,018H,00H,00H
DB  00H,00H,00H,00H,0c2H,0c6H,0cH,018H,030H,060H,0c6H,086H,00H,00H,00H,00H
DB  00H,00H,038H,06cH,06cH,038H,076H,0dcH,0ccH,0ccH,0ccH,076H,00H,00H,00H,00H
DB  00H,030H,030H,030H,060H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,0cH,018H,030H,030H,030H,030H,030H,030H,018H,0cH,00H,00H,00H,00H
DB  00H,00H,030H,018H,0cH,0cH,0cH,0cH,0cH,0cH,018H,030H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,066H,03cH,0ffH,03cH,066H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,018H,018H,07eH,018H,018H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,018H,018H,018H,030H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,0feH,00H,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,018H,018H,00H,00H,00H,00H
DB  00H,00H,00H,00H,02H,06H,0cH,018H,030H,060H,0c0H,080H,00H,00H,00H,00H
DB  00H,00H,038H,06cH,0c6H,0c6H,0d6H,0d6H,0c6H,0c6H,06cH,038H,00H,00H,00H,00H
DB  00H,00H,018H,038H,078H,018H,018H,018H,018H,018H,018H,07eH,00H,00H,00H,00H
DB  00H,00H,07cH,0c6H,06H,0cH,018H,030H,060H,0c0H,0c6H,0feH,00H,00H,00H,00H
DB  00H,00H,07cH,0c6H,06H,06H,03cH,06H,06H,06H,0c6H,07cH,00H,00H,00H,00H
DB  00H,00H,0cH,01cH,03cH,06cH,0ccH,0feH,0cH,0cH,0cH,01eH,00H,00H,00H,00H
DB  00H,00H,0feH,0c0H,0c0H,0c0H,0fcH,06H,06H,06H,0c6H,07cH,00H,00H,00H,00H
DB  00H,00H,038H,060H,0c0H,0c0H,0fcH,0c6H,0c6H,0c6H,0c6H,07cH,00H,00H,00H,00H
DB  00H,00H,0feH,0c6H,06H,06H,0cH,018H,030H,030H,030H,030H,00H,00H,00H,00H
DB  00H,00H,07cH,0c6H,0c6H,0c6H,07cH,0c6H,0c6H,0c6H,0c6H,07cH,00H,00H,00H,00H
DB  00H,00H,07cH,0c6H,0c6H,0c6H,07eH,06H,06H,06H,0cH,078H,00H,00H,00H,00H
DB  00H,00H,00H,00H,018H,018H,00H,00H,00H,018H,018H,00H,00H,00H,00H,00H
DB  00H,00H,00H,00H,018H,018H,00H,00H,00H,018H,018H,030H,00H,00H,00H,00H
DB  00H,00H,00H,06H,0cH,018H,030H,060H,030H,018H,0cH,06H,00H,00H,00H,00H
DB  00H,00H,00H,00H,00H,07eH,00H,00H,07eH,00H,00H,00H,00H,00H,00H,00H
DB  00H,00H,00H,060H,030H,018H,0cH,06H,0cH,018H,030H,060H,00H,00H,00H,00H
DB  00H,00H,07cH,0c6H,0c6H,0cH,018H,018H,018H,00H,018H,018H,00H,00H,00H,00H
DB  00H,00H,00H,07cH,0c6H,0c6H,0deH,0deH,0deH,0dcH,0c0H,07cH,00H,00H,00H,00H
DB  00H,00H,010H,038H,06cH,0c6H,0c6H,0feH,0c6H,0c6H,0c6H,0c6H,00H,00H,00H,00H
DB  00H,00H,0fcH,066H,066H,066H,07cH,066H,066H,066H,066H,0fcH,00H,00H,00H,00H
DB  00H,00H,03cH,066H,0c2H,0c0H,0c0H,0c0H,0c0H,0c2H,066H,03cH,00H,00H,00H,00H
DB  00H,00H,0f8H,06cH,066H,066H,066H,066H,066H,066H,06cH,0f8H,00H,00H,00H,00H
DB  00H,00H,0feH,066H,062H,068H,078H,068H,060H,062H,066H,0feH,00H,00H,00H,00H
DB  00H,00H,0feH,066H,062H,068H,078H,068H,060H,060H,060H,0f0H,00H,00H,00H,00H
DB  00H,00H,03cH,066H,0c2H,0c0H,0c0H,0deH,0c6H,0c6H,066H,03aH,00H,00H,00H,00H
DB  00H,00H,0c6H,0c6H,0c6H,0c6H,0feH,0c6H,0c6H,0c6H,0c6H,0c6H,00H,00H,00H,00H
DB  00H,00H,03cH,018H,018H,018H,018H,018H,018H,018H,018H,03cH,00H,00H,00H,00H
DB  00H,00H,01eH,0cH,0cH,0cH,0cH,0cH,0ccH,0ccH,0ccH,078H,00H,00H,00H,00H

⌨️ 快捷键说明

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