第五章51单片机学习基础综合(中断系统、计数器/定时器)

        我们前面已经学习过了独立按键的使用以及LED流水灯的相关内容了,接下来我们将两者综合起来:利用中断系统实现独立按键实时操控LED流水灯的走向。

        我们在实际进行操作的时候,并不能只是简单的将两者结合起来,简单的拼凑代码是无法完成实验目的的。因为当我们执行其中的任何一项任务的时候,单片机的CPU会被占用,因而导致无法读取另一份信息,所以我们就会发现存在独立按键不灵敏的情况。

        这个时候我们就要利用到中断系统,这可以让我们在执行某一项任务的时候,让CPU在很短的时间内中断此项任务,去完成另一项任务,由于这个过程时间极短,所以近似认为是CPU同时处理了两项任务。

        接下来我们认识具体的电路:

        了解相关电路之后我们就可以写出相应的代码,来实现内部电路的连接,这需要一定的电路知识做支撑,笔者在此用了STC-ISP上的一个功能自动生成了实现该过程的代码。当然,如果有一定的知识储备,也可以自己尝试编写代码。

        在编写代码的过程中,我们依然采用模块化编程(方便移植、简化主函数)。我们可以分别将中断代码、读取独立按键以及LED流水灯编入到各自的函数文件中,最后再进行调用。

        在Kile5中,有一个<INTRINS.h>的头文件,其中有可以实现LED流水灯的函数,我们可以直接调用。代码编写如下:

         下面是计时与中断函数:

         而读取独立按键和LED流水灯的代码,笔者在之前的文章中已有展现,再次不多做赘述。

        下面是实验结果:

   独立按键控制LED流水灯状态

        以上就是本章的大致内容,希望能够帮到大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值