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

📄 多字显示.asm

📁 广告牌的制做
💻 ASM
字号:
;多字移动
;一个字占32个字节,1K可以存放1K=1024字节/32=32个字,C51=4K=128个字,C52=8K=256个字。
;但程序占用160个字节(相当于5个字的空间),最终可以显示的字为C51=123个字,C52=251个字。
;超过后单片机将存储不下。

      ORG 000H
      JMP MIAN

      ORG 030H
MIAN:MOV P3,#00      ;关闭端口
      MOV P1,#0FFH
      MOV P0,#00
      MOV P2,#00

      CALL DELAY     ;延时1ms

      ;MOV R5,#2    ;移动列的数量(列数乘2)

      MOV A,#4     ;显示几个字
      MOV B,#128      ;一个字=32个码
      MUL AB
      MOV 22H,A      ;存放1~8个字的数量
      MOV 23H,B      ;存放8的倍数个字的数量
;如50个字:50×32=1600=0640H,则DPH处为06H=6,DPL处为40H=64
;简单算法:50÷8=6余2,6为DPH处数,余的2×32=64为DPL数

      MOV DPTR,#TABLE1 ;赋查表初址
      MOV R0,DPL       ;保存DPTR初值,R0、R1记录取码进度
      MOV R1,DPH
      MOV 20H,DPL      ;20H、21H保持DPTR初值不变
      MOV 21H,DPH

LOOP: MOV R7,#5       ;每屏停留时间

L1:   MOV R6,#128       ;每屏16个码
      MOV R4,#00       ;扫描指针清零
      MOV DPL,R0      ;取码指针存入DPL
      MOV DPH,R1

L16:  MOV A,R4         ;扫描指针存入A
      MOV P1,A         ;扫描输出
      INC R4           ;扫描指针加1

      CLR A            ;A清零
      MOVC A,@A+DPTR   ;查表送A
      MOV P0,A         ;送P0口显示
      INC DPTR         ;取码指针加1

      CLR A            ;A清零
      MOVC A,@A+DPTR   ;查表送A
      MOV P2,A         ;送P2口显示
      INC DPTR         ;取码指针加1

      CALL DELAY       ;扫描延时1ms

      MOV P0,#00       ;清除屏幕
      MOV P2,#00

      DJNZ R6,L16      ;1屏是否完成?
      DJNZ R7,L1       ;每屏停留时间是否到了?

      MOV R0,DPL     ;如字不需移动,用该指令
      MOV R1,DPH

      MOV A,R0     ;如字需移动,用该指令
      ADD A,R5     ;如大于256,C=1
      MOV R0,A
      JNC DP
      INC R1
 
DP:   MOV A,20H       ;DPL初值
      ADD A,22H      ;如大于256,C=1。因DPL初值在90H以上,显示4个字后DPH将加1,导致判断失误
      MOV A,DPH
      SUBB A,21H       ;已显示字的数量(乘8)
      CJNE A,23H,LOOP  ;DPH中的字是否完成?

      CLR C          
      MOV A,DPL
      SUBB A,20H       ;已显示字的数量
      CJNE A,22H,LOOP  ;DPL中的字是否完成?

      JMP MIAN

DELAY:MOV R2,#2        ;延时1ms
D1   :MOV R3,#248
      DJNZ R3,$
      DJNZ R2,D1
      RET


