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

📄 text1.asm

📁 我用89c52单片机为同学开发的led大规模动态显示的立体图形
💻 ASM
📖 第 1 页 / 共 3 页
字号:
        ORG 0000H
        AJMP MAIN 
	ORG 0030H
MAIN:	CLR EA
   
	MOV A,#00H
        MOV R0,#20H
QING:	MOV @R0,A
	INC R0
	CJNE R0,#7FH,QING

	MOV SP,#30H
        MOV R6,#40H;设置状态整体图形的延时时间常数
;19个状态计数
        MOV R2,#13H
START:	LCALL CTAB		
XSH1:	LCALL DISP
	DJNZ R6,XSH1
	DJNZ R2,START
	      
	AJMP MAIN


CTAB:	CJNE R2,#13H,T2;取各状态表的首地址  
	MOV DPTR,#TAB1
	AJMP T20
	T2:
	CJNE R2,#12H,T3
	MOV DPTR,#TAB2
	AJMP T20	
	T3:
	CJNE R2,#11H,T4
	MOV DPTR,#TAB3
	AJMP T20
	T4:
	CJNE R2,#10H,T5
	MOV DPTR,#TAB4
	AJMP T20
	T5:
	CJNE R2,#0FH,T6
	MOV DPTR,#TAB5
	AJMP T20
	T6:
	CJNE R2,#0EH,T7
	MOV DPTR,#TAB6
	AJMP T20
	T7:
	CJNE R2,#0DH,T8
	MOV DPTR,#TAB7
	AJMP T20
	T8:
	CJNE R2,#0CH,T9
	MOV DPTR,#TAB8
	AJMP T20
	T9:
	CJNE R2,#0BH,T10
	MOV DPTR,#TAB9
	AJMP T20
	T10:
	CJNE R2,#0AH,T11
	MOV DPTR,#TAB10
	AJMP T20
	T11:
	CJNE R2,#09H,T12
	MOV DPTR,#TAB11
	AJMP T20
	T12:
	CJNE R2,#08H,T13
	MOV DPTR,#TAB12
	AJMP T20
	T13:
	CJNE R2,#07H,T14
	MOV DPTR,#TAB13
	AJMP T20
	T14:
	CJNE R2,#06H,T15
	MOV DPTR,#TAB14
	AJMP T20
	T15:
	CJNE R2,#05H,T16
	MOV DPTR,#TAB15
	AJMP T20
	T16:
	CJNE R2,#04H,T17
	MOV DPTR,#TAB16
	AJMP T20
	T17:
	CJNE R2,#03H,T18
	MOV DPTR,#TAB17
	AJMP T20
	T18:
	CJNE R2,#02H,T19
	MOV DPTR,#TAB18
	AJMP T20
	T19:
	CJNE R2,#01H,T20
	MOV DPTR,#TAB19
        T20:
	RET
DISP:	MOV R5,#00H;各状态通用显示程序
	MOV R1,#0FEH
;有机板1#
        PUSH DPL
	PUSH DPH
ASP0:
	MOV DPTR,#50FFH;选中 3#
	MOV A,R1
	MOVX @DPTR,A;选中3#一列

	MOV DPTR,#58FFH;
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#60FFH;
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#68FFH;
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#70FFH;
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#78FFH;?
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#00FFH;
	MOV A,#0FFH
	MOVX @DPTR,A
	MOV DPTR,#01FFH;
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#02FFH;
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#03FFH;?
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#04FFH
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#05FFH;
	MOV A,#0FFH
	MOVX @DPTR,A
	
	POP DPH
	POP DPL
	MOV A,R5
	MOVC A,@A+DPTR;?
	PUSH DPL
	PUSH DPH

	MOV DPTR,#40FFH;选中1#
	MOVX @DPTR,A;输出上八行数据
	INC R5
	MOV A,R5
        POP DPH
	POP DPL
	MOVC A,@A+DPTR
	PUSH DPL
	PUSH DPH
	MOV DPTR,#48FFH
	MOVx @DPTR,A;输出下八行
	LCALL DELAY
	MOV A,R1
	RL A
	MOV R1,A
	INC R5
	CJNE R5,#10H,ASP0;判断前八列是否完成
	MOV R1,#0FEH
