FLASH”实-C++语言设计
按钮开关S1的检测由“DELAY:”程序段中的一条指令“JNB P1.0,FLASH”实现。当P1.0=1时,该指令不进行任何操作;当P1.0=0时,该指令会跳向“FLASH:”程序段执行急促交替发光的操作。如果S1一直被按下,“FLASH:”程序段将被不断执行,急促交替发光持续进行。直到S1释放后,程序又回到“MAIN:”中进行500ms间隔的交替发光。
相关的延时子程序在汇编语言中是非常重要的部分。以下是几个与延时子程序相关的资源:
-
51汇编语言延时子程序集合 提供了多种延时子程序的实现,适用于不同的应用场景。
-
汇编语言程序设计子程序设计 详细介绍了子程序设计的方法和技巧,对初学者非常有帮助。
-
单片机延时子程序 讨论了如何在单片机中实现精确的延时操作。
程序程序3-2:与发光二极管的交互
ORG 00H ;设置起始地址
MAIN: ;标号
MOV P1,#0FFH ; P1口作为输入口使用
MOV P0,#00H ;向P0口输出低电平,使发光二极管D1点亮
MOV P2,#0FFH ;向P2口输出高电平,使发光二极管D2熄灭
CALL DELAY ;调用延时子程序
MOV P0,#0FFH ;向P0口输出高电平,使发光二极管D1熄灭
MOV P2,#00H ;向P2口输出低电平,使发光二极管D2点亮
CALL DELAY ;调用延时子程序
JMP MAIN ;跳回MAIN,循环执行
在主程序中,我们可以看到使用了延时子程序DELAY和DELAY1来控制发光二极管的亮灭。详细的延时子程序代码如下:
DELAY:
MOV R3,#50 ;延时子程序(500ms)
D1:
MOV R4,#20
D2:
MOV R5,#124
D3:
JNB P1.0,FLASH ;当开关S1按下时,P1.0=0,跳转到FLASH程序段
DJNZ R5,D3
DJNZ R4,D2
DJNZ R3,D1
RET ;返回主程序
DELAY1:
MOV R3,#20 ;延时子程序(200ms)
D11:
MOV R4,#20
D21:
MOV R5,#248
D31:
DJNZ R5,D31
DJNZ R4,D21
DJNZ R3,D11
RET ;返回主程序
END ;汇编程序结束
用户评论