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

📄 move.asm

📁 点阵LED多字移动程序,很好用的
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;多字移动
;一个字占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,#151     ;显示几个字
      MOV B,#32      ;一个字=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,#16       ;每屏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:
;至拾字时为100个字,共150个字,用于测试。

;(a3b1H)(1)(8001)
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
DB     00H, 00H, 10H, 02H, 20H, 02H, 7fH,0feH
DB     00H, 02H, 00H, 02H, 00H, 00H, 00H, 00H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
;(a3b2H)(2)(8002)
DB     00H, 00H, 00H, 00H, 00H, 00H, 18H, 1eH
DB     20H, 22H, 40H, 42H, 40H, 82H, 40H, 82H
DB     41H, 02H, 41H, 02H, 21H, 02H, 1eH, 0eH
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
;(a3b3H)(3)(8003)
DB     00H, 00H, 00H, 00H, 00H, 00H, 30H, 0cH
DB     40H, 02H, 40H, 02H, 40H, 02H, 41H, 02H
DB     41H, 02H, 42H, 82H, 44H, 44H, 38H, 38H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
;(a3b4H)(4)(8004)
DB     00H, 00H, 00H, 00H, 00H, 30H, 00H, 50H
DB     01H, 90H, 06H, 10H, 38H, 12H, 40H, 12H
DB     7fH,0feH, 00H, 12H, 00H, 12H, 00H, 10H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
;(a3b5H)(5)(8005)
DB     00H, 00H, 00H, 00H, 00H, 00H, 7fH, 8cH
DB     41H, 02H, 42H, 02H, 42H, 02H, 42H, 02H
DB     42H, 02H, 42H, 02H, 41H, 04H, 40H,0f8H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
;(a3b6H)(6)(8006)
DB     00H, 00H, 00H, 00H, 00H, 00H, 1fH,0f8H
DB     20H, 84H, 41H, 02H, 41H, 02H, 41H, 02H
DB     41H, 02H, 41H, 02H, 20H, 84H, 18H, 78H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
;(a3b7H)(7)(8007)
DB     00H, 00H, 00H, 00H, 00H, 00H, 70H, 00H
DB     40H, 00H, 40H, 00H, 40H, 0eH, 40H, 70H
DB     41H, 80H, 42H, 00H, 4cH, 00H, 70H, 00H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
;(a3b8H)(8)(8008)
DB     00H, 00H, 00H, 00H, 00H, 00H, 1cH, 78H
DB     22H, 84H, 41H, 02H, 41H, 02H, 41H, 02H
DB     41H, 02H, 41H, 02H, 22H, 84H, 1cH, 78H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
;(a3b9H)(9)(8009)
DB     00H, 00H, 00H, 00H, 00H, 00H, 1eH, 18H
DB     21H, 04H, 40H, 82H, 40H, 82H, 40H, 82H
DB     40H, 82H, 40H, 82H, 21H, 04H, 1fH,0f8H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
;(a3b0H)(0)(8000)
DB     00H, 00H, 00H, 00H, 00H, 00H, 1fH,0f8H
DB     20H, 04H, 40H, 02H, 40H, 02H, 40H, 02H
DB     40H, 02H, 40H, 02H, 20H, 04H, 1fH,0f8H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H

