2.4 任意变化的彩灯控制(课件)- 高二《单片机应用技术(C语言 第二版)》同步教学(劳动版)
2023-07-14
|
13页
|
204人阅读
|
7人下载
普通
内容正文:
本任务的内容是实现按时间依次让彩灯显示出表所列的花样。
本任务的特点是所显示的数据之间没有规律,不能通过计算的方式得到。在实际应用中,这种需求相对较多。
任务提出
任务四 任意变化的彩灯控制
彩灯控制要求
本任务依然要实现8只LED的点亮或熄灭控制,整个系统的硬件与任务三的要求是一致的,因此本任务采用任务三所使用的硬件电路。
由于本任务中是按时间变化依次控制彩灯亮、灭,可以采用与跑马灯类似的思路来完成程序流程图,但显示花样所对应的数据变化不一定有规律,虽然可以使用顺序逐次输出数实现,但不能采用变量直接计算的方式实现前后数据的变化,这里介绍一种很重要的程序设计方法——查表法。
任务分析
在程序设计中,为了处理方便,把具有相同类型的若干变量有序地组织起来,用一个统一的名字来表示,则这些有序变量的全体称为数组。或者说,数组是用一个名字代表顺序排列的一组数。在同一数组中,构成该数组的成员称为数组单元(或数组元素、下标变量)。
在C51中,数组属于构造数据类型,使用数组必须先对数组进行定义。按数组元素的类型不同,数组又可分为数值数组、字符数组等各种类别。
相关知识
一、一维数组的定义
下标变量中下标的个数称为数组的维数。当数组中每个元素只带有一个下标时,此数组称为一维数组。
一维数组的定义方式为:
类型说明符 数组名\[常量表达式\];
其中:
1.类型说明符说明数组的类型,实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。
2.数组名是用户定义的数组标识符。数组名的书写规则应符合标识符的书写规定。
3.方括号中的常量表达式表示数组元素的个数,也称为数组的长度。
4.不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。
5.允许在同一个类型说明中,说明多个数组和多个变量。
二、一维数组元素的引用
数组元素是组成数组的基本单元。数组元素也是一种变量,其标记方法为数组名后跟一个下标。下标表示了元素在数组中的顺序号。
一维数组元素的一般形式为:
数组名\[下标\]
三、一维数组的初始化
给数组赋值的方法除了用赋值语句对数组元素逐个赋值外,还可采用数组定义时给数组元素赋初值的方式。
初始化赋值的一般形式为:
类型说明符数组名\[常量表达式\]={值,值,…,值};
1.在{ }中的各数据值即为各元素的初值,各值之间用逗号间隔。
2.可以只给部分元素赋初值,未指定初值的数组元素的初值为0。
3.只能给元素逐个赋值,不能给数组整体赋值。
4.如给全部元素赋值,则在数组说明中,可以不给出数组元素的个数。
一、硬件设计
本任务用单片机实现8只LED不断地点亮和熄灭,采用任务三中图所示的硬件电路。
任务实施
流水灯的控制电路原理图
二、 软件设计
对于有限次的端口电平变化,完全可以采用端口顺序输出的方式实现,但这种方式太烦琐,不易修改且代码太长,对于单片机这样资源有限的系统来说是非常不适用的。
由于数组中各个数组元素仅仅是类型相同,各个数组元素的数值之间可以没有任何关系,数组元素的值能够通过下标来访问。
用数组方式点亮LED的流程图
三、Proteus仿真
参照前面任务介绍的方法和步骤进行Proteus仿真。
图所示的是单片机控制8只发光二极管的仿真效果图。
任意变化的彩灯控制仿真效果图
$
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。