微机原理课程设计汽车速度控制_第1页
微机原理课程设计汽车速度控制_第2页
微机原理课程设计汽车速度控制_第3页
微机原理课程设计汽车速度控制_第4页
微机原理课程设计汽车速度控制_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西 安 邮 电 大 学(计算机学院)硬件课程设计报告题 目: 汽车速度控制的设计与实现专业名称: 软件工程班 级: 软件 1201学生姓名: 学号(8 位): 指导教师: 设计起止时间:2014 年 12 月 15 日2014 年 12 月 26 日1. 设计目的:微机接口电路的设计及应用。通过微机原理与接口课程设计,使学生能够进一步了解微型计算机工作原理, 微型计算机的硬件结构及微型计算机软件编程。 要求学生根据接口电路的硬件要求进行计算机的汇编语言程序设计,使学生的软件编程能力得到加强,对接口电路的综合应用能力有较大提高。利用所学微机的理论知识进行软硬件整体设计,提高综合应用能力。通过设计掌握综合使用基本输入设备,通用接口芯片,专用接口芯片的方法;熟悉并行接口芯片 8255 的使用与硬件接口方法,熟悉 8255 的各种工作方式,掌握 8255 的编程方法;掌握实时处理程序的编制和调试方法。从而帮助学生系统地掌握微机原理的接口技术的相关知识,达到将知识融会贯通的目的。同时给学生提供更多、更好的训练机会,培养学生的创新能力。2. 设计内容:所选题目的具体要求。在自行设计接口板的的按键转换汽车的挡位,用发光二极管显示挡位,用数码管显示汽车的速度。(1) 按“1”键启动系统,汽车以最低速度行驶,同时用 1 盏绿灯显示挡位,数码管显示速度(最低速度为 5Kmh) 。当需要换档时,用键盘键入 2、3 键,并加用一盏黄灯和一盏红灯显示,同时在数码管上显示相应的速度。(2) 汽车慢加速时用 “A”键,急加速时用 “B”键。慢刹车时用“C”键,急刹车时用“D”键。加速和刹车时用数码管显示相应的速度变化。(3) 当汽车需紧急停车时,键入“ESC”键,所有发光二极管熄灭,同时数码管显示“0” 。3. 设计过程: 根据设计内容,给出设计方案,选择需要的接口芯片和外设等,确定相应的接口芯片的工作方式,并给出 proteus 下设计出的系统原理图,见文章末尾 根据系统要求,设计程序,给出流程图描述程序。数码管流程图程序流程:设置初始状态:速度为 0,数码管显示为 01 档初始状态:速度为 5,LED1 亮1 档最大速度状态:速度为 25,数码管显示 252 档初始状态:速度为 25,LED2 亮2 档最大速度状态:速度为 60,数码管显示 603 档初始状态:速度为 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 下程序运行的结果截图。见文章末尾 具体硬件实现,给出实际所焊电路的系统连线图。 在所焊电路的板子上运行程序,拍照,打印出系统运行截图。4. 设计总结:分析自己的设计结果,总结设计中所遇到的问题以及采取的解决办法。设计结果分析:整个系统运行过程中考虑到了很多情况,做得比较细腻,比如 1 档必须到达了最大速度才能接收 2 档指令,不能越到 3 档;在加速过程中速度只会加到相应档位的最大速度,不会超过它;不足的是:在加速减速状态中不会被中断,速度会加到最大或减到 0,这点还需改进。遇到问题:不知道如何让数码管正确的显示相应的数字解决办法:先查看实验指导书了解了数码管的线路连接,然后上网查找数码管显示的方法,再和组员一行一行代码的编写,试了很多次数码管都不显示。最后才知道了程序最开始没有定义堆栈段,导致要显示的数据不能压栈。最终解决了数码管的问题。遇到问题:编译时出现 Relative jump out of range 错误 指定的转移超出了允许的范围(-128+127)解决办法:该问题是由于转移范围超出允许范围,我们就在转移的中间再加一个转移,把距离一分为二,从而解决了问题。比如 jump state1;出现错误,我们就改为state1jmp: jump state1; jump state1jmp; 软件调试 程序完成后就可以对它进行编译和执 行,如果发现有错误,则返回程序中修改,完成后再次编译和执行,就这样周而 复始的重复进行,直到没有出现编译错误之后就可以运行了。 运行的时候也有问题出现。例如程序的结构有问题,对于寄存器的使用不合 理,或对于寄存器的重复使用导致数据混乱,循环不能正常的结束等问题。要解 决这些问题就要对汇编用深入的理解,画清楚流程图,使用结构简单的循环, 分布编写程序,同时注意对程序的注释可以减少问题。对于寄存器的使用问题可以 才用入栈出栈来保存部分寄存器的值来安排寄存器的使用。 5. 设计心得课程设计刚开始的时候,对整个系统的设计完全没有思路,也不知道该先从哪部分下手。在老师给我们讲解了一些注意事项,还用仿真给我们演示了设计该达到的要求之后,小组四个人就开始讨论系统的整个运行流程,讨论出方案后就开始分工,我做的是 “汽车速度控制” 的软件部分。在这之前我对汇编语言的编写不是很熟悉,对各种寄存器的功能及使用不是很了解, 担心自己不会或者做不好。为了完成任务,我不停的翻阅书籍,查看资料,和组员共同商量,尽自己最大的努力去做, 做到自己最好的,最后成功完成了任务。在做整个设计时应先讨论好设计方案,画好流程图,要完全了解整个流程之后才去编写程序,这样才能有条不紊地做实验,不然只会弄得一团糟。同时我明白,要做好一个课题,细心,耐心,好奇心和同学之间的有效合作 都是不可缺少的,要将书本知识与实际操作紧密联系起来,在实践中发现和解决 问题是非常重要的。在实验的过程中也出现了一些问题,大部分来 自自身的疏忽与对知识掌握的不牢固,这些方面是要加强的! 通过老师的帮助,在解决问题的过程中,让我们对问题的认知更加深刻了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论