
2.5 任务5:三种效果的花样灯设计

2.5.1 任务与要求
1.任务要求
设计一个花样灯,有多种显示花样。根据2.2节~2.4节,将它们的显示效果串联起来,即先亮点流动一个循环,接下来依次亮起来,最后高/低4位交替闪烁一次,如此三种效果循环显示。
2.任务目标
(1)会正确进行函数声明。
(2)体验结构化程序设计,熟悉函数设计与调用。
3.任务分析
每种效果的花样灯程序单独设计为一个函数,在主函数中一一对它们进行调用。三种效果花样灯的程序框架图如图2-26所示。

图2-26 三种效果花样灯的程序框架图
2.5.2 流程与程序设计


2.5.3 编译、代码下载、仿真、测判
按项目1所述方法,先在Keil中新建工程led25.uv2,然后添加源程序、设置工程选项并编译,生成代码文件LED25.HEX。参考2.1.7节下载代码,设置振荡频率为12MHz,进行仿真调试。
将代码下载到实物板进行测试。实践记录:是否成功?__________。自评分:__________。
2.5.4 在Keil中进行延时程序调试
在2.5.2节的程序中,延时函数Dly()的精确时间是多少呢?应用Keil中的调试工具可观测到。确保在Keil的选项设置中设置振荡频率为12MHz,如图2-27所示。

图2-27 设置Keil中的振荡频率
1.进入Keil的调试状态
源程序编译成功后,左击工具栏中工具按钮,进入运行调试状态,弹出调试工具栏。常用的几个调试按钮
(也可从调试菜单中查看)说明如图2-28所示。

图2-28 主要调试按钮功能说明
2.程序调试
按程序语句的先后顺序,可在工程管理窗口看到累计运行时间,如图2-29所示。

图2-29 从工程管理窗口看语句累计运行时间
单击复位按钮,按表2-18进行调试。在12MHz的情况下,可见Dly05s()函数的运行时间为500062μs,如图2-30所示。
表2-18 单步调试,查看时间


图2-30 在Keil中调试查看Dly05s()函数的运行时间
3.设计学号*40ms的延时函数
延时函数dly05s()延时长短由其两层循环的变量大小决定。从宏观上,变量i、j的数值越大,时间越长;数值越小,时间越短。但注意i变量不能超过255,j变量不能超过65 535。