汽车车灯控制系统课程设计报告毕设论文.docx

上传人:b****6 文档编号:4067264 上传时间:2022-11-27 格式:DOCX 页数:25 大小:123.43KB
下载 相关 举报
汽车车灯控制系统课程设计报告毕设论文.docx_第1页
第1页 / 共25页
汽车车灯控制系统课程设计报告毕设论文.docx_第2页
第2页 / 共25页
汽车车灯控制系统课程设计报告毕设论文.docx_第3页
第3页 / 共25页
汽车车灯控制系统课程设计报告毕设论文.docx_第4页
第4页 / 共25页
汽车车灯控制系统课程设计报告毕设论文.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

汽车车灯控制系统课程设计报告毕设论文.docx

《汽车车灯控制系统课程设计报告毕设论文.docx》由会员分享,可在线阅读,更多相关《汽车车灯控制系统课程设计报告毕设论文.docx(25页珍藏版)》请在冰豆网上搜索。

汽车车灯控制系统课程设计报告毕设论文.docx

汽车车灯控制系统课程设计报告毕设论文

 

信息科学与技术学院

微机原理与接口技术

课程设计报告

 

题目名称:

汽车车灯控制系统

学生姓名:

吴权权

学号:

2009082190

专业年级:

计科09-1班

指导教师:

裘祖旗

时间:

2012-1-12

 

目录

1.题目及要求1

1.1题目1

1.2要求1

2.功能设计1

2.1汽车图形1

2.2汽车左转1

2.3汽车右转1

2.4汽车前进1

2.5汽车倒退1

2.6汽车停止1

2.7响铃模块1

3.主流程图2

4.详细设计3

4.1汽车图形显示3

3.2汽车停止、转向、倒车的指示3

5.结果显示4

5.总结7

6、程序代码8

 

1.题目及要求

1.1题目

汽车车灯控制系统

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

No

YesRET

No

Yes

RET

No

Yes

RET

No

YesRET

No

非定义字符RET

Yes

 

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

dw10,20,20,20,20,100

.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

CALLDRAW;画小车

CMPROW,1;小车在最上边吗?

JNZDRAW_D;不是则转移

CALLCLEAR;是则清除小车

MOVROW,24;把小车置于最下边

DRAW_D:

CMPAL,53H;向下?

JNZDRAW_L;没有则转移

CALLCLEAR;清除小车

INCROW;行坐标加1

CALLDRAW_DD;画小车

CMPROW,24;小车在最下边吗?

JNZDRAW_L;不是则转移

CALLCLEAR;清除小车

MOVROW,1;把小车置于最上边

jmpDRAW_L

A1:

jmpDRAW_U

DRAW_L:

CMPAL,41H;向左?

JNZDRAW_R;没有则转移

CALLCLEAR;清除小车

DECROW;行坐标减1

DECCOLUMN;列坐标减1

CALLDRAW_LL;画小车

CMPCOLUMN,0;小车在最左边吗?

JNZDRAW_R;不是则转移

CALLCLEAR;清除小车

MOVCOLUMN,76;把小车置于最右边

MOVROW,24

DRAW_R:

CMPAL,44H;向右?

JNZDRAW_STOP;没有则转移

CALLCLEAR;清除小车

INCCOLUMN;列坐标加1

DECROW;行坐标减1

CALLDRAW_RR;画小车

CMPCOLUMN,76;小车在最右边吗?

JNZDRAW_STOP;不是则转移

CALLCLEAR;清除小车

MOVCOLUMN,0;把小车置于最左边

MOVROW,24

DRAW_STOP:

CMPAL,42H

JNZEXIT

CALLCLEAR

CALLDRAW_SS

EXIT:

CMPAL,20H;空格?

JNZA1;没有则返回

RET;退出

DIRECTIONENDP

DRAW:

;画小车

MOVMODE,1

CALLCAR

RET

CLEAR:

;清除小车

MOVMODE,0

CALLCAR

RET

 

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;MODE=1时画小车,MODE=0时清除小车

JNESKIP

MOVBL,0

SKIP:

PUSHCX

MOVCX,1

MOVAH,09H

INT10H

POPCX

ADDDI,4

LOOPONE

RET

CARENDP

;左拐的处理

DRAW_LL:

;画小车

MOVMODE,1

CALLCAR_L

RET

CAR_LPROCNEAR;小车图形子程序

MOVDH,ROW

MOVDL,COLUMN

MOVCX,10

LEADI,CARS+2

ONE_L:

ADDDH,[DI+0];置光标行

ADDDL,[DI+1];置光标列

MOVAH,2

INT10H

MOVAL,[DI+2];显示字符的ASCII码

MOVBL,[DI+3];显示字符的属性

SKIP_L:

PUSHCX

MOVCX,1

MOVAH,09H

INT10H

POPCX

ADDDI,4

LOOPONE_L

MOVDH,ROW;左前灯亮

MOVDL,COLUMN

LEADI,CARS+2

ADDDH,[DI+0];置光标行

ADDDL,[DI+1];置光标列

MOVAH,02H

INT10H

MOVAL,[DI+2];显示字符的ASCII码

MOVBL,4;显示字符的属性

MOVCX,1

MOVAH,09H

INT10H

POPCX

ADDDH,3;左后灯亮

ADDDL,-1

MOVAH,02H

INT10H

MOVAL,[DI+2];显示字符的ASCII码

MOVBL,4;显示字符的属性

PUSHCX

MOVCX,1

