MCS-51 单片机控制跑马灯的三种方法
在 MCS 一 51 单片机的控制系统中,它的四个并行 8 位输入输出端口 P0 一
P3 是我们经常使用的。在并行端口的编程学习中,跑马灯是单片机并行端口输出控制的
典型实例。所谓跑马灯,是指将八个发光二极管分别连接到单片机的某一并行端口的八根
线上,通过编程控制这八个发光二极管从低到高或从高到低依次点亮。
图 1 跑马灯电路图
如图 1 所示,将 8 个发光二极管阴极接到 MCS 一 51 单片机 P1 端口的 8 根端口线上,阳
极通过限流电阻接+5V 电源。要让发光二极管点亮,则对应的端口线应该为低电平(0);
而要让其熄灭,对应的端 I=I 线应该为高电平(1)。由此,我们假定跑马灯由端 I=1 的低
位向高位轮流点亮.可以得到如下状态:
表 1 跑马灯状态表
从表1可以看出,P1端口的状态共有8种,在跑马灯的显示过程中.这8种状态依次出
现,循环往复。而要实现跑马灯的这种 显示功能.我们可以采用三种方法:
(1)穷举法;
(2)移位法;
(3)查表法。
下面分别来介绍一下这三种方法。
一、穷举法对于单片机的显示状态来说,它的8种状态是循环显示的。所谓穷举法。是指
将单片机所有的显示状态全部列举出来。写在程序的主函数中,通过while(1)的死循环
来实现这些状态的循环显示。
程序如下:
#include<reg51.h> //延时函数.延时0.5s
voiddelay()