在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()
{
通过上述程序可以看出,穷举法程序结构简单。直接将所有需要的状态在主函数中全部列举出来即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)