MOVAH,09H

INT10H

POPCX

RET

CAR_LENDP

;右拐的处理

DRAW_RR:

;画小车

MOVMODE,1

CALLCAR_R

RET

CAR_RPROCNEAR;小车图形子程序

MOVDH,ROW

MOVDL,COLUMN

MOVCX,10

LEADI,CARS+2

ONE_R:

ADDDH,[DI+0];置光标行

ADDDL,[DI+1];置光标列

MOVAH,2

INT10H

MOVAL,[DI+2];显示字符的ASCII码

MOVBL,[DI+3];显示字符的属性

SKIP_R:

PUSHCX

MOVCX,1

MOVAH,09H

INT10H

POPCX

ADDDI,4

LOOPONE_R

;右前灯亮

MOVDH,ROW

MOVDL,COLUMN

LEADI,CARS+6

ADDDH,[DI+0];置光标行

ADDDL,[DI+1];置光标列

MOVAH,02H

INT10H

MOVAL,[DI+2];显示字符的ASCII码

MOVBL,4;显示字符的属性

MOVCX,1

MOVAH,09H

INT10H

POPCX

ADDDH,3;左后灯亮

ADDDL,+1

MOVAH,02H

INT10H

MOVAL,[DI+2];显示字符的ASCII码

MOVBL,4;显示字符的属性

PUSHCX

MOVCX,1

MOVAH,09H

INT10H

POPCX

RET

CAR_RENDP

;后退的处理

DRAW_DD:

;画小车

MOVMODE,1

CALLCAR_D

RET

CAR_DPROCNEAR;小车图形子程序

MOVDH,ROW

MOVDL,COLUMN

MOVCX,10

LEADI,CARS+2

ONE_D:

ADDDH,[DI+0];置光标行

ADDDL,[DI+1];置光标列

MOVAH,2

INT10H

MOVAL,[DI+2];显示字符的ASCII码

MOVBL,[DI+3];显示字符的属性

SKIP_D:

PUSHCX

MOVCX,1

MOVAH,09H

INT10H

POPCX

ADDDI,4

LOOPONE_D

MOVDH,ROW

MOVDL,COLUMN

ADDDH,3;左后灯亮

ADDDL,-1

MOVAH,02H

INT10H

MOVAL,4FH;显示字符的ASCII码

MOVBL,4;显示字符的属性

PUSHCX

MOVCX,1

MOVAH,09H

INT10H

POPCX

;右后灯亮

ADDDL,+3

MOVAH,02H

INT10H

MOVAL,4FH;显示字符的ASCII码

MOVBL,4;显示字符的属性

PUSHCX

MOVCX,1

MOVAH,09H

INT10H

POPCX

callmusic

RET

CAR_DENDP

 

DRAW_SS:

;画小车

MOVMODE,1

CALLCAR_STOP

RET

CAR_STOPPROCNEAR;小车图形子程序

MOVDH,ROW

MOVDL,COLUMN

MOVCX,10

LEADI,CARS+2

ONE_STOP:

ADDDH,[DI+0];置光标行

ADDDL,[DI+1];置光标列

MOVAH,2

INT10H

MOVAL,[DI+2];显示字符的ASCII码

MOVBL,[DI+3];显示字符的属性

SKIP_STOP:

PUSHCX

MOVCX,1

MOVAH,09H

INT10H

POPCX

ADDDI,4

LOOPONE_STOP

;右前灯亮

MOVDH,ROW

MOVDL,COLUMN

LEADI,CARS+6

ADDDH,[DI+0];置光标行

ADDDL,[DI+1];置光标列

MOVAH,02H

INT10H

MOVAL,[DI+2];显示字符的ASCII码

MOVBL,4;显示字符的属性

MOVCX,1

MOVAH,09H

INT10H

POPCX

;左前灯亮

ADDDL,-1

MOVAH,02H

INT10H

MOVAL,4FH;显示字符的ASCII码

MOVBL,4;显示字符的属性

PUSHCX

MOVCX,1

MOVAH,09H

INT10H

POPCX

MOVDH,ROW

MOVDL,COLUMN

ADDDH,3;左后灯亮

ADDDL,-1

MOVAH,02H

INT10H

MOVAL,4FH;显示字符的ASCII码

MOVBL,4;显示字符的属性

PUSHCX

MOVCX,1

MOVAH,09H

INT10H

POPCX

;右后灯亮

ADDDL,+3

MOVAH,02H

INT10H

MOVAL,4FH;显示字符的ASCII码

MOVBL,4;显示字符的属性

PUSHCX

MOVCX,1

MOVAH,09H

INT10H

POPCX

RET

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:

RET

musicendp

;***************************************************

soundfprocnear

pushax

pushbx

pushcx

pushdx

pushdi

moval,0b6h

out43h,al

movdx,12h

movax,348ch

divdi

out42h,al

moval,ah

out42h,al

inal,61h

movah,al

oral,3

out61h,al

wait1:

movcx,663

callwaitf

delay:

loopdelay

decbx

jnzwait1

moval,ah

out61h,al

popdi

popdx

popcx

popbx

popax

ret

soundfendp

 

q0procnear

movah,2

subbh,bh

movdh,0

movdl,0

int10h

ret

q0endp

waitfprocnear

pushax

waitf1:

inal,61h

andal,10h

cmpal,ah

jewaitf1

movah,al

loopwaitf1

popax

ret

waitfendp

;***************************************************

 

ENDSTART

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1