MCS51流水灯_查表方式1_Proteus仿真

MCS51流水灯

硬件连接:
MCS51流水灯_查表方式1_Proteus仿真_第1张图片
程序1:

		ORG	10
START:
	MOV		P0,#0FFH
	CLR		P0.0
	LCALL	Dealy
	SETB	P0.0
	LCALL	Dealy
	CLR		P0.1
	LCALL	Dealy
	SETB	P0.1
	LCALL	Dealy
	CLR		P0.2
	LCALL	Dealy
	SETB	P0.2
	LCALL	Dealy
	CLR		P0.3
	LCALL	Dealy
	SETB	P0.3
	LCALL	Dealy
	CLR		P0.4
	LCALL	Dealy
	SETB	P0.4
	LCALL	Dealy
	CLR		P0.5
	LCALL	Dealy
	SETB	P0.5
	LCALL	Dealy
	CLR		P0.6
	LCALL	Dealy
	SETB	P0.6
	LCALL	Dealy
	CLR		P0.7
	LCALL	Dealy
	SETB	P0.7
	LCALL	Dealy
	AJMP	START
Dealy:	
	MOV		R7,#250
D1:	MOV		R6,#250
D2: DJNZ	R6,D2
	DJNZ	R7,D1
	RET
	END

程序2:

    ORG		0000H
	AJMP	MAIN
	ORG		0030H
MAIN:
	MOV		R0,#0FFH		;-1→R0
	MOV		R2,#16			;共16个数据
	MOV		DPTR,#TAB       ;将数据表起始数据放入数据指针DPTR中
LOOP:
	INC		R0				;R0+1
	MOV		A,R0
	MOVC	A,@A+DPTR 		;以累加器A作为数据表中的数组下标,将数据表中数据提取出来,并存入累加器A
SHOW:
	MOV		P0,A
	LCALL  	DELAY
	LCALL  	DELAY
	LCALL  	DELAY
	DJNZ	R2,LOOP
	AJMP	MAIN
DELAY:						;延时子程序
	MOV		R7,#250
D1:	MOV		R6,#250
D2: DJNZ	R6,D2
	DJNZ	R7,D1
	RET
TAB:
	;DB 0FEH,0FCH,0F8H,0F0H,0E0H,0CH,80H,00H,01H,03H,07H,0FH,1FH,3FH,7FH,0FFH
	DB	11111110B
	DB	11111100B
	DB	11111000B
	DB	11110000B
	DB	11100000B
	DB	11000000B
	DB	10000000B
	DB	00000000B
	DB	00000001B
	DB	00000011B
	DB	00000111B
	DB	00001111B
	DB	00011111B
	DB	00111111B
	DB	01111111B
	DB	11111111B
	END

仿真效果:
MCS51流水灯_查表方式1_Proteus仿真_第2张图片
MCS51流水灯_查表方式1_Proteus仿真_第3张图片

你可能感兴趣的:(单片机)