嵌入式系统程序设计实例课件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2. 电梯运行算法设计 根据电梯运行流程,把电梯分为停止、运行、开门、关门四种控制状态,如下图所示。停止状态是指电梯在没有任何请求的情况下的静止状态,而不是指电梯在运行过程中开门前的停顿状况。我们忽略停顿状况,把电梯从运行状态直接迁移为开门状态。 电梯控制状态转移图 电梯控制状态转移图(续) 系统初始时,电梯处于停止状态。 电梯处于停止状态时,根据发出请求的楼层不同可以分别迁移到运行或者开门两个不同状态。 电梯处于运行状态时,如果没有到达请求楼层发生自迁移,即保持运行状态不变;当到达请求楼层时,迁移到开门状态。 电梯控制状态转移图(续) 电梯处于开门状态一段时间后必然迁移到关门状态。 电梯处于关门状态时可以根据是否有请求迁移到运行状态或者迁移到停止状态。 电梯状态处理伪代码 电梯各个状态的处理过程,可以依靠电梯派遣函数,根据通过判定电梯信息结构体中的电梯状态,调用相应控制状态的函数来控制电梯的运行,伪代码如下: 派遣函数(void) { switch(电梯运行状态) { case 停止状态: 停止处理函数; break; case 运行状态: 运行处理函数; break; case 开门状态: 开门处理函数; break; case 关门状态: 关门处理函数; break; default: break; } } 电梯停止状态流程图 电梯运行状态流程图 电梯开门状态流程图 电梯关门状态流程图 3. 输入输出部分设计 LCD输出模块负责显示系统的4个图形界面:系统欢迎界面、系统提示界面、系统运行界面和系统退出界面。 系统欢迎界面和系统退出界面分别显示一幅图片及相关文字; 系统主要工作在系统运行界面下。 输入输出部分设计(续) 按键输入模块的主要功能有三个:设置键盘键值;扫描键盘,采集按键信息;获取乘客请求结构体信息,并对这些信息进行封装、判断、转换等一系列的处理。 输入输出部分设计(续) 在设计当中,为了使键盘部分能够及时有效的响应,目标机上接有键盘专用芯片ZLG7290。键盘的动作由芯片ZLG7290检测,当键盘按下时,芯片检测到后在INT引脚产生中断触发电平通知处理器,处理器通过I2C总线读取芯片ZLG7290键值寄存器中保留的键值。 输入输出部分设计(续) 在设计当中,为了使键盘部分能够及时有效的响应,目标机上接有键盘专用芯片ZLG7290。键盘的动作由芯片ZLG7290检测,当键盘按下时,芯片检测到后在INT引脚产生中断触发电平通知处理器,处理器通过I2C总线读取芯片ZLG7290键值寄存器中保留的键值。 输入输出部分设计(续) 键盘获得的输入信息繁多而复杂,需要对这些信息进行处理,该过程分为两个步骤: 首先,对信息进行筛选和封装。由于键盘信息扫描检测函数不断地等待按键被按下,而用户使用键盘输入信息是随机的,所以需要对按键信息进行筛选,保留用户有效按键值。 由于系统使用规则的限制,每次用户发出的请求,并不能由单个按键完成,需要组合使用按键,所以需要把筛选出的多个有效键值一一封装在乘客请求信息结构体中存储。 四、系统函数说明 电梯控制算法模块 按键输入模块 LCD输出模块 其他函数 1. 电梯控制算法模块 main():主函数。首先完成设备初始化,包括打开Framebuffer和i2c设备,调用InitSystem()函数初始化系统数据结构和LCD,然后在循环中不断检测按键组合,如有乘客请求则通过派遣函数处理请求,然后完成显示,当用户输入*时循环结束,显示系统退出界面,完成系统清理工作退出程序。 InitSystem():系统初始化函数。调用InitElevator()函数初始化电梯信息结构类型数据结构,调用InitLcd()函数初始化LCD。 电梯控制算法模块(续) InitElevator():电梯信息结构初始化函数。初始化电梯信息结构类型变量ElevatorInfo。 InitLcd():LCD初始化函数。通过写Framebuffer在LCD绘制系统提示界面。 Dispatch():状态派遣函数。根据电梯当前状态,调用不同状态处理函数。 电梯控制算法模块(续) ElevatorStop():电梯停止状态处理函数。 ElevatorRun():电梯运行状态处理函数。 ElevatorOpen():电梯开门状态处理函数。 ElevatorClose():电梯关门状态处理函数。 电梯控制算法模块(续) KeyCheck():用户信息转换函数。把乘客按键请求信息结构体key中的信息映射至电梯信息结构体ElevatorInfo,设置电梯运行状态。 Display():运行界面显示函数。显示系统运行界面。 ExitShow():退出界面显示函数。

文档评论(0)

159****1748 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档