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

📄 ddisp.asm

📁 多个仿真例子
💻 ASM
字号:
;该程序实现在六个数码管上显示123456,显示停留5秒钟
;然后以0.5秒为间隔闪动5次,不断循环。
;显示方式为动态显示
LED1	EQU	8000H	;数码管段驱动器的地址
LED2	EQU	9000H	;数码管位驱动器的地址
BUFFER	EQU	30H	;显示缓冲区首地址
FLASH	BIT	00H	;闪烁标志
	ORG	0
	LJMP	START
	ORG	0BH
	LJMP	DISP
	ORG	30H
START:	MOV	SP,#60H
	MOV	TMOD,#01H	;设T0为方式1
	MOV	TH0,#0D8H	;10ms定时初值
	MOV	TL0,#0F0H
	SETB	ET0		;允许T0中断
	SETB	EA		;开CPU总中断
	SETB	TR0		;启动T0计数
	SETB	FLASH		;使显示常亮
	MOV	R0,#BUFFER
	MOV	R2,#6		;显示缓冲区单元数
	MOV	A,#1
LOOP1:	MOV	@R0,A		;给显示缓冲区赋值
	INC	A
	INC	R0
	DJNZ	R2,LOOP1
LOOP:	LCALL	DELAY5S		;延时5秒钟
	MOV	R3,#10		;闪烁10次
LL1:	LCALL	DELAY		;延时0.5秒
	CPL	FLASH		;闪烁标志取反实现显示的闪烁
	DJNZ	R3,LL1
	SETB	FLASH		;闪烁标志置1,实现显示常亮
	SJMP	LOOP
;T0中断服务程序,实现每10ms一次的定时动态显示功能
;当FLASH标志为1时,将显示缓冲区的16进制数显示出来
;当FLASH标志为0时,熄灭所有显示器
;使用寄存器为A、R0-R6和DPTR
DISP:	PUSH	PSW
	PUSH	ACC
	PUSH	DPH
	PUSH	DPL
	SETB	RS0		;选择1区工作寄存器
	CLR	RS1
	CLR	TR0		;停止T0计数
	MOV	TH0,#0D8H	;10ms定时初值
	MOV	TL0,#0F0H
	SETB	TR0		;启动T0计数
	MOV	R0,#BUFFER
	MOV	R1,#0FEH	;位码初值
	MOV	R2,#6		;一共有6个数码管
	MOV	DPTR,#LED1	;送数码管段驱动器地址
	MOV	R3,DPH		;存段驱动器地址
	MOV	R4,DPL
	MOV	DPTR,#LED2	;送数码管位驱动器地址
	MOV	R5,DPH		;存位驱动器地址
	MOV	R6,DPL
	JNB	FLASH,DISP2	;若闪烁标志为0,则转移
DISP1:	MOV	A,@R0		;取要显示数据
	MOV	DPTR,#TAB	;指向显示段码的码表
	MOVC	A,@A+DPTR	;查表将需要显示的数据变换为显示段码
	MOV	DPH,R3		;恢复段驱动器地址
	MOV	DPL,R4
	MOVX	@DPTR,A		;段码送数码管段驱动器
	MOV	A,R1		;取显示位码
	MOV	DPH,R5		;恢复位驱动器地址
	MOV	DPL,R6
	MOVX	@DPTR,A		;点亮一个数码管
	RL	A		;指向下一位数码管
	MOV	R1,A		;存位码
	INC	R0		;指向下一个要显示的数据
	LCALL	D1MS		;点亮数码管1ms
	DJNZ	R2,DISP1	;没有显示完则继续
DISP3:	POP	DPL
	POP	DPH
	POP	ACC
	POP	PSW
	RETI
DISP2:	MOV	DPH,R5		;恢复位驱动器地址
	MOV	DPL,R6
	MOV	A,#0FFH
	MOVX	@DPTR,A		;熄灭数码管
	SJMP	DISP3
TAB:	DB	3FH,06H,5BH,4FH,66H,6DH,7DH,07H
	DB	7FH,6FH,77H,7CH,39H,5EH,79H,71H
;延时1ms子程序
;使用寄存器R7
D1MS:	MOV	R7,#250
D1MS1:	NOP
	NOP
	DJNZ	R7,D1MS1
	RET
;延时0.5秒子程序
;使用寄存器:R5、R6和R7
DELAY:	MOV	R5,#2		;延时0.5秒子程序
D1:	MOV	R6,#250
D2:	MOV	R7,#250
D3:	NOP
	NOP
	DJNZ	R7,D3
	DJNZ	R6,D2
	DJNZ	R5,D1
	RET
;延时5秒子程序
;使用寄存器:R4
DELAY5S:MOV	R4,#10		;延时5秒子程序
DD1:	LCALL	DELAY
	DJNZ	R4,DD1
	RET
	END


	

⌨️ 快捷键说明

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