微机原理课程设计汽车速度控制.docVIP

  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文档。上传文档
查看更多
微机原理课程设计汽车速度控制

西 安 邮 电 大 学 (计算机学院) 硬件课程设计报告 题 目: 汽车速度控制的设计与实现 专业名称: 软件工程 班 级: 软件1201 学生姓名: 学号(8位): 指导教师: 设计起止时间:2014年月日~20年月日的的按键转换汽车的挡位,用发光二极管显示挡位,用数码管显示汽车的速度。 . 按“1”键启动系统,汽车以最低速度行驶,同时用1盏绿灯显示挡位,数码管显示速度(最低速度为5Km/h)。当需要换档时,用键盘键入2、3键,并加用一盏黄灯和一盏红灯显示,同时在数码管上显示相应的速度。 2). 汽车慢加速时用“A”键,急加速时用“B”键。慢刹车时用“C”键,急刹车时用“D”键。加速和刹车时用数码管显示相应的速度变化。 3). 当汽车需紧急停车时,键入“ESC”键,所有发光二极管熄灭,同时数码管显示“0”。 1档初始状态:速度为5,LED1亮 1档最大速度状态:速度为25,数码管显示25 2档初始状态:速度为25,LED2亮 2档最大速度状态:速度为60,数码管显示60 3档初始状态:速度为60,LED3亮 3档最大速度状态:速度为120,数码管显示120 进入初始状态,判断是否按下K1开关,若没按下则回到初始状态,若按下则进入1档初始状态 1档初始状态下接受指令: 判断是否按下KA开关,若按下则进入慢加速状态,直到速度加到1档的最大速度25,进入1档最大速度状态; 若没按下KA开关,则判断是否按下KB开关,若按下则进入快加速状态,直到速度加到1档的最大速度25,进入1档最大速度状态; 若没按下KB开关,则判断是否按下KC开关,若按下则进入慢减速状态,直到速度减到0,进入初始状态; 若没按下KC开关,则判断是否按下KD开关,若按下则进入快减速状态,直到速度减到0,进入初始状态; 若没按下KD开关,则判断是否按下KE开关,若按下则进入停车状态,速度减到0,进入初始状态; 若没按下KE开关,则停留在1档初始状态,等待接收指令; 1档最大速度状态下接收指令: 判断是否按下K2开关若按下,若按下则进入2档初始状态; 若没按下K2开关,则判断是否按下KC开关,若按下则进入慢减速状态,直到速度减到0,进入初始状态; 若没按下KC开关,则判断是否按下KD开关,若按下则进入快减速状态,直到速度减到0,进入初始状态; 若没按下KD开关,则判断是否按下KE开关,若按下则进入停车状态,速度减到0,进入初始状态; 若没按下KE开关,则停留在2档初始状态,等待接收指令; 进入2档初始状态后,它的程序流程和1档初始状态流程一样;进入3档初始状态后,流程和1、2档一样,只是当进入3档最大速度状态后,只能接受减速停车指令。 在前两步的基础上,给出proteus下程序运行的结果截图。见文章末尾 具体硬件实现,给出实际所焊电路的系统连线图。 在所焊电路的板子上运行程序,拍照,打印出系统运行截图。 设计总结:分析自己的设计结果,总结设计中所遇到的问题以及采取的解决办法。 设计结果分析:整个系统运行过程中考虑到了很多情况,做得比较细腻,比如1档必须到达了最大速度才能接收2档指令,不能越到3档;在加速过程中速度只会加到相应档位的最大速度,不会超过它;不足的是:在加速减速状态中不会被中断,速度会加到最大或减到0,这点还需改进。 遇到问题:不知道如何让数码管正确的显示相应的数字 解决办法:先查看实验指导书了解了数码管的线路连接,然后上网查找数码管显示的方法,再和组员一行一行代码的编写,试了很多次数码管都不显示。最后才知道了程序最开始没有定义堆栈段,导致要显示的数据不能压栈。最终解决了数码管的问题。 遇到问题:编译时出现Relative jump out of range错误—— 指定的转移超出了允许的范围(-128~+127) 解决办法:该问题是由于转移范围超出允许范围,我们就在转移的中间再加一个转移,把距离一分为二,从而解决了问题。比如jump state1;出现错误,我们就改为 state1jmp: jump state1; jump state1jmp; 软件调试?? 程序完成后就可以对它进行编译和执?行,如果发现有错误,则返回程序中修改,完成后再次编译和执行,就这样周而?复始的重复进行,直到没有出现编译错误之后就可以运行了。?? 运行的时候也有问题出现。例如程序的结构有问题,对于寄存器的使用不合?理,或对于寄存器的重复使用导致数据混乱,循环不能正常的结束等问题。要解?决这些问题就要对汇编用深入的理解,画清楚流程图,使用结构简单的循环,?分布编写程序,同时注意对程序的注释可以减少问题。对于寄存器的使用问题可以?才用入栈出栈来保存部

文档评论(0)

celkhn5460 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档