汽车车灯控制系统DOC_第1页
汽车车灯控制系统DOC_第2页
汽车车灯控制系统DOC_第3页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、信息科学与技术学院微机原理与接口技术课程设计报告题目名称:汽车车灯控制系统1题目及要求 01.1 题目01.2要求02. 功能设计 02.1汽车图形02.2汽车左转02.3汽车右转02.4汽车前进02.5汽车倒退02.6汽车停止02.7响铃模块03. 主流程图14. 详细设计24.1汽车图形显示23.2 汽车停止、转向、倒车的指示 25. 结果显示 35. 总结66、程序代码 71. 题目及要求1.1题目汽车车灯控制系统1.2要求1)实现停止时的指示灯;2)实现汽车转向时指示3)实现倒车指示4)扩展功能:实现倒车的声音提示2. 功能设计2.1汽车图形功能:用汇编语言在dos下实现一个汽车的图形

2、,和四盏灯2.2汽车左转功能:按A'键,实现汽车的左转,左前、左后指示灯亮,右前、右后指 示灯灭。2.3汽车右转功能:按D'键,实现汽车的右转,左前、左后指示灯火,右前、右后指 示灯亮。2.4汽车前进功能:按W键,实现汽车的向前行驶,并且四盏指示灯全灭2.5汽车倒退功能:按S键,实现汽车的倒退行驶,并且后面 2盏指示灯全亮,前面2 盏指示灯全灭。2.6汽车停止功能:按B'键,实现汽车的停止,并且四盏指示灯全亮和倒车提示音2.7响铃模块功能:汽车停止时,提供倒车提示音3.主流程图4. 详细设计4.1汽车图形显示字符图形既可以在显示器上以简单的黑白图形字符显示,也可以在彩色

3、显 示器上以彩色的图形字符显示。通过调用INT 10H的AH=0 AL=07设置不同的 显示方式,调用INT 10H的AH=09H AH=0A等可显示字符。在屏幕上显示出汽车的效果,可分5步进行:1)在屏幕上显示图形(单字符或多字符图形)2)延迟一个时间周期,这样图形更清晰3)清除图形4)改变图形的行列坐标5)返回第一步,重复上述过程。4.2汽车停止、转向、倒车的指示首先是检测键盘的输入,根据输入的字符(A,D, W S, B)来调用相应的 函数,执行相应的操作实现:在屏幕上显示小车, 延迟一个时间周期这样图形 更清晰,清除图形,改变汽车图形的行列坐标,返回第一步,重复上述过程。5.结果显示2

4、、左转I D:IAS1CAR, EXESwitch A is for zuozhuansuitch D is far yotiNhuHn”switch VJ is for qianjin,suitch S is for houtuipswitch B is for shachefI f you want to quit, plEase hit J konggeJ ?0ililiinnriis fnr qianjin,switch3右转兀 D:MAS1CAR- EIEISwltcli Ais for zuozWanj.switch 0 is for youzhuanj.switch U S is

5、 for* houtuij-switch B is for shachefIf you uant to quit, please hit 11 konggeJ ?4、前进D;USBCARV EXEISwitch Ais foi* zuozluuanj.switch Dis farswitch Wis for qianjin,switchS is foi* liDutui,switch B is for shachefIf you uant to *uitr please hit J konggeJ ?00nnilTlTlil0 05、后退和响铃e < D:KASHCAR, EXEISwi

6、tcli Ais foi* zuozWanj.suitch Dis for vuzhuanj.switch Wis for qianjin,switch S Is for houtui,suitch B is for shachefIf i/ou uant to quit please hit 1 kongge*00 nn ilTlilil&停止s D:IAS1CAR, EXESwitch A is far zuozhuan,sv>±tch D is fqv yoiiNhaiAn”switch U is fai* qianjin,suitch S is for hout

7、uipswitch B is for shache!I f j/ou want to quit, plEase hit J konggeJ ?finHilflil5. 总结两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识, 也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在 设计过程中,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运 筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我 深深体会到这句千古名言的

8、真正含义. 我今天认真的进行课程设计,学会脚踏实 地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻 炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学 技术发展的日新日异,当今计算机应用在是生活中可以说得是无处不在。 因此作 为二十一世纪的大学来说掌握计算机开发技术十分重要的。我的题目是汽车车灯控制系统,对于我们这些新手来说,这是很大的考验, 我一千次一万次的问自己,怎么才能找到课堂所学与实际应用的最佳结合点?怎 么才能让自己的程序在篇幅上简单,在使用价值上丰富?怎样让自己的业余更靠 近

9、专业?怎样让自己的计划更具有序性,而不会忙无一用?机会是老师,学校, 以及无数代教育工作者给的,而能力是自己的,耐性是需要的。经过自己的琢磨, 听取了师姐,师兄们的建议,还查阅了很多书籍,才做到了心中有数,才了解了 接口课程设计的真正用意一一培养自学能力, 养成程序编辑的好习惯。我从来不 相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口, 我要积极,要 把握,要努力。回顾起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个 编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的的东西,同 时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的 知识。通过

