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

📄 tab.asm

📁 一个点阵LED屏动态扫描显示的控制程序
💻 ASM
📖 第 1 页 / 共 4 页
字号:
           MOV   DPTR,#D_VISBUF
           MOV   R7,#32
;
CLR_FRM5:  MOVX  A,@DPTR
           ANL   A,#03FH
           MOVX  @DPTR,A
           CLR   C
           MOV   A,#10H
           ADD   A,DPL
           MOV   DPL,A
           CLR   A
           ADDC  A,DPH
           MOV   DPH,A
           DJNZ  R7,CLR_FRM5
;
           MOV   DPTR,#D_VISBUF
           MOV   DPL,#09
           MOV   R7,#32
;
CLR_FRM6:  MOVX  A,@DPTR
           ANL   A,#0C0H
           MOVX  @DPTR,A
           CLR   C
           MOV   A,#10H
           ADD   A,DPL
           MOV   DPL,A
           CLR   A
           ADDC  A,DPH
           MOV   DPH,A
           DJNZ  R7,CLR_FRM6
;
           RET
;
;****************************************************************
;  FRM_FS     ; 加外框并闪烁
;****************************************************************
FRM_FS:    MOV   DPTR,#D_VISBUF
           MOV   R7,#00H
           CLR   C
;
FRM_FS1:   MOVX  A,@DPTR
           INC   DPH
           INC   DPH
           MOVX  @DPTR,A
           DEC   DPH
           DEC   DPH
           INC   DPTR
           DJNZ  R7,FRM_FS1
;
           MOV   DPTR,#D_VISBUF
           INC   DPH
           MOV   R7,#00H
           CLR   C
;
FRM_FS2:   MOVX  A,@DPTR
           INC   DPH
           INC   DPH
           MOVX  @DPTR,A
           DEC   DPH
           DEC   DPH
           INC   DPTR
           DJNZ  R7,FRM_FS2
;
           LCALL VIS_FRM
           SETB  biFRMFS
           RET
;
;
;****************************************************************
;  VIS_FS     ; 除外框外全闪烁
;****************************************************************
VIS_FS:    MOV   DPTR,#D_VISBUF2
           CLR   A
;
           MOV   R6,#02H
;
VIS_FS01:  MOV   R7,#00H
           CLR   A
;
VIS_FS02:  MOVX  @DPTR,A
           INC   DPTR
           DJNZ  R7,VIS_FS02
           DJNZ  R6,VIS_FS01
;
;
;
           MOV   DPTR,#D_VISBUF2
           MOV   R7,#10
;
VIS_FS1:   MOV   A,#0FFH
           MOVX  @DPTR,A
           INC   DPTR
           DJNZ  R7,VIS_FS1
;
           MOV   DPTR,#D_VISBUF2
           MOV   DPL,#010H
           MOV   R7,#10
;
VIS_FS2:   MOV   A,#0FFH
           MOVX  @DPTR,A
           INC   DPTR
           DJNZ  R7,VIS_FS2
;
           MOV   DPTR,#D_VISBUF2
           MOV   DPL,#0E0H
           INC   DPH
           MOV   R7,#10
;
VIS_FS3:   MOV   A,#0FFH
           MOVX  @DPTR,A
           INC   DPTR
           DJNZ  R7,VIS_FS3
;
           MOV   DPTR,#D_VISBUF2
           MOV   DPL,#0F0H
           INC   DPH
           MOV   R7,#10
;
VIS_FS4:   MOV   A,#0FFH
           MOVX  @DPTR,A
           INC   DPTR
           DJNZ  R7,VIS_FS4

;
           MOV   DPTR,#D_VISBUF2
           MOV   R7,#32
;
VIS_FS5:   MOVX  A,@DPTR
           ORL   A,#0C0H
           MOVX  @DPTR,A
           CLR   C
           MOV   A,#10H
           ADD   A,DPL
           MOV   DPL,A
           CLR   A
           ADDC  A,DPH
           MOV   DPH,A
           DJNZ  R7,VIS_FS5
;
           MOV   DPTR,#D_VISBUF2
           MOV   DPL,#09
           MOV   R7,#32
;
VIS_FS6:   MOVX  A,@DPTR
           ORL   A,#03H
           MOVX  @DPTR,A
           CLR   C
           MOV   A,#10H
           ADD   A,DPL
           MOV   DPL,A
           CLR   A
           ADDC  A,DPH
           MOV   DPH,A
           DJNZ  R7,VIS_FS6
;
           SETB  biFRMFS
           RET
;

;
;****************************************************************
;  CLR_VIS    ; 清显示
;****************************************************************
CLR_VIS:   MOV   DPTR,#D_VISBUF
           CLR   A
;
           MOV   R6,#02H
;
CLR_VIS1:  MOV   R7,#00H
           CLR   A
;
CLR_VIS2:  MOVX  @DPTR,A
           INC   DPTR
           DJNZ  R7,CLR_VIS2
           DJNZ  R6,CLR_VIS1
           RET
;
;
;
;
;****************************************************************
;   INT_DYNA  初始 生成动态显示内容
;****************************************************************
INT_DYNA:  CLR   C
           MOV   R1,#08H
           MOV   R2,#10H
;
INT_DYNA0: CLR   C
           MOV   R7,#00H
           MOV   R6,#00H
