




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理与接口技术课程设计汽车车灯控制系统课程题目 : 汽车车灯控制系统 专业班级 : 学生姓名 : 学 号 : 指导老师 : 目 录1、题目及要求:31.1题目:汽车车灯控制系统31.2要求:31.3选题背景: 32、设计说明:33、功能设计:43.1、功能模块:43.1.1 CARS属性设置-(CARS字符图形表,定义小车形状)43.1.2 CLEAR -(擦除小车移动前痕迹)53.1.3 DIRECTION-(键盘检测子程序)5DRAW_U(判断是否上移位)5DRAW_S(判断是否下移位)5DRAW_L(判断是否左转位)5DRAW_R(判断是否右转位)5CAR PROC NEAR(画小车
2、图形子程序)5MUSIC PROC NEAR (音乐子程序)53.2、功能图63.3、总体结构功能74、详细设计:74.1、设计思想:74.2、设计方法:84.3、部分功能模块及流程图84.4、部分截图:10左转时10右转时10刹车时10停靠时115、总结116、参考文献117、附录121、题目及要求:1.1题目:汽车车灯控制系统1.2要求:1 实现停止时的指示灯;2 实现汽车转向时指示3 实现倒车指示扩展功能:实现倒车的声音提示1.3选题背景:随着全球经济的快速发展,人们的生活水平得到了很大的提高,越来越多的人拥有了私家车,虽然这便于人们出行,但随之而来的还有严重的交通问题。随着交通事故发生
3、的频率逐渐升高,一些国家及发明家意识到了这个问题,仅仅依靠交通信号灯不足以维持交通秩序。于是,科学家针对发生交通事故的一系列原因,研究出了汽车车灯来解决这一系列问题。汽车车灯微机控制系统,控制的信号灯由前两灯和后两灯组成,在不同的驾驶操作控制下可驱动相对应的汽车信号灯闪烁或长亮。汽车车灯是在车辆信号时开启以提示前后左右车辆及行人注意的重要指示灯。汽车车灯的灯管采用氙气灯管,单片机控制电路,左右轮换频闪不间断工作。汽车车灯采用闪光器,实现灯光闪烁。它是表示汽车动态信息的最主要装置,安装在车身前后,在汽车转弯时开启,它为行车安全提供了保障,为了您和他人的安全,请按规定使用信号灯,使人们提前知道汽车
4、的动向,做出正确的判断。2、设计说明: 本次课程设计题目是汽车车灯控制系统,与本学期所学科目微机原理与接口技术密切相关;在初期设计期间,曾试图利用相关接口芯片和相应的硬件器材来实现开关电路控制车灯;在随后的几天琢磨当中,参考网上有关设计方案,发现在protues 软件当中,可以利用单片机的一些东西才实现部分功能,自己也参考一些代码完成了部分内容。然而最后在动画小车设计系统当中得到一些灵感,可以设计小车属性,利用圈来表示车灯,利用小车沿45行走表示转弯;在实现时遇到各种情况只需改变圈的颜色让其显示即可。这样就可以只用汇编语言编程即可实现相应的左转、右转亮灯功能。图1:程序初始化效果在倒车时,调用
5、以前实现过的扬声器音乐子程序就可在倒车时伴随着响音效果;这样功能就较易实现。3、功能设计:3.1、功能模块:3.1.1 CARS属性设置-(CARS字符图形表,定义小车形状)小车的坐标设计参考如下:字符ASCII码 0DBH 表示空白框,字符ASCII码 4FH 表示圈圈;表中每四数字开始的两个表示相对前一个图形字符的坐标:(x,y) (行,列)。第三个即表示其显示的字符。最后一个数字表示此字符的颜色属性。序号,坐标,字符,属性, 1(0,0) 4FH, 3, 2(0,1)4FH,3 3(1,0)0DBH,3, 4(0,-1)0DBH,3 5(1,-1)0DBH,3 6(0,1)0DBH,3
6、7(0,1)0DBH,3, 8(0,1)0DBH,3 9(1,0)4FH,3, 10(0,-3)4FH,3, 12436758109图2:小车形状 图3:小车符号表3.1.2 CLEAR -(擦除小车移动前痕迹)利用BIOS中 MOV AH,02H INT 10H 来确定光标位置和坐标定位用以擦除小车。3.1.3 DIRECTION-(键盘检测子程序)包括:W- 控制小车上移位 (调用DRAW_U) S- 控制小车下移位 (调用DRAW_S) A- 控制小车左转移位 (调用DRAW_L) D- 控制小车右转移位 (调用DRAW_R) B- 控制小车停车 (调用DRAW_SS) DRAW_U(判
7、断是否上移位) DRAW_S(判断是否下移位) DRAW_L(判断是否左转位) DRAW_R(判断是否右转位) CAR (画小车图形子程序) MUSIC :(音乐子程序)音乐程序中调用唱歌子程序和延时程序,以便可以听到清楚的音乐 soundf : 唱歌子程序 waitf : 等待延时子程序3.2、功能图BIO下置光标,设窗口小车图形坐标初始化设置小车初始化坐标小车运行开始调用direction()Y调用各个子功能运行是否W,S,A,D输入结束 开始MainN 图4:程序总体功能图3.3、总体结构功能开始设置参数 参数准备就绪调用画车程序画车型设置光标移动指针定小车起始位置坐标定车型设置车属性定
8、光标设窗体大小倒车唱歌小车倒车小车右转小车左转图5:程序总体结构4、详细设计:4.1、设计思想:整个设计过没有用到相应的接口芯片,完全是基于汇编语言实现的程序; 在整个设计过程当中所用到的设计思想来源于动画小车的设计基础,在原本的动画小车功能的基础上转化,将原本表示为车轮的圈圈另外表示为小车当中的车灯;至于小车在转弯时所要显示的相应亮灯情况,只需要当接收到相应的键盘字符时,根据具体情况调用相应的函数模块即可,然后同时在画小车当前位置时设置小车的圈圈属性,让其呈现灯亮显示结果。设计流程当中的倒车情况比较特殊,为了防止交通事故,现实情况下:常常利用倒车灯和倒车音乐一起配合使用,以便倒车安全;在该设
9、计中,为了实现相应的功能模块,就在该模块当中调用了音乐小程序;到此汽车车灯控制系统才显得功能比较完善;但不足之处就是没有利用相应的接口芯片实现,以至于对所学芯片的灵活运用显得很不到位。4.2、设计方法: 给小车一个初始位置,然后调用direction 函数,开始要判断小车的运动方向,然后根据运动方向选择相对坐标;根据键盘输入的选择,改变小车的运动方向,亮灯、倒车响音乐等属性和是否退出程序。然后调用覆盖函数,不断地擦除小车痕迹,然后再调用画小车程序,循环以上过程,直到检测到空格键退出程序。4.3、部分功能模块及流程图函数CLEAR -(擦除小车移动前痕迹) BEGIN初始化CX,DI,DH,DL
10、 小车方向 MOV CX,10 LEA DI,CARS+2 ADD DH,DI+0 ADD DL,DI+1MOV AH,2 INT 10H MODE=0图6:擦除小车痕迹函数CLEAR MOV BL,0 擦小车 RET DIRECTION-(键盘检测子程序)初始化准备就绪接收W,S,A,D,Bn是否接收到来自键盘的方向键ynDRAW_UCmp al,57h yJNZJMP NEXT DRAW_DCmp al,53h nJNZJMP NEXTyDRAW_LCmp al,41hnJNZJMP NEXTynDRAW_RCmp al,44hJNZJMP NEXTy DRAW_STOPCmp al,42
11、h 结束图7:键盘检测子程序流程图4.4、部分截图:左转时图8:小车左转右转时图9:小车右转刹车时图10:小车刹车停靠时图11:小车停靠5、总结 通过本次课程设计,我深刻的明白了学习并非是一件十分容易的事情,学习是像攀登高峰一样,必须一个台阶一个台阶的去攀岩;因为有可能因为你自以为很不起眼的细小环节,会导致很严重的后果。学习不该看成是被动的为了完成任务,那样就与我们当初来大学的初衷截然不符,更不应该有任何抱怨和应付交差的心理,因为学习毕竟就是自己的事,与其他人无干;不要说自己很笨,而是要真的明白自己不够努力。 通过多次的实践,使我深切的体会到培养动手能力的重要性,程序设计是一门实践性很强的东西
12、,不仅要学好书本知识,那是远远不够的,还必须随时把所学知识投入实际应用之中,在此过程中多参照些相关资料,只有这样,才能达到学习的目的,才能学好一门编程语言。通过这次实践,我感觉到自己的动手能力还很欠缺,也知道了自己其他方面的不足,我想今后我一定会加强这方面的培养。在这次实验后,我更坚定这一观点:只有非常熟悉编程语言的基础知识和基本理论,才能更顺手地编程,才能提高编程的效率,减少出现错误。其实很多错误是不该出现的,只要我们注意一些语法细节。6、参考文献1 汇编语言程序设计 沈美明 清华大学出版社 2001年8月第2版2 汇编语言程序设计例题习题集 沈美明 清华大学出版社 2004年 3 微型计算
13、机计算及应用 戴梅萼 史嘉权 著 清华大学出版社 2008年3月第4版4 微机原理上机指导手册 7、附录源代码17.MODEL SMALLdataseg segmentmessage db carlamp control system!Select W-up,S-down,A-left,D-right,B-stop!,$ CARS DW 10 ;字符图形表,定义小车形状DB 0,0,4FH,3,0,1,4FH,3DB 1,0,0DBH,3,0,-1,0DBH,3DB 1,-1,0DBH,3,0,1,0DBH,3DB 0,1,0DBH,3,0,1,0DBH,3DB 1,0,4FH,3,0,-3,
14、4FH,3 ROW DB ? COLUMN DB ?MODE DB ?;MODE=1时画小车,MODE=0时清除小车 ;为演奏的乐曲定义一个频率表 MUS_FREG DW 330, 294, 262, 294, 3 DUP(330) DW 3 DUP(294), 330, 392, 392 ; DW 330, 294, 262, 294, 4 DUP(330) DW 294, 294, 330, 294, 262, -1 DW 330, 294, 262, 294, 3 DUP(330) DW 3 DUP(294), 330, 392, 392 ; DW 330, 294, 262, 294,
15、 4 DUP(330) DW 294, 294, 330, 294, 262, -1 ;为演奏的乐曲定义一个节拍时间表 MUS_TIME DW 6 DUP(25), 50 DW 2 DUP(25,25,50) DW 12 DUP(25),100 DW 6 DUP(25), 50 DW 2 DUP(25,25,50) DW 12 DUP(25),100 dataseg endscodeseg segment assume cs:codeseg,ds:dataseg START:MOV AX,DATA MOV DS,AX ;初始化 MOV ROW,13 ;小车的初始行坐标 MOV COLUMN,3
16、8;小车的初始列坐标 ;显示系统提示信息mov ah,02hmov dx,0hint 10h LEA dx,messagemov ah,09h int 21h CALL DRAW;画小车CALL DIRECTION;检查是否有控制键按下? MOV AX,4C00H;退出程序 INT 21H;DIRECTION PROC NEAR;键盘检测子程序 DRAW_U:MOV AH,0;接收键盘输入 INT 16H CMP AL,57H;向上? JNZ DRAW_D;没有则转移CALL CLEAR;清除小车 DEC ROW;行坐标减1CALL DRAW;画小车CMP ROW,1 ;小车在最上边吗?JNZ
17、 DRAW_D;不是则转移CALL CLEAR;是则清除小车MOV ROW,24;把小车置于最下边 DRAW_D:CMP AL,53H;向下? JNZ DRAW_L;没有则转移CALL CLEAR;清除小车 INC ROW;行坐标加1CALL DRAW_DD;画小车CMP ROW,24;小车在最下边吗?JNZ DRAW_L;不是则转移CALL CLEAR;清除小车MOV ROW,1;把小车置于最上边jmp DRAW_L A1:jmp DRAW_U DRAW_L:CMP AL,41H;向左? JNZ DRAW_R;没有则转移CALL CLEAR;清除小车 DEC ROW;行坐标减1 DEC CO
18、LUMN;列坐标减1CALL DRAW_LL;画小车CMP COLUMN,0;小车在最左边吗?JNZ DRAW_R;不是则转移CALL CLEAR;清除小车MOV COLUMN,76;把小车置于最右边MOV ROW,24 DRAW_R:CMP AL,44H ;向右? JNZ DRAW_STOP;没有则转移CALL CLEAR;清除小车 INC COLUMN ;列坐标加1 DEC ROW ;行坐标减1CALL DRAW_RR;画小车CMP COLUMN,76;小车在最右边吗?JNZ DRAW_STOP;不是则转移CALL CLEAR;清除小车MOV COLUMN,0;把小车置于最左边MOV RO
19、W,24DRAW_STOP:CMP AL,42H JNZ EXIT CALL CLEAR CALL DRAW_SS EXIT:CMP AL,20H;空格?JNZ A1 ;没有则返回RET;退出DIRECTION ENDP ;键盘子程序完 DRAW: ;画小车MOV MODE,1CALL CARRETCLEAR:;清除小车MOV MODE,0CALL CARRETCAR PROC NEAR;小车图形子程序 MOV DH,ROW MOV DL,COLUMN MOV CX,10 LEA DI,CARS+2ONE: ADD DH,DI+0;置光标列ADD DL,DI+1;置光标行MOV AH,2 ;B
20、IOS下设置光标INT 10HMOV AL,DI+2;显示字符的ASCII码MOV BL,DI+3;显示字符的属性CMP MODE,0;MODE=1时画小车,MODE=0时清除小车JNE SKIPMOV BL,0SKIP:PUSH CXMOV CX,1MOV AH,09H ;BIOS下在光标位置显示字符和属性INT 10HPOP CXADD DI,4LOOP ONERETCAR ENDP;左拐的处理DRAW_LL: ;画小车MOV MODE,1CALL CAR_LRETCAR_L PROC NEAR;小车图形子程序 MOV DH,ROW MOV DL,COLUMN MOV CX,10 LEA
21、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_L ;左前灯亮 MOV DH,ROW MOV DL,COLUMNLEA DI,CARS+2ADD DH,DI+0;置光标行ADD DL,DI+1;置光标列MOV AH,02HINT 10HMOV AL,DI+2;显示字符的ASCII码 MOV BL,4;显示字符的属
22、性MOV CX,1MOV AH,09HINT 10HPOP CX ;左后灯亮 ADD DH,3 ADD DL,-1MOV AH,02HINT 10HMOV AL,DI+2;显示字符的ASCII码MOV BL,4;显示字符的属性PUSH CXMOV CX,1MOV AH,09HINT 10HPOP CX RETCAR_L ENDP;右拐的处理DRAW_RR: ;画小车MOV MODE,1CALL CAR_RRETCAR_R PROC NEAR;小车图形子程序 MOV DH,ROW MOV DL,COLUMN MOV CX,10 LEA DI,CARS+2ONE_R: ADD DH,DI+0;置光
23、标行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 DI,4LOOP ONE_R ;右前灯亮 MOV DH,ROW MOV DL,COLUMNLEA DI,CARS+6ADD DH,DI+0;置光标行ADD DL,DI+1;置光标列MOV AH,02HINT 10HMOV AL,DI+2;显示字符的ASCII码 MOV BL,4;显示字符的属性MOV CX,1MOV AH,09HINT 10HPOP
24、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,1CALL CAR_DRETCAR_D PROC NEAR;小车图形子程序 MOV DH,ROW MOV DL,COLUMN MOV CX,10 LEA DI,CARS+2ONE_D: ADD DH,DI+0;置光标行ADD DL,DI+1;置光标列MOV AH,2INT 10H
25、MOV AL,DI+2;显示字符的ASCII码MOV BL,DI+3;显示字符的属性SKIP_D:PUSH CXMOV CX,1MOV AH,09HINT 10HPOP CXADD DI,4LOOP ONE_DMOV DH,ROW MOV DL,COLUMN ADD DH,3;左后灯亮 ADD DL,-1MOV AH,02HINT 10HMOV AL,4FH;显示字符的ASCII码MOV BL,4;显示字符的属性PUSH CXMOV CX,1MOV AH,09HINT 10HPOP CX ;右后灯亮 ADD DL,+3MOV AH,02HINT 10HMOV AL,4FH;显示字符的ASCII
26、码MOV BL,4;显示字符的属性PUSH CXMOV CX,1MOV AH,09HINT 10HPOP CXcall music RETCAR_D ENDPDRAW_SS: ;画小车MOV MODE,1CALL CAR_STOPRETCAR_STOP PROC NEAR;小车图形子程序 MOV DH,ROW MOV DL,COLUMN MOV CX,10 LEA DI,CARS+2ONE_STOP: ADD DH,DI+0;置光标行ADD DL,DI+1 ;置光标列MOV AH,2INT 10HMOV AL,DI+2;显示字符的ASCII码MOV BL,DI+3;显示字符的属性SKIP_ST
27、OP:PUSH CXMOV CX,1MOV AH,09HINT 10HPOP CXADD DI,4LOOP ONE_STOP ;右前灯亮 MOV DH,ROW MOV DL,COLUMNLEA DI,CARS+6ADD DH,DI+0;置光标行ADD DL,DI+1;置光标列MOV AH,02HINT 10HMOV AL,DI+2;显示字符的ASCII码 MOV BL,4;显示字符的属性MOV 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 CX ;左后灯亮MOV DH,ROW MOV DL,COLUMN ADD DH,3 ADD DL,-1MOV AH,02HINT 10HMOV AL,4FH;显示字符的ASCII码MOV BL,4;显
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司入股合同协议书图片
- 小动物疾病学
- 体检服务合同协议书范本
- 中医美容馆商业计划书
- 房子解除合同协议书
- 请育儿嫂阿姨合同协议书
- 猪常见传染病的诊断与治疗
- 2025年中国橡胶填充油项目商业计划书
- 室内油漆施工合同协议书
- 装修合同协议书模板大全
- 销售总监月工作总结
- 《紧固件 钢制紧固件氢脆基本原理》知识培训
- 餐饮企业财务流程解析
- 担保责任转移协议书(2篇)
- 供电公司新闻宣传工作培训
- 大学美育知到智慧树章节测试课后答案2024年秋德州学院
- DB37T-九小场所消防安全管理要求
- 【MOOC】中国近现代史纲要-浙江大学 中国大学慕课MOOC答案
- 【MOOC】兽医外科手术学-华中农业大学 中国大学慕课MOOC答案
- 数控机床装调维修工(技师)职业技能鉴定理论考试题库(含答案)
- 金蝶云星空应用开发初级认证
评论
0/150
提交评论