51单片机定时器(汇编)

实验内容

定时器控制流水灯的速度,但流水灯到边缘的时候,自动调整方向,先反方向继续流动

  1. 使用的是 定时器0

	ORG 	0000H
	LJMP 	MIAN
	ORG 	000BH
	LJMP 	T0_break
	ORG 	0200H
	
INIT:
	
	MOV 	TMOD,#01H	;定时器0为方式1
	
	;定时器0计时100us
	MOV 	TL0,#0B0H
	MOV 	TH0,#3CH
	SETB 	ET0
	;开启总中断
	SETB 	EA
	
	RET
	
MIAN:
	LCALL 	INIT
	

	ACALL	PS0
LOOP:	
	JMP		LOOP

PS0:
	MOV 	R5,#0EFH
	MOV 	R4,#0AH
	MOV 	P2,#0FFH
	CPL 	TR0
	RET

T0_1:
	RETI
Inv_C:
	CPL 	C
	LJMP 	D2
	RET

T0_L:
	RR 		A
	MOV 	R5,A
	CPL 	P1.5
	RETI
T0_break:
	;重新装载初始值
	MOV 	TL0,#0B0H
	MOV 	TH0,#3CH
	
	;10次流动一次
	DJNZ 	R4,T0_1;
	MOV 	R4,#0AH
	MOV 	P2,R5;
	
	MOV 	A,R5
	;判断是否反向
	JNB 	P2.7, Inv_C 
	JNB 	P2.0, InV_C
D2:	JC 		T0_L
	RL 		A
	MOV 	R5,A
	CPL 	P1.5
	RETI
end

Thank for your reading!!!!

你可能感兴趣的:(51单片机(汇编实现))