;
INT_DYNA1: MOV   DPTR,#TAB_DYNA
           MOV   A,R6
           MOVC  A,@A+DPTR
           MOV   DPH,R2
           MOV   DPL,R6
           MOVX  @DPTR,A
           INC   R6
           DJNZ  R7,INT_DYNA1
;
           INC   R2
           MOV   R7,#00H
           MOV   R6,#00H
;
INT_DYNA2: MOV   DPTR,#TAB_DYNA
           INC   DPH
           MOV   A,R6
           MOVC  A,@A+DPTR
           MOV   DPH,R2
           MOV   DPL,R6
           MOVX  @DPTR,A
           INC   R6
           DJNZ  R7,INT_DYNA2
;
           INC   R2
           DJNZ  R1,INT_DYNA0
;
           RET
;
;
;****************************************************************
;   CRT_DYNA  生成动态显示内容
;****************************************************************
CRT_DYNA:  CLR   C
           MOV   R1,#08H     ; 8个显示缓存计数
;
CRT_DYNA1: CLR   C
           MOV   DPTR,#TAB_MAXF
           MOV   A,R1
           DEC   A
           MOVC  A,@A+DPTR   ; A=显示边框值
           MOV   R7,A
           MOV   A,R1
           DEC   A
           ADD   A,#08H
           MOVC  A,@A+DPTR   ; A=显示边框值
           MOV   R5,A

;
;
           MOV   A,R1
           DEC   A
           RL    A
           ADD   A,#010H
           MOV   DPH,A
           MOV   DPL,#00H
;
;
           MOV   R2,#4
CRT_DYN25: CLR   C
           MOV   A,R7
           MOV   R6,A
;
           MOV   R3,#08
;
CRT_DYN251:
           CLR   C
           MOV   A,R6
           RRC   A
           MOV   R6,A
           MOV   A,#0C0H
           JC    CRT_DYN252
           MOV   A,#00H
CRT_DYN252:MOVX  @DPTR,A
           CLR   C
           MOV   A,DPL
           ADD   A,#10H
           MOV   DPL,A
           CLR   A
           ADDC  A,DPH
           MOV   DPH,A
           DJNZ  R3,CRT_DYN251
;
           DJNZ  R2,CRT_DYN25
;
;
;
           MOV   A,R1
           DEC   A
           RL    A
           ADD   A,#010H
           MOV   DPH,A
           MOV   DPL,#09H
;
;
           MOV   R2,#4
CRT_DYN26: CLR   C
           MOV   A,R7
           MOV   R6,A
;
           MOV   R3,#08
;
CRT_DYN261:
           CLR   C
           MOV   A,R6
           RLC   A
           MOV   R6,A
           MOV   A,#03H
           JC    CRT_DYN262
           MOV   A,#00H
CRT_DYN262:MOVX  @DPTR,A
           CLR   C
           MOV   A,DPL
           ADD   A,#10H
           MOV   DPL,A
           CLR   A
           ADDC  A,DPH
           MOV   DPH,A
           DJNZ  R3,CRT_DYN261
;
           DJNZ  R2,CRT_DYN26
;

;
           MOV   A,R1
           DEC   A
           RL    A
           ADD   A,#010H
           MOV   DPH,A
;
           MOV   DPL,#00H
           MOV   R2,#10
           MOV   A,R7
CRT_DYN21: MOVX  @DPTR,A
           INC   DPTR
           DJNZ  R2,CRT_DYN21
;
           MOV   DPL,#010H
           MOV   R2,#10
           MOV   A,R7
CRT_DYN22: MOVX  @DPTR,A
           INC   DPTR
           DJNZ  R2,CRT_DYN22
;
           INC   DPH
           MOV   DPL,#0E0H
           MOV   R2,#10
           MOV   A,R5
CRT_DYN23: MOVX  @DPTR,A
           INC   DPTR
           DJNZ  R2,CRT_DYN23
;
           MOV   DPL,#0F0H
           MOV   R2,#10
           MOV   A,R5
CRT_DYN24: MOVX  @DPTR,A
           INC   DPTR
           DJNZ  R2,CRT_DYN24
;
;
;
;          内框
           CLR   C
           MOV   DPTR,#TAB_MINF
           MOV   A,R1
           DEC   A
           MOVC  A,@A+DPTR   ; A=显示边框值
           MOV   R7,A
;
           MOV   A,R1
           DEC   A
           RL    A
           ADD   A,#010H
           MOV   DPH,A
           MOV   DPL,#081H
;
;
           MOV   R2,#2
CRT_DYN35: CLR   C
           MOV   A,R7
           MOV   R6,A
;
           MOV   R3,#08
;
CRT_DYN351:
           CLR   C
           MOV   A,R6
           RRC   A
           MOV   R6,A
           MOV   B,#080H
           JC    CRT_DYN352
           MOV   B,#00H
CRT_DYN352:MOVX  A,@DPTR
           ORL   A,B
           MOVX  @DPTR,A
           CLR   C
           MOV   A,DPL
           ADD   A,#10H
           MOV   DPL,A
           CLR   A
           ADDC  A,DPH
           MOV   DPH,A
           DJNZ  R3,CRT_DYN351

⌨️ 快捷键说明

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