10、这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来, 从理论中得出结论, 才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 在设计 的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各 种各样的问题,同时在设计的过程中发现了自己的不足之处, 对以前所学过的知 识理解得不够深刻,掌握得不够牢固,比如说结构体通过这次课程设计之后, 一定把以前所学过的知识重新温故。在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎 么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪, 黑

11、夜过去了,我们收获的是黎明。谢谢老师的指导。6、程序代码.MODEL SMALL.DATAmessage db 'Switch A is for zuozhuan,switch D is for youzhuan,switch W is for qianj in, switch S is for houtui,switch B is for shache!'db 0ah,0dhdb 'If you want to quit, please hit ''ko ngge"!',0ah,0dh,'$'CARS DW 15DB

12、0,0,4FH,7,0,1,4FH,7DB 1,0,0BBH,6,0,-1,0BBH,6DB 1,-1,0BBH,6,0,1,0BBH,6DB 0,1,0BBH,6,0,1,0BBH,6DB 1,0,4FH,7,0,-3,4FH,7;定义汽车形状ROW DB ?COLUMN DB ?MODE DB ?MUS_FREG;MODE=1时画小车,MODE=0时清除小车dw 262,262,294,262,349,330dw 262,262,294,262,392,349dw 262,262,523,440,349,330,294dw 466,466,440,262,392,349dw -1MUS_T

13、IMEdw 10,20,20,20,20,100dw 10,20,20,20,20,100dw 10,20,20,20,20,20,200dw 10,20,20,20,20,100.CODESTART:MOV AX,DATAMOV DS,AX ;初始化MOV ROW,13;小车的初始行坐标MOV COLUMN,38;小车的初始列坐标mov ah,09h;显示系统提示信息mov dx,seg messagemov ds,dxmov dx,offset messageint 21hCALL DRAW ;画小车CALL DIRECTION;检查是否有控制键按下?MOV AX,4C00H;退出程序IN

14、T 21HDIRECTION PROC NEAR ;键盘检测子程序DRAW_U:MOV AH,0;接收键盘输入INT 16HCMP AL,57H ;向上?JNZ DRAW_D;没有则转移CALL CLEAR ;清除小车DEC ROW ;行坐标减1CALL DRAW ;画小车CMP ROW,1 小、车在最上边吗?JNZ DRAW_D;不是则转移CALL CLEAR;是则清除小车MOV ROW,24;把小车置于最下边DRAW_D:CMP AL,53H ;向下?JNZ DRAW_L;没有则转移CALL CLEAR;清除小车INC ROW;行坐标加1CALL DRAW_DD ;画小车CMP ROW,2

15、4 ;小车在最下边吗?JNZ DRAW_L;不是则转移CALL CLEAR;清除小车MOV ROW,1 ;把小车置于最上边 jmp DRAW_LA1:jmp DRAW_UDRAW_L:CMP AL,41H ;向左?JNZ DRAW_R;没有则转移CALL CLEAR;清除小车DEC ROW;行坐标减1DEC COLUMN;列坐标减1CALL DRAW_LLCMP COLUMN,0JNZ DRAW_R;画小车;小车在最左边吗?;不是则转移CALL CLEAR ;清除小车MOV COLUMN,76;把小车置于最右边MOV ROW,24DRAW R:CMPAL,44H;向右?JNZ DRAW_STO

16、P;没有则转移CALL CLEAR;清除小车INC COLUMN ;列坐标加1 DEC ROW ;行坐标减1CALL DRAW_RR ;画小车CMP COLUMN,76 ;小车在最右边吗? JNZ DRAW_STOP;不是则转移CALL CLEAR ;清除小车MOV COLUMN,0 ;把小车置于最左边MOV ROW,24DRAW_STOP:CMP AL,42HJNZ EXITCALL CLEARCALL DRAW_SSEXIT:CMP AL,20H ;空格?JNZ A1 ;没有则返回RET 退出DIRECTION ENDPDRAW:;画小车MOV MODE,1CALL CARRETCLEAR

17、:;清除小车MOV MODE,0CALL CARRETCAR PROC NEAR ;小车图形子程序MOV DH,ROWMOV DL,COLUMNMOV CX,10LEA DI,CARS+2ONE:ADD DH,DI+0;置光标列ADD DL,DI+1;置光标行MOV AH,2INT 10HMOV AL,DI+2MOV BL,DI+3CMP MODE,0JNE SKIPMOV BL,0SKIP:PUSH CXMOV CX,1MOV AH,09HINT 10HPOP CXADD DI,4LOOP ONERETCAR ENDP;显示字符的ASCII码;显示字符的属性;MODE=1时画小车,MODE=

