flash5times.asm

来自「十五个关于AT89S51的源代码」· 汇编 代码 · 共 34 行

ASM
34
字号
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;实例三:闪烁5次的发光二极管  Flash five times  (《51单片机应用从零开始》 2.4小节实例)
;
;现象:P1.0口上的发光二极管闪烁5次后熄灭,直到再按下按键S7后,又开始闪烁
;
;作者:杨欣,刘长焕,张延强  电路飞翔网    eedesign@163.com
;
;				http://www.circuitfly.com
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


			ORG 	00H		; 设置起始地址
START:			     			
			MOV	R0, #5		; 闪烁计数器
LOOP:
			MOV	P1,#00H		; 向P1口输出低电平,使发光二极管点亮
			CALL 	DELAY		; 调用延时子程序
			MOV 	P1,#0FFH	; 向P1口输出高电平,使发光二极管熄灭
			CALL 	DELAY		; 调用延时子程序
			DJNZ	R0, LOOP	; 循环执行5次
			JB	P2.4, $		; 如果按键S7没有按下,则循环等待
			JMP	START		; 按键按下后,再闪烁5次
	
DELAY:			MOV	R3,#50		; 延时子程序(500ms)
D1:			MOV	R4,#20
D2:			MOV	R5,#248
			DJNZ	R5,$
			DJNZ	R4,D2
			DJNZ	R3,D1
			RET			; 返回主程序
			END			; 汇编程序结束

⌨️ 快捷键说明

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