欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:8115705       资源大小:19.63KB        全文页数:7页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、微机原理课程设计汽车速度控制微机原理课程设计汽车速度控制 微机原理课程设计汽车速度控制 西 安 邮 电 大 学 (计算机学院) 硬件课程设计报告 题 目: 汽车速度控制的设计与实现 专业名称: 软件工程 班 级: 软件1201 学生姓名: 学号(8位): 指导教师: 设计起止时间:2014年12月15日2014年12月26日 1. 设计目的:微机接口电路的设计及应用。 通过微机原理与接口课程设计,使学生能够进一步了解微型计算机工作原理, 微型计算机的硬件结构及微型计算机软件编程。 要求学生根据接口电路的硬件要求进行计算机的汇编语言程序设计,使学生的软件编程能力得到加强,对接口电路的综合应用能力

    2、有较大提高。 利用所学微机的理论知识进行软硬件整体设计,提高综合应用能力。 通过设计掌握综合使用基本输入设备,通用接口芯片,专用接口芯片的方法;熟悉并行接口芯片8255的使用与硬件接口方法,熟悉8255的各种工作方式,掌握8255的编程方法;掌握实时处理程序的编制和调试方法。 从而帮助学生系统地掌握微机原理的接口技术的相关知识,达到将知识融会贯通的目的。 同时给学生提供更多、更好的训练机会,培养学生的创新能力。 2. 设计内容:所选题目的具体要求。 在自行设计接口板的的按键转换汽车的挡位,用发光二极管显示挡位,用数码管显示汽车的速度。 (1) 按“1”键启动系统,汽车以最低速度行驶,同时用1盏

    3、绿灯显示挡位,数码管显示速度(最低速度为5Kmh)。 当需要换档时,用键盘键入2、3键,并加用一盏黄灯和一盏红灯显示,同时在数码管上显示相应的速度。 (2) 汽车慢加速时用“A”键,急加速时用“B”键。 慢刹车时用“C”键,急刹车时用“D”键。 加速和刹车时用数码管显示相应的速度变化。 (3) 当汽车需紧急停车时,键入“ESC”键,所有发光二极管熄灭,同时数码管显示“0”。 3. 设计过程: 根据设计内容,给出设计方案,选择需要的接口芯片和外设等,确定相应的接口芯片的工作方式,并给出proteus下设计出的系统原理图,见文章末尾 根据系统要求,设计程序,给出流程图描述程序。 数码管流程图 程序

    4、流程: 设置初始状态:速度为0,数码管显示为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档的

    5、最大速度25,进入1档最大速度状态; 若没按下KB开关,则判断是否按下KC开关,若按下则进入慢减速状态,直到速度减到0,进入初始状态; 若没按下KC开关,则判断是否按下KD开关,若按下则进入快减速状态,直到速度减到0,进入初始状态; 若没按下KD开关,则判断是否按下KE开关,若按下则进入停车状态,速度减到0,进入初始状态; 若没按下KE开关,则停留在1档初始状态,等待接收指令; 1档最大速度状态下接收指令: 判断是否按下K2开关若按下,若按下则进入2档初始状态; 若没按下K2开关,则判断是否按下KC开关,若按下则进入慢减速状态,直到速度减到0,进入初始状态; 若没按下KC开关,则判断是否按下K

    6、D开关,若按下则进入快减速状态,直到速度减到0,进入初始状态; 若没按下KD开关,则判断是否按下KE开关,若按下则进入停车状态,速度减到0,进入初始状态; 若没按下KE开关,则停留在2档初始状态,等待接收指令; 进入2档初始状态后,它的程序流程和1档初始状态流程一样;进入3档初始状态后,流程和1、2档一样,只是当进入3档最大速度状态后,只能接受减速停车指令。 在前两步的基础上,给出proteus下程序运行的结果截图。 见文章末尾 具体硬件实现,给出实际所焊电路的系统连线图。 在所焊电路的板子上运行程序,拍照,打印出系统运行截图。 4. 设计总结:分析自己的设计结果,总结设计中所遇到的问题以及采

    7、取的解决办法。 设计结果分析:整个系统运行过程中考虑到了很多情况,做得比较细腻,比如1档必须到达了最大速度才能接收2档指令,不能越到3档;在加速过程中速度只会加到相应档位的最大速度,不会超过它;不足的是:在加速减速状态中不会被中断,速度会加到最大或减到0,这点还需改进。 遇到问题:不知道如何让数码管正确的显示相应的数字 解决办法:先查看实验指导书了解了数码管的线路连接,然后上网查找数码管显示的方法,再和组员一行一行代码的编写,试了很多次数码管都不显示。 最后才知道了程序最开始没有定义堆栈段,导致要显示的数据不能压栈。 最终解决了数码管的问题。 遇到问题:编译时出现Relative jump o

    8、ut of range错误 指定的转移超出了允许的范围(-128+127) 解决办法:该问题是由于转移范围超出允许范围,我们就在转移的中间再加一个转移,把距离一分为二,从而解决了问题。 比如jump state1;出现错误,我们就改为 state1jmp: jump state1; jump state1jmp; 软件调试 程序完成后就可以对它进行编译和执 行,如果发现有错误,则返回程序中修改,完成后再次编译和执行,就这样周而 复始的重复进行,直到没有出现编译错误之后就可以运行了。 运行的时候也有问题出现。 例如程序的结构有问题,对于寄存器的使用不合 理,或对于寄存器的重复使用导致数据混乱,循

    9、环不能正常的结束等问题。 要解 决这些问题就要对汇编用深入的理解,画清楚流程图,使用结构简单的循环, 分布编写程序,同时注意对程序的注释可以减少问题。 对于寄存器的使用问题可以 才用入栈出栈来保存部分寄存器的值来安排寄存器的使用。 5. 设计心得 课程设计刚开始的时候,对整个系统的设计完全没有思路,也不知道该先从哪部分下手。 在老师给我们讲解了一些注意事项,还用仿真给我们演示了设计该达到的要求之后,小组四个人就开始讨论系统的整个运行流程,讨论出方案后就开始分工,我做的是 “汽车速度控制” 的软件部分。 在这之前我对汇编语言的编写不是很熟悉,对各种寄存器的功能及使用不是很了解, 担心自己不会或者

    10、做不好。 为了完成任务,我不停的翻阅书籍,查看资料,和组员共同商量,尽自己最大的努力去做, 做到自己最好的,最后成功完成了任务。 在做整个设计时应先讨论好设计方案,画好流程图,要完全了解整个流程之后才去编写程序,这样才能有条不紊地做实验,不然只会弄得一团糟。 同时我明白,要做好一个课题,细心,耐心,好奇心和同学之间的有效合作 都是不可缺少的,要将书本知识与实际操作紧密联系起来,在实践中发现和解决 问题是非常重要的。 在实验的过程中也出现了一些问题,大部分来 自自身的疏忽与对知识掌握的不牢固,这些方面是要加强的! 通过老师的帮助,在解决问题的过程中,让我们对问题的认知更加深刻了, 这些都将有益于

    11、我们学到更多更为有用的东西。 同时也知道了团队合作的重要性,在实验中,同组成员在一起发现问题、讨论问题,大大提高了解决问题的速度。 同时,通过课程设计大家得到了很好的锻炼,也期待我们应该有更多实际操作的机会,加强合作与创新方面的能力。 感谢老师的悉心指导。 设计过程: 原理图: 流程图: 运行截图: 板子图: 源代码: 源代码: IO_KEY_123A EQU 010B IO_KEY_BCDE EQU 100B MY8255C EQU 100B MY8255A EQU 000B IO_SELECT_OUTSMG1 EQU 010B K1 EQU 00010000B K2 EQU 0010000

    12、0B K3 EQU 01000000B KA EQU 10000000B KB EQU 00000001B KC EQU 00000010B KD EQU 00000100B KE EQU 00001000B LED1 EQU 11101111B LED2 EQU 11011111B LED3 EQU 10111111B LED4 EQU 01111111B SELECT_LED_NONE EQU 0FFH ; 减缓速度增加或减少速率的倍数(快) ; 最大为 2/数码管要显示的最大速度 SLOW_DOWN_SPEED_FAST EQU 10 ; 同上(慢) SLOW_DOWN_SPEED_SL

    13、OW EQU 200 DATA SEGMENT DATA_SMG DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H;数码管表 SELECT_OUTSMG1 DB 0H, 0FEH, 0FDH, 0FBH, 0F7H DATA ENDS ISTACK SEGMENT STACK DATA2 DW 16 DUP(?) TOP EQU LENGTH DATA2 ISTACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:ISTACK START:MOV AX,DATA MOV DS,AX MOV AX,ISTACK

    14、 MOV SS,AX MOV AX,TOP MOV SP,AX ;速度为0 state1:MOV AX,0 state1_INit: ; 数码管显示速度 CALL OUTSMG1 ; LED 显示档位 MOV AL, SELECT_LED_NONE OUT MY8255C, AL ; 测试 K1 是否按下,若是跳到状态 2, 否则回到状态 1 开始 IN AL, IO_KEY_123A AND AL, K1 CMP AL, 0 JE state2 JMP state1 ;1档 state2: ; DX = 当前速度 * SLOW_DOWN_SPEED_SLOW ; 当前速度 MOV AX, 0

    15、 MOV CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV DX, AX ;一档下速度升为5 state2_after_INit: CALL OUTSMG1 MOV AL, LED1 OUT MY8255C, AL INC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV CL MOV AH, 0 CMP AL, 5 JE state3 JMP state2_after_INit ;一档速度为5,再接受加速减速指令 state3: MOV AX, 5 CALL OUTSMG1 MOV AL, LED1 OUT MY8255C,

    16、AL ; 测试慢加速指令KA IN AL, IO_KEY_123A AND AL, KA CMP AL, 0 JE state4 ; 测试快加速指令KB IN AL, IO_KEY_BCDE AND AL, KB CMP AL, 0 JE state5 ; 测试慢减速指令KC IN AL, IO_KEY_BCDE AND AL, KC CMP AL, 0 JE state6 ; 测试快减速指令KD IN AL, IO_KEY_BCDE AND AL, KD CMP AL, 0 JE state7 ; 测试停车指令KE IN AL, IO_KEY_BCDE AND AL, KE CMP AL,

    17、0 JE state1 JMP state3 ;一档下的慢加速,速度最高为25 state4: MOV AX, 5 MOV CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV DX, AX state4_after_INit: CALL OUTSMG1 MOV AL, LED1 OUT MY8255C, AL INC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV CL MOV AH, 0 CMP AL, 25 JE state8 JMP state4_after_INit ;一档下的快加速,速度最高为25 state5: MO

    18、V AX, 5 MOV CL, SLOW_DOWN_SPEED_FAST MUL CL MOV DX, AX state5_after_INit: CALL OUTSMG1 MOV AL, LED1 OUT MY8255C, AL INC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_FAST DIV CL MOV AH, 0 CMP AL, 25 JE state8 JMP state5_after_INit state1jmp: jmp state1 ;一档下的慢减速 state6: MOV AX, 5 MOV CL, SLOW_DOWN_SPEED_SLOW

    19、 MUL CL MOV DX, AX state6_after_INit: CALL OUTSMG1 MOV AL, LED1 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV CL MOV AH, 0 CMP AL, 0 JE state1jmp ;state1 JMP state6_after_INit ;一档下的快减速 state7: MOV AX, 5 MOV CL, SLOW_DOWN_SPEED_FAST MUL CL MOV DX, AX state7_after_INit: CALL OUTSM

    20、G1 MOV AL, LED1 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_FAST DIV CL MOV AH, 0 CMP AL, 0 JE state1jmp ;state1 JMP state7_after_INit ;一档加到25后进入该状态,接受二档,慢减速。 快减速,停车等指令 state8: MOV AX, 25 CALL OUTSMG1 MOV AL, LED1 OUT MY8255C, AL ; 测试二档指令K2 IN AL, IO_KEY_123A AND AL, K2 CMP AL, 0 JE st

    21、ate9 ; 测试慢减速指令KC IN AL, IO_KEY_BCDE AND AL, KC CMP AL, 0 JE state10 ; 测试快减速指令KD IN AL, IO_KEY_BCDE AND AL, KD CMP AL, 0 JE state11 ; 测试停车指令KE IN AL, IO_KEY_BCDE AND AL, KE CMP AL, 0 JE state1jmp JMP state8 state2jmp: jmp state1 state9jmp: JMP state14 state10jmp: JMP state15 ;进入二档模式,接受加速减速指令 state9:

    22、MOV AX, 25 CALL OUTSMG1 MOV AL, LED2 OUT MY8255C, AL ; 测试慢加速指令KA IN AL, IO_KEY_123A AND AL, KA CMP AL, 0 JE state12 ; 测试快加速指令KB IN AL, IO_KEY_BCDE AND AL, KB CMP AL, 0 JE state13 ; 测试慢减速指令KC IN AL, IO_KEY_BCDE AND AL, KC CMP AL, 0 JE state9jmp ;state14 ; 测试快减速指令KD IN AL, IO_KEY_BCDE AND AL, KD CMP A

    23、L, 0 JE state10jmp ;state15 ; 测试停车指令KE IN AL, IO_KEY_BCDE AND AL, KE CMP AL, 0 JE state2jmp ;state1 JMP state9 ;一档下的慢减速 state10: MOV AX, 25 MOV CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV DX, AX state10_after_INit: CALL OUTSMG1 MOV AL, LED1 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV

    24、CL MOV AH, 0 CMP AL, 0 JE state2jmp JMP state10_after_INit ;一档下的快减速 state11: MOV AX, 25 MOV CL, SLOW_DOWN_SPEED_FAST MUL CL MOV DX, AX state3jmp: JMP state1 state11_after_INit: CALL OUTSMG1 MOV AL, LED1 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_FAST DIV CL MOV AH, 0 CMP AL, 0 JE stat

    25、e3jmp JMP state11_after_INit ;二档下的慢加速指令,最高速度为60 state12: MOV AX, 25 MOV CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV DX, AX state12_after_INit: CALL OUTSMG1 MOV AL, LED2 OUT MY8255C, AL INC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV CL MOV AH, 0 CMP AL, 60 JE state16 JMP state12_after_INit ;二档下的快加速模式,最高速

    26、度为60 state13: MOV AX, 25 MOV CL, SLOW_DOWN_SPEED_FAST MUL CL MOV DX, AX state13_after_INit: CALL OUTSMG1 MOV AL, LED2 OUT MY8255C, AL INC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_FAST DIV CL MOV AH, 0 CMP AL, 60 JE state16 JMP state13_after_INit ;二档下的慢减速模式,最小速度为25 state14: MOV AX, 25 MOV CL, SLOW_DOWN_

    27、SPEED_SLOW MUL CL MOV DX, AX state14_after_INit: CALL OUTSMG1 MOV AL, LED2 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV CL MOV AH, 0 CMP AL, 0 JE state3jmp JMP state14_after_INit state4jmp: JMP state1 ;二档下快减速模式,最小速度为25 state15: MOV AX, 25 MOV CL, SLOW_DOWN_SPEED_FAST MUL CL MOV

    28、 DX, AX state15_after_INit: CALL OUTSMG1 MOV AL, LED2 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_FAST DIV CL MOV AH, 0 CMP AL, 0 JE state4jmp JMP state15_after_INit ;二档下速度达到最大60,等待三档或减速指令 state16: MOV AX, 60 CALL OUTSMG1 MOV AL, LED2 OUT MY8255C, AL ; 测试进入三档指令K3 IN AL, IO_KEY_123A AND

    29、 AL, K3 CMP AL, 0 JE state17 ; 测试慢减速指令KC IN AL, IO_KEY_BCDE AND AL, KC CMP AL, 0 JE state18 ; 测试快减速指令KD IN AL, IO_KEY_BCDE AND AL, KD CMP AL, 0 JE state19 ; 测试停车指令KE IN AL, IO_KEY_BCDE AND AL, KE CMP AL, 0 JE state4jmp JMP state16 state5jmp: JMP state1 state8jmp: JMP state23 state11jmp: JMP state22

    30、;进入三档模式,相应LED灯亮,等待接收加速减速指令 state17: MOV AX, 60 CALL OUTSMG1 MOV AL, LED3 OUT MY8255C, AL ; 测试慢加速指令KA IN AL, IO_KEY_123A AND AL, KA CMP AL, 0 JE state20 ; 测试快加速指令KB IN AL, IO_KEY_BCDE AND AL, KB CMP AL, 0 JE state21 ; 测试慢减速指令KC IN AL, IO_KEY_BCDE AND AL, KC CMP AL, 0 JE state11jmp ;state22 ; 测试快减速指令K

    31、D IN AL, IO_KEY_BCDE AND AL, KD CMP AL, 0 JE state8jmp ;state23 ; 测试停车指令KE IN AL, IO_KEY_BCDE AND AL, KE CMP AL, 0 JE state5jmp ;state1 JMP state17 ;二档下达到最高速度60后慢减速 state18: MOV AX, 60 MOV CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV DX, AX state18_after_INit: CALL OUTSMG1 MOV AL, LED2 OUT MY8255C, AL DEC DX

    32、 MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV CL MOV AH, 0 CMP AL, 0 JE state5jmp JMP state18_after_INit ;二档下达到最高速度60后快减速 state19: MOV AX, 60 MOV CL, SLOW_DOWN_SPEED_FAST MUL CL MOV DX, AX state19_after_INit: CALL OUTSMG1 MOV AL, LED2 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_FAST DIV CL MOV AH, 0 CMP AL, 0 JE state5jmp JMP state19_after_INit ;三档下慢加速,最大速度为120 state20: MOV AX, 60 MOV CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV DX, AX state20_after_INit: CALL OUTSMG1 MOV AL, LED3 OUT MY8255C, AL INC DX MOV AX, DX MOV


    注意事项

    本文(微机原理课程设计汽车速度控制.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开