18、O时清除小车;左拐的处理DRAW_LL:;画小车MOV MODE,1CALL CAR_LRETCAR_L PROC NEAR ;小车图形子程序MOV DH,ROWMOV DL,COLUMNMOV CX,10LEA DI,CARS+2ONE_L:ADD DH,DI+0;置光标行ADD DL,DI+1;置光标列MOV AH,2INT 10HMOV AL,DI+2;显示字符的ASCII码MOV BL,DI+3;显示字符的属性SKIP_L: PUSH CXMOV CX,1MOV AH,09HINT 10HPOP CXADD DI,4LOOP ONE_LMOV DH,ROW;左前灯亮MOV DL,COL

19、UMNLEA DI,CARS+2ADD DH,DI+0;置光标行ADD DL,DI+1;置光标列MOV AH,02HINT 10HMOV AL,DI+2MOV BL,4MOV CX,1MOV AH,09HINT 10HPOP CXADD DH,3ADD DL,-1MOV AH,02HINT 10HMOV AL,DI+2MOV BL,4 PUSH CXMOV CX,1MOV AH,09HINT 10HPOP CXRETCAR L ENDP;显示字符的ASCII码;显示字符的属性;左后灯亮;显示字符的ASCII码;显示字符的属性;右拐的处理DRAW_RR:;画小车MOV MODE,1CALLCAR

20、_RRETCAR_R PROC NEAR ;小车图形子程序MOV DH,ROWMOV DL,COLUMNMOV CX,10LEA DI,CARS+2ONE_R:ADD DH,DI+0;置光标行ADD DL,DI+1;置光标列MOV AH,2INT 10HMOV AL,DI+2;显示字符的ASCII码MOV BL,DI+3;显示字符的属性SKIP_R: PUSH CXMOV CX,1MOV AH,09HINT 10HPOP CXADD Dl,4LOOP ONE R;右前灯亮MOV DH,ROWMOV DL,COLUMN;置光标行;置光标列;显示字符的ASCII码;显示字符的属性LEA DI,CA

21、RS+6ADD DH,DI+0ADD DL,DI+1MOV AH,02HINT 10HMOV AL,DI+2MOV BL,4MOV CX,1MOV AH,09HINT 10HPOP CXADD DH,3;左后灯亮ADD DL,+1MOV AH,02HINT 10HMOV AL,DI+2;显示字符的ASCII码MOV BL,4;显示字符的属性PUSH CXMOV CX,1MOV AH,09HINT 10HPOP CXRETCAR_R ENDP;后退的处理DRAW_DD:;画小车MOV MODE,1CALLCAR_DRETCAR_D PROC NEAR ;小车图形子程序MOV DH,ROWMOV

22、DL,COLUMNMOV CX,10LEA DI,CARS+2ADD DL,DI+1;置光标列MOV AH,2INT 10HMOV AL,DI+2;显示字符的ASCII码MOV BL,DI+3;显示字符的属性SKIP_D: PUSH CXMOV CX,1MOV AH,09HINT 10HPOP CXADD DI,4LOOP ONE_DMOV DH,ROWMOV DL,COLUMNADD DH,3;左后灯亮ADD DL,-1MOV AH,02HINT 10HMOV AL,4FH ;显示字符的ASCII码MOV BL,4;显示字符的属性PUSH CXMOV CX,1MOV AH,09HINT 10

23、HPOP CX;右后灯亮ADD DL,+3MOV AH,02HINT 10HMOV AL,4FH ;显示字符的ASCII码MOV BL,4;显示字符的属性PUSH CXMOV CX,1MOV AH,09HINT 10HPOP CXcall musicRETCAR_D ENDPMOV MODE,1CALL CAR_STOPRETCAR_STOP PROC NEAR ;小车图形子程序MOV DH,ROWMOV DL,COLUMNMOV CX,10LEA DI,CARS+2ONE_STOP:ADD DH,DI+0;置光标行ADD DL,DI+1;置光标列MOV AH,2INT 10HMOV AL,D

24、I+2;显示字符的ASCII码MOV BL,DI+3;显示字符的属性SKIP_STOP: PUSH CXMOV CX,1MOV AH,09HINT 10HPOP CXADD DI,4LOOP ONE_STOP;右前灯亮MOV DH,ROWMOV DL,COLUMNLEA DI,CARS+6;置光标行;置光标列;显示字符的ASCII码;显示字符的属性ADD DH,DI+0ADD DL,DI+1MOV AH,02HINT 10HMOV AL,DI+2MOV BL,4MOV CX,1MOV AH,09HINT 10HPOP CX;左前灯亮ADD DL,-1MOV AH,02HINT 10HMOV AL,4FH ;显示字符的ASCII码MOV BL,4;显示字符的属性PUSH CXMOV CX,1MOV AH,09HINT 10HPOP CXMOV DH,ROWMOV DL,COLUMNADD DH,3;左后灯亮ADD DL,-1M

温馨提示

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

评论

0/150

提交评论