电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

任务4.1-基于状态机的程序架构

任务4.1-基于状态机的程序架构_第1页
1/11
任务4.1-基于状态机的程序架构_第2页
2/11
任务4.1-基于状态机的程序架构_第3页
3/11
项目 4简易数字钟的设计(2)计算机专业有门必修课程叫“软件工程”,这门课程告诉软件学习者们如何系统性的、法律规范化的、可定量的过程化方法去开发和维护软件.我们在学习单片机编程的过程当中,也应该借鉴“软件工程”课程当中的讲述的方法和手段,去维护和法律规范我们的单片机程序。在本单元当中,我们安排了 4 个任务。任务 1 介绍了一种基于状态机的程序框架,通过状态机的学习,初学者可以写出思路清楚、多任务运行流畅的程序。任务 2 介绍了程序的风格和可移植性,法律规范了变量和函数等的命名,并简单介绍了 C51 中提高程序可移植性的方法。任务 3 介绍了程序模块化的实现方法,让初学者学会合理的管理程序。任务 4 中运用本单元所讲的知识,结合前一单元,完成简易数字钟的设计。【内容安排】4。1 基于状态机的程序框架4.2 程序的风格和可移植性4.3 程序的模块化4.4 简易数字钟的设计任务 4.1 基于状态机的程序框架4。1.1 任务介绍上一单元中已经多次提到多任务运行时,延时函数(DelayMs())对程序的危害性,堵塞CPU,系统任务的实时性得不到有效的保证。在 3.4 节中,提到中断可以提高任务的实时性,但是单片机的中断数量是有限的,不可能每一个任务都有中断。在 3。5 节中,通过定时器中断服务函数提供的时标信号,定时扫描 LED 和数码管,可以消除延时函数,时标信号给我们提供了一种新的思路来消除延时函数(本质上还是借助于中断).但是 LED 闪耀和动态数码管扫描都是属于状态时间分配均匀的(LED 闪耀有两个状态,亮和灭分配时间相等;数码管每个位扫描的时间也相等),程序易于实现。对于像按键检测这样的(时间分配不均匀的)任务,怎样来消除程序中的延时呢?本节任务是:利用本节所讲“状态机”,改写独立按键程序,并增加“长按”、“连击”等功能。4.1.2 知识准备1、状态机的思想网络上常常报道特级象棋大师车和多人一起下象棋,采纳的方式是“车轮战”。车轮战有两种方式:(1)象棋大师先和甲开始下象棋,直到有了结果,然后才轮到乙和象棋大师对阵,下完了之后,然后是丙。.。。。。,一直到和最后一个人下完。(2)象棋大师先和 A下一步棋,然后再和 B 下一步棋,然后再和 C,和..。。。.,和所有人下完一遍后,再回头从 A 开始,一个人接一个人.很显然“车轮战"的第 1 种方式效率不如第 2 种方式效率高,报道上的“车轮战"也是指的第 2 种方式。原因在于象棋大师的水平远远高于其他人,...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

任务4.1-基于状态机的程序架构

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部