基于Proteus和Keil的C51程序设计项目教程(第2版):理论、仿真、实践相融合
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

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。