单片机跑马灯程序c语言,MCS-51单片机控制跑马灯的三种方法

描述

在MCS一51单片机的控制系统中,它的四个并行8位输入输出端口P0一P3是我们经常使用的。在并行端口的编程学习中,“跑马灯”是单片机并行端口输出控制的典型实例。所谓跑马灯,是指将八个发光二极管分别连接到单片机的某一并行端口的八根线上,通过编程控制这八个发光二极管从低到高或从高到低依次点亮。

77ec2ed6609664f73f0e9cfe51569a1f.png

从表1可以看出,P1端口的状态共有8种,在“跑马灯”的显示过程中.这8种状态依次出现,循环往复。而要实现“跑马灯”的这种 显示功能.我们可以采用三种方法:

(1)穷举法;

(2)移位法;

(3)查表法。

下面分别来介绍一下这三种方法。

一、穷举法

对于单片机的显示状态来说,它的8种状态是循环显示的。所谓穷举法。是指将单片机所有的显示状态全部列举出来。写在程序的主函数中,通过while(1)的死循环来实现这些状态的循环显示。

程序如下:

#include<reg51.h> //延时函数.延时0.5s

voiddelay()

{

8b195b11e83eee5f01fce072128dd891.png

通过上述程序可以看出.移位法通过对二进制数进行移位之后再取反的方式来得到跑马灯的状态,并将其送端口实现跑马灯的显示。

三、查表法

所谓“查表”,指的是将程序中需要用到的所有数据建立成一个表格,再在程序中依次访问每一个表格数据。在C语言中,我们可以在程序开始位置将表格定义成一个数组。然后在程序中,通过循环结构程序依次访问表格数组的每一个元素(即查表)。

表2移位法实现跑马灯的状态表

06eaf720c218d63c4c25153abc2626ce.png

7576dbf189f59667426b9ce485d44242.png

通过上述程序可以看出,查表法将跑马灯的所有数据在程序开始定义成一个数组,然后在主函数main()中用一个for循环依次访问每一个数组元素。实现查表。

四、三种实现方法的比较

穷举法、移位法、查表法都可以实现单片机“跑马灯”的显示控制。

穷举法,顾名思义,这种方法要将所有的状态在程序中一列举出来,不管这些数据是有规律的还是无规律的。从穷举法的程序我 们可以看出,它的程序结构在三种方法中是最简单的。但是,穷举法 列举的状态越多,程序就越长。所以,穷举法比较适合于数据或状态较少的场合。

移位法,是采用二进制数的移位操作来实现数据的显示。我们观察表一和表二的跑马灯状态可以看出:在跑马灯中.它的每一个状态都可以通过在上一个状态的基础上移位、取反来得到。其数据的变化是有规律的。所以,移位法适合于数据呈规律变化。下一个数据可由上一个数据通过计算来得到的场合,klan:“跑马灯”,以及单片机的动态扫描控制等。

查表法,是将所有数据在程序开始定义成一个表格。再通过循环 结构程序依次访问每一个数据来实现查表。观察查表法程序的数据,我们可以看出,所有数据都定义成了一个数组,而数组中的数据是不是有规律,对查表法没有什么影响。所以。查表法中既可以使用有规律的数据,也可以使用无规律的数据。查表法的程序比穷举法精干,使用的数据不需要像移位法要求的规律.所以在单片机的程序设计中,查表法得到了广泛的应用。比如:数码管的显示控制、LED点阵的显示控制等。

打开APP阅读更多精彩内容

点击阅读全文

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览113127 人正在系统学习中 相关资源:专业LED灯光动画制作软件(安装后直接用!)_setup安装包-Delphi工具…

来源:weixin_39827306

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月15日
下一篇 2021年4月15日

相关推荐