单片机交流
直播中

李英

7年用户 1478经验值
私信 关注
[问答]

如何利用单片机中断实现流水灯?

如何利用单片机中断实现流水灯?

回帖(1)

易静帜

2021-10-13 15:30:51
在我们的生活中,随处可见各式各样的彩灯,给这本来充满美丽的世界又添加了一份别致的美,想知道流水灯是怎么实现的吗?现在就跟我走进这实现流水灯的大道吧!
其实利用单片机的中断功能就可以实现。本篇文章是当每按一次键时,灯向一个方向(向左或向右)点亮一个灯,就像流动的水一样。
中断应用实例:
以外部中断为例,做一个中断的应用试验。在实验板上有一个按钮,在INT0引脚上装有一个按钮,可以用这个按钮来模拟外部中断产生的信号,并用P0口接的LED作为中断响应,如下图1-1所示。
一、             威廉希尔官方网站 原理图

二、             实际应用程序
ORG   0000H
AJMP  START
ORG   0003H   ;外部中断入口地址
LJMP   INT_0  ;转到真正的处理程序处
ORG   0030H
START:
SETB  IT0     ;令INT0为负边沿触发中断
SETB  EA     ;CPU开放总中断
SETB   EX0  ;开外部INT0中断
MOV  P1,#0FEH  ;点亮D1
LJMP   $      ;跳转到本行
INT_0:      ;中断服务程序
PUSH   PSW
PUSH   ACC ;保护现场
MOV  A, P1
RL   A   ;对A左移一位,变成0FDH
MOV  P1,A
POP   ACC
POP   PSW ;恢复现场
RETI          ;中断返回
END
程序说明:ORG是一条伪指令,用来指示程序代码的存放位置。“ORG  0000H”说明代码从0000H开始存放;“ORG  0003H”说明代码从0003H开始存放,及外部中断0的入口地址。其他指令的用途对照注释不难看懂。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分