ASP1:  	MOV DPTR,#58FFH;4#
	MOV A,R1
	MOVX @DPTR,A

	MOV DPTR,#50FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#60FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#68FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#70FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#78FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#00FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A
	MOV DPTR,#01FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#02FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#03FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#04FFH
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#05FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	POP DPH
	POP DPL
	MOV A,R5
	MOVC A,@A+DPTR;依次取出表中数据并暂存
	PUSH DPL
	PUSH DPH
	MOV DPTR,#40FFH;选中1#
	MOVX @DPTR,A
	INC R5
	MOV A,R5
	POP DPH
	POP DPL
	MOVC A,@A+DPTR
	PUSH DPL
	PUSH DPH
	MOV DPTR,#48FFH
	MOVx @DPTR,A
	LCALL DELAY
	MOV A,R1
	RL A
	MOV R1,A
	INC R5
	CJNE R5,#20H,ASP1;判断后八列是否完成
	
;有机板2#

BSP0:	MOV DPTR,#60FFH;选中 5#
	MOV A,R1
	MOVX @DPTR,A;选中5#一列

	MOV DPTR,#58FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#50FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#68FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#70FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#78FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#00FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A
	MOV DPTR,#01FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#02FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#03FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#04FFH
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#05FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A
	
	POP DPH
	POP DPL
	MOV A,R5
	MOVC A,@A+DPTR;依次取出表中数据并暂存
	PUSH DPL
	PUSH DPH
	MOV DPTR,#40FFH;选中1#
	MOVX @DPTR,A
	INC R5
	MOV A,R5
	POP DPH
	POP DPL
	MOVC A,@A+DPTR
	PUSH DPL
	PUSH DPH
	MOV DPTR,#48FFH
	MOVx @DPTR,A
	LCALL DELAY
	MOV A,R1
	RL A
	MOV R1,A
	INC R5
	CJNE R5,#30H,BSP0;判断前八列是否完成
	MOV R1,#0FEH
BSP1:  	MOV DPTR,#68FFH;6#
	MOV A,R1
	MOVX @DPTR,A

	MOV DPTR,#50FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#60FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#58FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#70FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#78FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#00FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A
	MOV DPTR,#01FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#02FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#03FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#04FFH
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#05FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	POP DPH
	POP DPL
	MOV A,R5
	MOVC A,@A+DPTR;依次取出表中数据并暂存
	PUSH DPL
	PUSH DPH
	MOV DPTR,#40FFH;选中1#
	MOVX @DPTR,A
	INC R5
	MOV A,R5
	POP DPH
	POP DPL
	MOVC A,@A+DPTR
	PUSH DPL
	PUSH DPH
	MOV DPTR,#48FFH
	MOVx @DPTR,A
	LCALL DELAY
	MOV A,R1
	RL A
	MOV R1,A
	INC R5
	CJNE R5,#40H,BSP1;判断后八列是否完成

;有机板3#

CSP0:	MOV DPTR,#70FFH;选中 7#
	MOV A,R1
	MOVX @DPTR,A;选中7#一列

	MOV DPTR,#58FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#50FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#68FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#60FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#78FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#00FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A
	MOV DPTR,#01FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#02FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#03FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#04FFH
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#05FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A
	
	POP DPH
	POP DPL
	MOV A,R5
	MOVC A,@A+DPTR;依次取出表中数据并暂存
	PUSH DPL
	PUSH DPH
	MOV DPTR,#40FFH;选中1#
	MOVX @DPTR,A
	INC R5
	MOV A,R5
	POP DPH
	POP DPL
	MOVC A,@A+DPTR
	PUSH DPL
	PUSH DPH
	MOV DPTR,#48FFH
	MOVx @DPTR,A
	LCALL DELAY
	MOV A,R1
	RL A
	MOV R1,A
	INC R5
	CJNE R5,#50H,CSP0;判断前八列是否完成
	MOV R1,#0FEH
cSP1:  	MOV DPTR,#78FFH;8#
	MOV A,R1
	MOVX @DPTR,A

	MOV DPTR,#50FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#60FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#58FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#70FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#68FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#00FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A
	MOV DPTR,#01FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#02FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#03FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#04FFH
	MOV A,#0FFH
	MOVX @DPTR,A

	MOV DPTR,#05FFH;屏蔽其他锁存器
	MOV A,#0FFH
	MOVX @DPTR,A

	POP DPH
	POP DPL
	MOV A,R5
	MOVC A,@A+DPTR;依次取出表中数据并暂存
	PUSH DPL
	PUSH DPH
	MOV DPTR,#40FFH;选中1#
	MOVX @DPTR,A
	INC R5
	MOV A,R5
	POP DPH
	POP DPL
	MOVC A,@A+DPTR
	PUSH DPL
	PUSH DPH
	MOV DPTR,#48FFH
	MOVx @DPTR,A
	LCALL DELAY

⌨️ 快捷键说明

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