;(a878H)(▁)(800a)
DB     00H, 03H, 00H, 03H, 00H, 03H, 00H, 03H
DB     00H, 03H, 00H, 03H, 00H, 03H, 00H, 03H
DB     00H, 03H, 00H, 03H, 00H, 03H, 00H, 03H
DB     00H, 03H, 00H, 03H, 00H, 03H, 00H, 03H
;(a879H)(▂)(800b)
DB     00H, 0fH, 00H, 0fH, 00H, 0fH, 00H, 0fH
DB     00H, 0fH, 00H, 0fH, 00H, 0fH, 00H, 0fH
DB     00H, 0fH, 00H, 0fH, 00H, 0fH, 00H, 0fH
DB     00H, 0fH, 00H, 0fH, 00H, 0fH, 00H, 0fH
;(a87aH)(▃)(800c)
DB     00H, 3fH, 00H, 3fH, 00H, 3fH, 00H, 3fH
DB     00H, 3fH, 00H, 3fH, 00H, 3fH, 00H, 3fH
DB     00H, 3fH, 00H, 3fH, 00H, 3fH, 00H, 3fH
DB     00H, 3fH, 00H, 3fH, 00H, 3fH, 00H, 3fH
;(a87bH)(▄)(800d)
DB     00H,0ffH, 00H,0ffH, 00H,0ffH, 00H,0ffH
DB     00H,0ffH, 00H,0ffH, 00H,0ffH, 00H,0ffH
DB     00H,0ffH, 00H,0ffH, 00H,0ffH, 00H,0ffH
DB     00H,0ffH, 00H,0ffH, 00H,0ffH, 00H,0ffH
;(a87cH)(▅)(800e)
DB     03H,0ffH, 03H,0ffH, 03H,0ffH, 03H,0ffH
DB     03H,0ffH, 03H,0ffH, 03H,0ffH, 03H,0ffH
DB     03H,0ffH, 03H,0ffH, 03H,0ffH, 03H,0ffH
DB     03H,0ffH, 03H,0ffH, 03H,0ffH, 03H,0ffH
;(a87dH)(▆)(800f)
DB     0fH,0ffH, 0fH,0ffH, 0fH,0ffH, 0fH,0ffH
DB     0fH,0ffH, 0fH,0ffH, 0fH,0ffH, 0fH,0ffH
DB     0fH,0ffH, 0fH,0ffH, 0fH,0ffH, 0fH,0ffH
DB     0fH,0ffH, 0fH,0ffH, 0fH,0ffH, 0fH,0ffH
;(a87eH)(▇)(8010)
DB     3fH,0ffH, 3fH,0ffH, 3fH,0ffH, 3fH,0ffH
DB     3fH,0ffH, 3fH,0ffH, 3fH,0ffH, 3fH,0ffH
DB     3fH,0ffH, 3fH,0ffH, 3fH,0ffH, 3fH,0ffH
DB     3fH,0ffH, 3fH,0ffH, 3fH,0ffH, 3fH,0ffH
;(a880H)(█)(8011)
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
;(a881H)(▉)(8012)
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB    0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00H, 00H
;(a882H)(▊)(8013)
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
;(a883H)(▋)(8014)
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB    0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00H, 00H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
;(a884H)(▌)(8015)
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
;(a885H)(▍)(8016)
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB    0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00H, 00H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
;(a886H)(▎)(8017)
DB    0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH,0ffH
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
;(a887H)(▏)(8018)
DB    0ffH,0ffH,0ffH,0ffH, 00H, 00H, 00H, 00H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H
;(a888H)(▓)(8019)
DB     00H, 00H, 00H, 00H, 7fH,0feH, 55H, 56H
DB     6aH,0aaH, 55H, 56H, 6aH,0aaH, 55H, 56H
DB     6aH,0aaH, 55H, 56H, 6aH,0aaH, 55H, 56H
DB     6aH,0aaH, 7fH,0feH, 00H, 00H, 00H, 00H
;(a88dH)(◢)(801a)
DB     00H, 00H, 00H, 00H, 00H, 00H, 00H, 08H
DB     00H, 18H, 00H, 38H, 00H, 78H, 00H,0f8H
DB     01H,0f8H, 03H,0f8H, 07H,0f8H, 0fH,0f8H
DB     1fH,0f8H, 00H, 00H, 00H, 00H, 00H, 00H
;(a88fH)(◤)(801b)
DB     00H, 00H, 00H, 00H, 00H, 00H, 1fH,0fcH
DB     1fH,0f8H, 1fH,0f0H, 1fH,0e0H, 1fH,0c0H
DB     1fH, 80H, 1fH, 00H, 1eH, 00H, 1cH, 00H
DB     18H, 00H, 10H, 00H, 00H, 00H, 00H, 00H
;(a890H)(◥)(801c)
DB     00H, 00H, 00H, 00H, 00H, 00H, 10H, 00H
DB     18H, 00H, 1cH, 00H, 1eH, 00H, 1fH, 00H
DB     1fH, 80H, 1fH,0c0H, 1fH,0e0H, 1fH,0f0H
DB     1fH,0f8H, 00H, 00H, 00H, 00H, 00H, 00H
;(a88eH)(◣)(801d)
DB     00H, 00H, 00H, 00H, 7fH,0f0H, 3fH,0f0H
DB     1fH,0f0H, 0fH,0f0H, 07H,0f0H, 03H,0f0H
DB     01H,0f0H, 00H,0f0H, 00H, 70H, 00H, 30H
DB     00H, 10H, 00H, 00H, 00H, 00H, 00H, 00H
;(a1f8H)(▲)(801e)
DB     00H, 04H, 00H, 1cH, 00H, 7cH, 01H,0fcH
DB     07H,0fcH, 1fH,0fcH, 3fH,0fcH, 7fH,0fcH
DB     3fH,0fcH, 1fH,0fcH, 07H,0fcH, 01H,0fcH
DB     00H, 7cH, 00H, 1cH, 00H, 04H, 00H, 00H
;(a1f7H)(△)(801f)
DB     00H, 04H, 00H, 1cH, 00H, 64H, 01H, 84H
DB     06H, 04H, 18H, 04H, 20H, 04H, 40H, 04H
DB     20H, 04H, 18H, 04H, 06H, 04H, 01H, 84H
DB     00H, 64H, 00H, 1cH, 00H, 04H, 00H, 00H
;(a88bH)(▼)(8020)
DB     00H, 00H, 20H, 00H, 30H, 00H, 38H, 00H
DB     3cH, 00H, 3fH, 00H, 3fH,0c0H, 3fH,0e0H
DB     3fH,0c0H, 3fH, 80H, 3eH, 00H, 3cH, 00H
DB     30H, 00H, 20H, 00H, 00H, 00H, 00H, 00H
;(a88cH)(▽)(8021)
DB     00H, 00H, 20H, 00H, 30H, 00H, 28H, 00H
DB     24H, 00H, 23H, 00H, 20H,0c0H, 20H, 20H
DB     20H,0c0H, 21H, 00H, 26H, 00H, 28H, 00H
DB     30H, 00H, 20H, 00H, 00H, 00H, 00H, 00H
;(a1f4H)(◆)(8022)
DB     01H, 00H, 03H, 80H, 07H,0c0H, 0fH,0e0H
DB     1fH,0f0H, 3fH,0f8H, 7fH,0fcH,0ffH,0feH
DB     7fH,0fcH, 3fH,0f8H, 1fH,0f0H, 0fH,0e0H
DB     07H,0c0H, 03H, 80H, 01H, 00H, 00H, 00H
;(a1f3H)(◇)(8023)
DB     01H, 00H, 02H, 80H, 04H, 40H, 08H, 20H
DB     10H, 10H, 20H, 08H, 40H, 04H, 80H, 02H
DB     40H, 04H, 20H, 08H, 10H, 10H, 08H, 20H
DB     04H, 40H, 02H, 80H, 01H, 00H, 00H, 00H
;(a1f0H)(○)(8024)
DB     00H, 00H, 07H,0c0H, 18H, 30H, 20H, 08H
DB     20H, 08H, 40H, 04H, 40H, 04H, 40H, 04H
DB     40H, 04H, 40H, 04H, 20H, 08H, 20H, 08H
DB     18H, 30H, 07H,0c0H, 00H, 00H, 00H, 00H
;(a1f1H)(●)(8025)
DB     00H, 00H, 07H,0c0H, 1fH,0f0H, 3fH,0f8H
DB     3fH,0f8H, 7fH,0fcH, 7fH,0fcH, 7fH,0fcH
DB     7fH,0fcH, 7fH,0fcH, 3fH,0f8H, 3fH,0f8H

⌨️ 快捷键说明

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