汽车车灯控制系统课程设计报告毕设论文Word格式.docx
- 文档编号:16983292
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:25
- 大小:123.43KB
汽车车灯控制系统课程设计报告毕设论文Word格式.docx
《汽车车灯控制系统课程设计报告毕设论文Word格式.docx》由会员分享,可在线阅读,更多相关《汽车车灯控制系统课程设计报告毕设论文Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
1.2要求
1)实现停止时的指示灯;
2)实现汽车转向时指示
3)实现倒车指示
4)扩展功能:
实现倒车的声音提示
2.功能设计
2.1汽车图形
功能:
用汇编语言在dos下实现一个汽车的图形,和四盏灯。
2.2汽车左转
按’A’键,实现汽车的左转,左前、左后指示灯亮,右前、右后指示灯灭。
2.3汽车右转
按’D’键,实现汽车的右转,左前、左后指示灯灭,右前、右后指示灯亮。
2.4汽车前进
功能:
按’W’键,实现汽车的向前行驶,并且四盏指示灯全灭。
2.5汽车倒退
功能:
按’S’键,实现汽车的倒退行驶,并且后面2盏指示灯全亮,前面2盏指示灯全灭。
2.6汽车停止
按’B’键,实现汽车的停止,并且四盏指示灯全亮和倒车提示音。
2.7响铃模块
汽车停止时,提供倒车提示音。
3.主流程图
No
Yes
YesRET
RET
Yes
No
非定义字符RET
4.详细设计
4.1汽车图形显示
字符图形既可以在显示器上以简单的黑白图形字符显示,也可以在彩色显示器上以彩色的图形字符显示。
通过调用INT10H的AH=0,AL=0~7可设置不同的显示方式,调用INT 10H的AH=09H,AH=0AH等可显示字符。
在屏幕上显示出汽车的效果,可分5步进行:
1)在屏幕上显示图形(单字符或多字符图形)
2)延迟一个时间周期,这样图形更清晰
3)清除图形
4)改变图形的行列坐标
5)返回第一步,重复上述过程。
“汽车”各字符的相对位移量:
4.2汽车停止、转向、倒车的指示
首先是检测键盘的输入,根据输入的字符(A,D,W,S,B)来调用相应的函数,执行相应的操作实现:
在屏幕上显示小车,延迟一个时间周期这样图形更清晰,清除图形,改变汽车图形的行列坐标,返回第一步,重复上述过程。
5.结果显示
1、开始
2、左转
3.右转
4、前进
5、后退和响铃
6、停止
5.总结
两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
在设计过程中,和同学们相互探讨,相互学习,相互监督。
学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。
课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在是生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。
我的题目是汽车车灯控制系统,对于我们这些新手来说,这是很大的考验,我一千次一万次的问自己,怎么才能找到课堂所学与实际应用的最佳结合点?
怎么才能让自己的程序在篇幅上简单,在使用价值上丰富?
怎样让自己的业余更靠近专业?
怎样让自己的计划更具有序性,而不会忙无一用?
机会是老师,学校,以及无数代教育工作者给的,而能力是自己的,耐性是需要的。
经过自己的琢磨,听取了师姐,师兄们的建议,还查阅了很多书籍,才做到了心中有数,才了解了接口课程设计的真正用意——培养自学能力,养成程序编辑的好习惯。
我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口,我要积极,要把握,要努力。
回顾起此次课程设计,至今我仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。
在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。
谢谢老师的指导。
6、程序代码
.MODELSMALL
.DATA
messagedb'
SwitchAisforzuozhuan,switchDisforyouzhuan,switchWisforqianjin,switchSisforhoutui,switchBisforshache!
'
db0ah,0dh
db'
Ifyouwanttoquit,pleasehit'
kongge'
!
0ah,0dh,'
$'
CARSDW15
DB0,0,4FH,7,0,1,4FH,7
DB1,0,0BBH,6,0,-1,0BBH,6
DB1,-1,0BBH,6,0,1,0BBH,6
DB0,1,0BBH,6,0,1,0BBH,6
DB1,0,4FH,7,0,-3,4FH,7
;
定义汽车形状
ROWDB?
COLUMNDB?
MODEDB?
;
MODE=1时画小车,MODE=0时清除小车
MUS_FREGdw262,262,294,262,349,330
dw262,262,294,262,392,349
dw262,262,523,440,349,330,294
dw466,466,440,262,392,349
dw-1
MUS_TIMEdw10,20,20,20,20,100
dw10,20,20,20,20,100
dw10,20,20,20,20,20,200
.CODE
START:
MOVAX,@DATA
MOVDS,AX;
初始化
MOVROW,13;
小车的初始行坐标
MOVCOLUMN,38;
小车的初始列坐标
movah,09h;
显示系统提示信息
movdx,segmessage
movds,dx
movdx,offsetmessage
int21h
CALLDRAW;
画小车
CALLDIRECTION;
检查是否有控制键按下?
MOVAX,4C00H;
退出程序
INT21H
;
DIRECTIONPROCNEAR;
键盘检测子程序
DRAW_U:
MOVAH,0;
接收键盘输入
INT16H
CMPAL,57H;
向上?
JNZDRAW_D;
没有则转移
CALLCLEAR;
清除小车
DECROW;
行坐标减1
CMPROW,1;
小车在最上边吗?
JNZDRAW_D;
不是则转移
是则清除小车
MOVROW,24;
把小车置于最下边
DRAW_D:
CMPAL,53H;
向下?
JNZDRAW_L;
INCROW;
行坐标加1
CALLDRAW_DD;
CMPROW,24;
小车在最下边吗?
JNZDRAW_L;
MOVROW,1;
把小车置于最上边
jmpDRAW_L
A1:
jmpDRAW_U
DRAW_L:
CMPAL,41H;
向左?
JNZDRAW_R;
DECROW;
DECCOLUMN;
列坐标减1
CALLDRAW_LL;
CMPCOLUMN,0;
小车在最左边吗?
JNZDRAW_R;
MOVCOLUMN,76;
把小车置于最右边
MOVROW,24
DRAW_R:
CMPAL,44H;
向右?
JNZDRAW_STOP;
INCCOLUMN;
列坐标加1
行坐标减1
CALLDRAW_RR;
CMPCOLUMN,76;
小车在最右边吗?
JNZDRAW_STOP;
MOVCOLUMN,0;
把小车置于最左边
DRAW_STOP:
CMPAL,42H
JNZEXIT
CALLCLEAR
CALLDRAW_SS
EXIT:
CMPAL,20H;
空格?
JNZA1;
没有则返回
RET;
退出
DIRECTIONENDP
DRAW:
;
MOVMODE,1
CALLCAR
CLEAR:
MOVMODE,0
CARPROCNEAR;
小车图形子程序
MOVDH,ROW
MOVDL,COLUMN
MOVCX,10
LEADI,CARS+2
ONE:
ADDDH,[DI+0];
置光标列
ADDDL,[DI+1];
置光标行
MOVAH,2
INT10H
MOVAL,[DI+2];
显示字符的ASCII码
MOVBL,[DI+3];
显示字符的属性
CMPMODE,0;
JNESKIP
MOVBL,0
SKIP:
PUSHCX
MOVCX,1
MOVAH,09H
POPCX
ADDDI,4
LOOPONE
CARENDP
左拐的处理
DRAW_LL:
CALLCAR_L
CAR_LPROCNEAR;
ONE_L:
SKIP_L:
LOOPONE_L
MOVDH,ROW;
左前灯亮
LEADI,CARS+2
MOVAH,02H
显示字符的ASCII码
MOVBL,4;
ADDDH,3;
左后灯亮
ADDDL,-1
POPCX
CAR_LENDP
右拐的处理
DRAW_RR:
CALLCAR_R
CAR_RPROCNEAR;
ONE_R:
SKIP_R:
LOOPONE_R
;
右前灯亮
MOVDH,ROW
LEADI,CARS+6
ADDDL,+1
RET
CAR_RENDP
后退的处理
DRAW_DD:
CALLCAR_D
CAR_DPROCNEAR;
ONE_D:
SKIP_D:
LOOPONE_D
MOVAL,4FH;
右后灯亮
ADDDL,+3
callmusic
CAR_DENDP
DRAW_SS:
CALLCAR_STOP
CAR_STOPPROCNEAR;
ONE_STOP:
SKIP_STOP:
LOOPONE_STOP
MOVDH,ROW
CAR_STOPENDP
musicprocnear
ONE_m:
LEASI,MUS_FREG
LEABP,DS:
MUS_TIME
freq:
movdi,[si]
cmpdi,-1
jeENDMUS
movbx,ds:
[bp]
callsoundf
addsi,2
addbp,2
jmpfreq
ENDMUS:
musicendp
***************************************************
soundfprocnear
pushax
pushbx
pushcx
pushdx
pushdi
moval,0b6h
out43h,al
movdx,12h
movax,348ch
divdi
out42h,al
moval,ah
inal,61h
movah,al
oral,3
out61h,al
wait1:
movcx,663
callwaitf
delay:
loopdelay
decbx
jnzwait1
popdi
popdx
popcx
popbx
popax
ret
soundfendp
q0procnear
movah,2
subbh,bh
movdh,0
movdl,0
int10h
q0endp
waitfprocnear
waitf1:
andal,10h
cmpal,ah
jewaitf1
loopwaitf1
popax
ret
waitfendp
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车 车灯 控制系统 课程设计 报告 论文