微机接口课程设计—汽车车灯控制系统
更新时间:2023-09-26 15:51:01 阅读量: 综合文库 文档下载
- 微机接口课程设计心得体会推荐度:
- 相关推荐
微机原理与接口技术
课程设计
——汽车车灯控制系统
课程题目 : 汽车车灯控制系统 专业班级 : 学生姓名 : 学 号 : 指导老师 :
1
目 录
1、题目及要求: ......................................................................................................... 3
1.1题目:汽车车灯控制系统 ............................................................................ 3 1.2要求: ............................................................................................................ 3 1.3选题背景: ............................................................................................. 3 2、设计说明: ............................................................................................................. 3 3、功能设计: ............................................................................................................. 4
3.1、功能模块: ................................................................................................. 4
3.1.1 CARS属性设置--(CARS字符图形表,定义小车形状) ............... 4 3.1.2 CLEAR --(擦除小车移动前痕迹) ............................................. 5 3.1.3 DIRECTION--(键盘检测子程序) ............................................. 5 DRAW_U(判断是否上移位) ....................................................................... 5 DRAW_S(判断是否下移位) ....................................................................... 5 DRAW_L(判断是否左转位) ....................................................................... 5 DRAW_R(判断是否右转位) ....................................................................... 5 CAR PROC NEAR(画小车图形子程序) ................................................. 5 MUSIC PROC NEAR (音乐子程序) ........................................................... 5 3.2、功能图 ......................................................................................................... 6 3.3、总体结构功能 ............................................................................................. 6 4、详细设计: ............................................................................................................. 7
4.1、设计思想: ................................................................................................. 7 4.2、设计方法: ................................................................................................. 8 4.3、部分功能模块及流程图 ............................................................................. 8 4.4、部分截图: ............................................................................................... 10
左转时 ......................................................................................................... 10 右转时 ......................................................................................................... 10 刹车时 ......................................................................................................... 10 停靠时 ......................................................................................................... 11
5、总结 ....................................................................................................................... 11 6、参考文献 ............................................................................................................... 11 7、附录 ....................................................................................................................... 12
2
1、题目及要求:
1.1题目:汽车车灯控制系统 1.2要求:
1.实现停止时的指示灯; 2.实现汽车转向时指示 3.实现倒车指示
扩展功能:实现倒车的声音提示 1.3选题背景:
随着全球经济的快速发展,人们的生活水平得到了很大的提高,越来越多的人拥有
了私家车,虽然这便于人们出行,但随之而来的还有严重的交通问题。随着交通事故发生的频率逐渐升高,一些国家及发明家意识到了这个问题,仅仅依靠交通信号灯不足以维持交通秩序。于是,科学家针对发生交通事故的一系列原因,研究出了汽车车灯来解决这一系列问题。汽车车灯微机控制系统,控制的信号灯由前两灯和后两灯组成,在不同的驾驶操作控制下可驱动相对应的汽车信号灯闪烁或长亮。汽车车灯是在车辆信号时开启以提示前后左右车辆及行人注意的重要指示灯。汽车车灯的灯管采用氙气灯管,单片机控制电路,左右轮换频闪不间断工作。汽车车灯采用闪光器,实现灯光闪烁。它是表示汽车动态信息的最主要装置,安装在车身前后,在汽车转弯时开启,它为行车安全提供了保障,为了您和他人的安全,请按规定使用信号灯,使人们提前知道汽车的动向,做出正确的判断。 2、设计说明:
本次课程设计题目是汽车车灯控制系统,与本学期所学科目微机原理与接口技术密切相关;在初期设计期间,曾试图利用相关接口芯片和相应的硬件器材来实现开关电路控制车灯;在随后的几天琢磨当中,参考网上有关设计方案,发现在protues 软件当中,可以利用单片机的一些东西才实现部分功能,自己也参考一些代码完成了部分内容。
然而最后在动画小车设计系统当中得到一些灵感,可以设计小车属性,利用圈来表示车灯,利用小车沿45°行走表示转弯;在实现时遇到各种情况只需改变圈的颜色让其
3
显示即可。这样就可以只用汇编语言编程即可实现相应的左转、右转亮灯功能。
图1:程序初始化效果
在倒车时,调用以前实现过的扬声器音乐子程序就可在倒车时伴随着响音效果;这样功能就较易实现。
3、功能设计:
3.1、功能模块:
3.1.1 CARS属性设置--(CARS字符图形表,定义小车形状)
小车的坐标设计参考如下:
字符ASCII码 0DBH 表示空白框,字符ASCII码 4FH 表示圈圈;表中每四数字开始的两个表示相对前一个图形字符的坐标:(x,y) (行,列)。第三个即表示其显示的字符。最后一个数字表示此字符的颜色属性。
序号,坐标,字符,属性,
1 4 5 10 6 2 3 7 8 9 1 2 3 4 5 6 7 8 9 10
(0,0) 4FH, 3, (0,1) 4FH, 3 (1,0) 0DBH, 3, (0,-1) 0DBH, 3 (1,-1) 0DBH, 3 (0,1) 0DBH, 3 (0,1) 0DBH, 3, (0,1) 0DBH, 3 (1,0) 4FH, 3,
(0,-3) 4FH, 3,
4
图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(判断是否上移位) DRAW_S(判断是否下移位) DRAW_L(判断是否左转位) DRAW_R(判断是否右转位) CAR (画小车图形子程序)
MUSIC :(音乐子程序)音乐程序中调用唱歌子程序和延时程序,以便可以听到清楚的音乐
soundf : 唱歌子程序 waitf : 等待延时子程序
5
停靠时
图11:小车停靠
5、总结
通过本次课程设计,我深刻的明白了学习并非是一件十分容易的事情,学习是像攀
登高峰一样,必须一个台阶一个台阶的去攀岩;因为有可能因为你自以为很不起眼的细小环节,会导致很严重的后果。学习不该看成是被动的为了完成任务,那样就与我们当初来大学的初衷截然不符,更不应该有任何抱怨和应付交差的心理,因为学习毕竟就是自己的事,与其他人无干;不要说自己很笨,而是要真的明白自己不够努力。 通过多次的实践,使我深切的体会到培养动手能力的重要性,程序设计是一门实践性很强的东西,不仅要学好书本知识,那是远远不够的,还必须随时把所学知识投入实际应用之中,在此过程中多参照些相关资料,只有这样,才能达到学习的目的,才能学好一门编程语言。通过这次实践,我感觉到自己的动手能力还很欠缺,也知道了自己其他方面的不足,我想今后我一定会加强这方面的培养。
在这次实验后,我更坚定这一观点:只有非常熟悉编程语言的基础知识和基本理论,才能更顺手地编程,才能提高编程的效率,减少出现错误。其实很多错误是不该出现的,只要我们注意一些语法细节。
6、参考文献
[1] 《汇编语言程序设计》 沈美明 清华大学出版社 2001年8月第2版 [2] 《汇编语言程序设计例题习题集》 沈美明 清华大学出版社 2004年
[3] 《微型计算机计算及应用》 戴梅萼 史嘉权 著 清华大学出版社 2008年3月第4版
[4] 《微机原理上机指导》手册
11
7、附录
源代码
.MODEL SMALL 拍时间表 dataseg segment MUS_TIME DW 6 DUP(25), 50 message db 'carlamp control system!Select DW 2 DUP(25,25,50) W--up,S--down,A--left,D--right,B--stop!','$' CARS DW 10 ;字符图形表,定
义小车形状
DB 0,0,4FH,3,0,1,4FH,3 DB 1,0,0DBH,3,0,-1,0DBH,3 DB 1,-1,0DBH,3,0,1,0DBH,3 DB 0,1,0DBH,3,0,1,0DBH,3 DB 1,0,4FH,3,0,-3,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, 4 DUP(330) DW 294, 294, 330, 294, 262, -1 ;为演奏的乐曲定义一个节
DW 12 DUP(25),100 DW 6 DUP(25), 50 DW 2 DUP(25,25,50)
DW 12 DUP(25),100 dataseg ends codeseg segment assume cs:codeseg,ds:dataseg START: MOV AX,@DATA MOV DS,AX ;初始化 MOV ROW,13 ;小车的初始行坐标
MOV COLUMN,38 ;小车的初始列坐标 ;显示系统提示信息
mov ah,02h mov dx,0h int 10h LEA dx,message mov ah,09h int 21h CALL DRAW ;画小车 CALL DIRECTION ;检查是否有控制键按下? MOV AX,4C00H ;退出程序 INT 21H ; DIRECTION PROC NEAR ;键盘检测子程序 DRAW_U: MOV AH,0 ;接收键盘输入
12
INT 16H
CMP AL,57H ;向上?
JNZ DRAW_D ;没有则转移 CALL CLEAR ;清除小车 DEC ROW ;行坐标减1 CALL DRAW ;画小车 CMP ROW,1 ;小车在最上边吗? JNZ DRAW_D ;不是则转移 CALL CLEAR ;是则清除小车 MOV ROW,24 ;把小车置于最下边 DRAW_D: CMP AL,53H ;向下? JNZ DRAW_L ;没有则转移 CALL CLEAR ;清除小车 INC ROW ;行坐标加1 CALL 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 COLUMN ;列坐标减1 CALL 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 ;行坐标减1 CALL DRAW_RR ;画小车 CMP COLUMN,76 ;小车在最右边吗? JNZ DRAW_STOP ;不是则转移 CALL CLEAR ;清除小车 MOV COLUMN,0 ;把小车置于最左边 MOV ROW,24
DRAW_STOP:CMP AL,42H JNZ EXIT CALL CLEAR CALL DRAW_SS EXIT: CMP AL,20H ;空格? JNZ A1 ;没有则返回 RET ;退出
DIRECTION ENDP ;键盘子程序完
DRAW: ;画小车 MOV MODE,1 CALL CAR RET
CLEAR: ;清除小车 MOV MODE,0 CALL CAR RET
CAR PROC NEAR ;小车图形子程序 MOV DH,ROW MOV DL,COLUMN MOV CX,10 LEA DI,CARS+2
ONE: ADD DH,[DI+0] ;置光标列 ADD DL,[DI+1] ;置光标行 MOV AH,2 ;BIOS下设置光标 INT 10H MOV AL,[DI+2] ;显示字符的ASCII13
码 MOV BL,[DI+3] ;显示字符的属性 CMP MODE,0 ;MODE=1时画小车,MODE=0时清除小车 JNE SKIP MOV BL,0 SKIP: PUSH CX MOV CX,1 MOV AH,09H ;BIOS下在光标位置显示字符和属性 INT 10H POP CX ADD DI,4 LOOP ONE RET CAR ENDP
;左拐的处理 DRAW_LL: ;画小车 MOV MODE,1 CALL CAR_L RET
CAR_L PROC NEAR ;小车图形子程序 MOV DH,ROW MOV DL,COLUMN MOV CX,10
LEA DI,CARS+2
ONE_L: ADD DH,[DI+0] ;置光标行 ADD DL,[DI+1] ;置光标列 MOV AH,2 INT 10H MOV AL,[DI+2] ;显示字符的ASCII码 MOV BL,[DI+3] ;显示字符的属性 SKIP_L: PUSH CX MOV CX,1 MOV AH,09H INT 10H POP CX ADD DI,4 LOOP ONE_L
;左前灯亮 MOV DH,ROW MOV DL,COLUMN
LEA DI,CARS+2 ADD DH,[DI+0] ;置光标行 ADD DL,[DI+1] ;置光标列 MOV AH,02H INT 10H MOV AL,[DI+2] ;显示字符的ASCII码
MOV BL,4 ;显示字符的属性 MOV CX,1 MOV AH,09H INT 10H POP CX
;左后灯亮 ADD DH,3 ADD DL,-1 MOV AH,02H INT 10H MOV AL,[DI+2] ;显示字符的ASCII码 MOV BL,4 ;显示字符的属性 PUSH CX MOV CX,1 MOV AH,09H INT 10H POP CX RET
CAR_L ENDP
;右拐的处理 DRAW_RR: ;画小车 MOV MODE,1 CALL CAR_R RET
CAR_R PROC NEAR ;小车图形子程序 MOV DH,ROW MOV DL,COLUMN MOV CX,10
LEA DI,CARS+2
ONE_R: ADD DH,[DI+0] ;置光标行 ADD DL,[DI+1] ;置光标列 MOV AH,2 INT 10H MOV AL,[DI+2] ;显示字符的ASCII码 14
MOV BL,[DI+3] ;显示字符的属性 SKIP_R: PUSH CX MOV CX,1 MOV AH,09H INT 10H POP CX ADD DI,4 LOOP ONE_R
;右前灯亮 MOV DH,ROW MOV DL,COLUMN LEA DI,CARS+6 ADD DH,[DI+0] ;置光标行 ADD DL,[DI+1] ;置光标列 MOV AH,02H INT 10H MOV AL,[DI+2] ;显示字符的ASCII码
MOV BL,4 ;显示字符的属性 MOV CX,1 MOV AH,09H INT 10H POP CX ADD DH,3 ;右后灯亮 ADD DL,+1 MOV AH,02H INT 10H MOV AL,[DI+2] ;显示字符的ASCII码 MOV BL,4 ;显示字符的属性 PUSH CX MOV CX,1 MOV AH,09H INT 10H POP CX RET
CAR_R ENDP
;后退的处理 DRAW_DD: ;画小车 MOV MODE,1 CALL CAR_D
RET
CAR_D PROC NEAR ;小车图形子程序 MOV DH,ROW MOV DL,COLUMN MOV CX,10
LEA DI,CARS+2
ONE_D: ADD DH,[DI+0] ;置光标行 ADD DL,[DI+1] ;置光标列 MOV AH,2 INT 10H MOV AL,[DI+2] ;显示字符的ASCII码 MOV BL,[DI+3] ;显示字符的属性 SKIP_D: PUSH CX MOV CX,1 MOV AH,09H INT 10H POP CX ADD DI,4 LOOP ONE_D MOV DH,ROW
MOV DL,COLUMN ADD DH,3 ;左后灯亮 ADD DL,-1 MOV AH,02H INT 10H MOV AL,4FH ;显示字符的ASCII码 MOV BL,4 ;显示字符的属性 PUSH CX MOV CX,1 MOV AH,09H INT 10H POP CX
;右后灯亮 ADD DL,+3 MOV AH,02H INT 10H MOV AL,4FH ;显示字符的ASCII码 MOV BL,4 ;显示字符的属性 PUSH CX MOV CX,1 MOV AH,09H 15
INT 10H POP CX call music RET
CAR_D ENDP
DRAW_SS: ;画小车 MOV MODE,1 CALL CAR_STOP RET
CAR_STOP PROC NEAR ;小车图形子程序
MOV DH,ROW MOV DL,COLUMN MOV CX,10
LEA DI,CARS+2 ONE_STOP: ADD DH,[DI+0] ;置光标行 ADD DL,[DI+1] ;置光标列 MOV AH,2 INT 10H MOV AL,[DI+2] ;显示字符的ASCII码 MOV BL,[DI+3] ;显示字符的属性 SKIP_STOP: PUSH CX MOV CX,1 MOV AH,09H INT 10H POP CX ADD DI,4 LOOP ONE_STOP ;右前灯亮
MOV DH,ROW MOV DL,COLUMN LEA DI,CARS+6 ADD DH,[DI+0] ;置光标行 ADD DL,[DI+1] ;置光标列 MOV AH,02H INT 10H MOV AL,[DI+2] ;显示字符的ASCII码
MOV BL,4 ;显示字符的属性
MOV CX,1 MOV AH,09H INT 10H POP CX ;左前灯亮 ADD DL,-1 MOV AH,02H INT 10H MOV AL,4FH ;显示字符的ASCII码 MOV BL,4 ;显示字符的属性 PUSH CX MOV CX,1 MOV AH,09H INT 10H POP CX
;左后灯亮 MOV DH,ROW
MOV DL,COLUMN ADD DH,3 ADD DL,-1 MOV AH,02H INT 10H MOV AL,4FH ;显示字符的ASCII码 MOV BL,4 ;显示字符的属性 PUSH CX MOV CX,1 MOV AH,09H INT 10H POP CX
;右后灯亮 ADD DL,+3 MOV AH,02H INT 10H MOV AL,4FH ;显示字符的ASCII码 MOV BL,4 ;显示字符的属性 PUSH CX MOV CX,1 MOV AH,09H INT 10H POP CX
RET 16
CAR_STOP ENDP
music proc near
ONE_m:
LEA SI,MUS_FREG LEA BP,DS:MUS_TIME freq:
mov di,[si] cmp di,-1
je ENDMUS mov bx,ds:[bp] call soundf add si,2 add bp,2 jmp freq ENDMUS:
RET
music endp
;*************************************************** soundf proc near push ax push bx push cx push dx push di
mov al,0b6h;初始化定时器并不复杂,向端口43H输出数据0B6H即可 out 43h,al mov dx,12h mov ax,348ch div di out 42h,al mov al,ah out 42h,al
in al,61h ;向61H端口输出\,相当于打开定时器和开关, mov ah,al ;此时将有连续的声音发出,
or al,3 out 61h,al wait1:
mov cx,663 call waitf delay:
loop delay dec bx jnz wait1 mov al,ah out 61h,al pop di pop dx pop cx pop bx pop ax ret soundf endp
q0 proc near
mov ah,2 sub bh,bh mov dh,0 mov dl,0 int 10h ret q0 endp
waitf proc near push ax waitf1: in al,61h and al, 10h cmp al, ah je waitf1 mov ah,al loop waitf1
pop ax ret
waitf endp
;************************************ END START
17
正在阅读:
微机接口课程设计—汽车车灯控制系统09-26
铁之缘是是否存在副作用04-13
2009-2010年时间频率计量标准器具市场研究及预测报告08-27
《城市公共设施规划规范》04-14
电子CAD课程设计报告05-11
2018学年八年级物理上册 第四章 光的折射 透镜章末习题检测(提高篇)(含解析)(新版)苏科版01-02
冬雨作文300字07-04
难忘的野炊作文450字07-01
监理公司2013年质量目标及保证措施09-01
- 天大砼方案 - 图文
- 农业科技网络书屋能力提升_玉米错题选
- DNS习题
- 浅议检察官对罪犯谈话的技巧与效果
- 高考语文文言文翻译专题训练
- AB类学科竞赛目录(2015)
- 建筑面积计算新规定(2015最新)
- Revit2012初级工程师题集一
- 十三五项目米线可行性报告
- 2013体育学院党组织建设工作总结
- 2014Revit工程师题库
- 高中数学如何实施研究性学习
- 茶艺表演 中英互译
- 小学音乐湘文艺版 四年级下册 第十一课《(歌表演)脚印》优质课公
- 山西省农村合作经济承包合同管理条例
- 2015年镇江市中考化学一模试题参考答案及评分标准(定稿)
- 统计 题集
- 批评意见清单
- 8潞安集团蒲县黑龙关煤矿矿业公司2
- 鄂教版四年级语文上册复习精要(光谷四小)
- 车灯
- 微机
- 控制系统
- 接口
- 课程
- 汽车
- 设计
- pmsm3 - 1 电流采样程序的讲解
- 皂荚资源化学研究进展及其开发利用前景
- 怎样看待1957年反右派斗争
- 13款沃尔沃S60原车屏升级安装导航,S60改装倒车轨迹 - 图文
- 51号路监理细则
- 中国工程建设中级职业经理人名单
- PLC控制十字路口交通灯毕业设计论文要点
- 希望之星演讲稿3篇
- 保险消费心理与消费行为研究
- 第六章 造血系统疾病患儿的护理
- 东华软件笔试题
- 2016生活与哲学哲学主观题问法分类汇编
- 区级非遗申报表 3
- 会计从业资格考试《会计基础》题库
- surpac在露天矿山测量中的应用
- 聚类分析 - 图文
- 2015-2016学年山西省运城市康杰中学高二上学期期中物理试卷
- 预热器清堵、篦冷机打大块、清雪人安全作业管理
- 2018年秋苏教版五年级数学上册教案
- 第3章 数据结构t