(三)任务实施
本任务需要大家自主绘制流程图,通过该实施过程,进一步深入理解程序开发的基本过程与思路,锻炼逻辑思维能力,同时养成一个良好的程序开发习惯。在完成流程图的绘制后,编写并测试程序,同时进一步修正自己的流程图。
步骤一:硬件连接
用2根杜邦线连接功能板上的VCC、GND和核心板上的VCC、GND。
用8根杜邦线连接功能板上的D0~D7和核心板上的P10~P17。
连接效果如图5-2所示。
图5-2 流水灯连接图
流水灯连接图
步骤二:绘制流程图
请在下框中尝试绘制流程图:
步骤三:程序编写
小贴士
采用定时器将需要定时的时间算好后,写入单片机中断程序中即可,这种方法可以实现精确定时,最终的误差仅由晶振决定。
虽然用定时器最准确,但对于51单片机来说,定时器数量是有限的,往往会出现不够用的情况。比如温度检测(尤其是温度变化大且变化频繁的场景),需要一个定时器来确保按时不停检测。此时如果另一个定时器又正好分配到其他任务,那么只有用其他方法延时了。
一般采用上述程序开发中使用的方法,即利用晶振频率计算CPU指令周期,再计算delay循环中有几条代码,需要多少个指令周期,由此得到delay函数执行一次的时长。但是使用delay函数进行延迟时,不只和CPU指令周期有关,还和是否使用了操作系统、用了哪种操作系统有关。总之,受影响的因素很多,因此采用delay函数实现定时、计时功能的精度不够。
步骤四:程序编译
编译程序,如果有警告、错误,则修改程序,重新编译。程序编写初期容易出现括号不配对、缺少“;”结束符及拼写错误等常见问题,本任务涉及循环语句,请仔细分析条件判断问题,防止出现死循环情况。
步骤五:程序下载及功能验证
程序下载完成后,观察LED灯D0~D7是否依次点亮,若未按要求点亮,则先检查各连接线是否正确,是否存在接触不良等问题。排除以上问题后,若故障依旧,则检查编写的程序,直至故障解决。