TABLE1:

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0DFH,0FFH,0FFH,0FFH,0DFH,0FFH,0FFH,0FFH,0DFH,000H,003H,0FFH,0DFH,080H,007H,0FFH,0DFH,0BFH,0DFH,0FFH,0DFH,0BFH,0DFH
DB 0FFH,0DFH,0BFH,0DFH,0E0H,000H,03FH,0DFH,0E7H,0DFH,0BFH,0DFH,0FFH,0DFH,0BFH,0DFH,0FFH,0DFH,0BFH,0DDH,0FFH,0DFH,000H,00DH,0FFH,09FH,0BFH,0FBH,0FFH,09FH,0BFH,0FBH
DB 0FFH,0DEH,07FH,0F7H,0FFH,0F1H,0FFH,0F7H,0FFH,087H,0FFH,0EFH,0F8H,000H,0FFH,0CFH,0C0H,0DFH,007H,09FH,0E7H,0DFH,0F1H,03FH,0EFH,0DFH,0FCH,07FH,0FFH,0DFH,0F0H,03FH
DB 0FFH,0DFH,083H,08FH,0FFH,0C0H,00FH,0C7H,0FFH,0C0H,0FFH,0E7H,0FFH,0DFH,0FFH,0E3H,0FFH,09FH,0FFH,0F3H,0FFH,0DFH,0FFH,0F7H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FDH,0FFH,0FFH,0FFH,0FDH,0FFH,0FFH,0FFH,0FDH,0FFH,0E7H,0FFH,0FDH
DB 0FFH,0C7H,0E7H,0F9H,0FFH,087H,0C7H,0FBH,0FFH,02FH,0C7H,0FBH,0FEH,06FH,08FH,0F3H,0FCH,0EFH,0AFH,0F7H,0F9H,0EFH,04FH,0E7H,0F3H,0EEH,0CFH,0EFH,0C7H,0ECH,0CFH,0CFH
DB 0E7H,0E9H,0DFH,09FH,0EFH,0DBH,0DFH,09FH,0FFH,0D7H,0DFH,03FH,0FFH,0C7H,0DEH,07FH,0FFH,08FH,0DCH,0FFH,0FFH,01FH,0D1H,0FFH,0FEH,03FH,0C3H,0FFH,0FCH,03FH,087H,0FFH
DB 0FEH,07EH,00FH,0FFH,0FFH,07EH,03FH,0FFH,0FFH,0FEH,07FH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;"乡",1

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0DFH,0FFH,0FFH,0FFH,0DFH,0FFH,0FFH,0FFH,0DFH,000H,003H,0FFH,0DFH,080H,007H,0FFH,0DFH,0BFH,0DFH,0FFH,0DFH,0BFH,0DFH
DB 0FFH,0DFH,0BFH,0DFH,0E0H,000H,03FH,0DFH,0E7H,0DFH,0BFH,0DFH,0FFH,0DFH,0BFH,0DFH,0FFH,0DFH,0BFH,0DDH,0FFH,0DFH,000H,00DH,0FFH,09FH,0BFH,0FBH,0FFH,09FH,0BFH,0FBH
DB 0FFH,0DEH,07FH,0F7H,0FFH,0F1H,0FFH,0F7H,0FFH,087H,0FFH,0EFH,0F8H,000H,0FFH,0CFH,0C0H,0DFH,007H,09FH,0E7H,0DFH,0F1H,03FH,0EFH,0DFH,0FCH,07FH,0FFH,0DFH,0F0H,03FH
DB 0FFH,0DFH,083H,08FH,0FFH,0C0H,00FH,0C7H,0FFH,0C0H,0FFH,0E7H,0FFH,0DFH,0FFH,0E3H,0FFH,09FH,0FFH,0F3H,0FFH,0DFH,0FFH,0F7H,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;"故",0

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FDH,0FFH,0FFH,0FFH,0FDH,0FFH,0FFH,0FFH,0FDH,0FFH,0E7H,0FFH,0FDH
DB 0FFH,0C7H,0E7H,0F9H,0FFH,087H,0C7H,0FBH,0FFH,02FH,0C7H,0FBH,0FEH,06FH,08FH,0F3H,0FCH,0EFH,0AFH,0F7H,0F9H,0EFH,04FH,0E7H,0F3H,0EEH,0CFH,0EFH,0C7H,0ECH,0CFH,0CFH
DB 0E7H,0E9H,0DFH,09FH,0EFH,0DBH,0DFH,09FH,0FFH,0D7H,0DFH,03FH,0FFH,0C7H,0DEH,07FH,0FFH,08FH,0DCH,0FFH,0FFH,01FH,0D1H,0FFH,0FEH,03FH,0C3H,0FFH,0FCH,03FH,087H,0FFH
DB 0FEH,07EH,00FH,0FFH,0FFH,07EH,03FH,0FFH,0FFH,0FEH,07FH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;"乡",1


END

⌨️ 快捷键说明

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