版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学号091401117 微型计算机原理与接口技术课 程 设 计( 2009级本科)题 目: 汽车信号灯系统的控制 系(部)院: 物理与机电工程学院 专 业: 电气工程及其自动化 作者姓名: 任 峰 指导教师: 张静 职称: 副教授 完成日期: 2012 年 7 月 2 日课程设计任务书学生姓名任峰学号091401117专业方向电气工程及其自动化班级09(1)班题目名称 汽车信号灯系统控制1、 设计内容及技术要求: 1.以8086cpu为核心、并行接口芯片8255a、4个逻辑电平开关和六个发光二极管设计一汽车信号灯控制系统2.该系统通过开关控制的信号灯有仪表板左转弯灯、右转弯灯、暂停灯、刹车灯共
2、四类灯.3.该系统只有在开关闭合即有信号输入时才有效果。二、课程设计说明书撰写要求:1.选用8086/8088cpu和适当的储存储器芯片、接口芯片完成相应的功能。 2.用汇编语言编写程序实现应用程序的功能,并添加适当注释。3.设计子程序及源程序。4.给出程序设计思路、画出各程序适当的流程图。5.给出所有程序清单并加上必要注释。 6.完成设计说明书(包括封面、目录、设计任务书、设计思路、硬件设计图、程序流程框图、程序清单、所用器件型号、总结体会、参考文献等)。三、设计进度课程设计总学时为2周,采用分散与集中的形式实施。第1周的课程设计工作采用分散的形式进行,在学期的期中下发题目,学生利用课余时间
3、完成设计工作。第2周采用集中的形式进行,主要完成题目的实验室调试、课程设计报告撰写和答辩工作。课程设计以实验调试、撰写课程设计报告和答辩三种形式,通过设计考核和成绩评定。设计题目每2-4人一组,具体安排为:l. 课程设计题目在开课学期的第710周期间下发给学生,学生在分组后利用课余时间完成设计工作,指导教师利用课余时间进行数次辅导。2. 集中调试的一周时间中,前两天时间完成软硬件调试工作,后两天时间完成编写课程设计报告的工作,最后一天安排设计答辩及成绩评定工作。 摘 要本课题设计以我系现有的硬件教学资源为基础,以我们平时做微型计算机实验所用的“tpc-h微机接口实验系统”为开发平台,意在设计、
4、实现一个汽车信号灯模拟控制系统。该汽车信号灯模拟控制系统通过利用实验室中装有td-dos操作系统的pc机及实验系统上的主要控制芯片8255a、电平开关和发光二极管实来模拟实现。通过我们小组所有成员的共同努力,该汽车信号灯控制系统已在实验室成功实现预期功能模拟。关键词汽车信号灯 8255a 8086 端口目 录一.前言21.1 设计背景21.2系统设计目的21.3设计任务与要求2二总体方案设计分析、讨论22.1 总体方案设计分析22.1.1 问题描述分析22.1.2 问题的解决方案分析32.2 系统的主要功能3三.详细设计53.1 硬件设计53.1.1 芯片选择53.1.2 系统电路图63.1.
5、3 电路图说明分析63.2 软件设计63.2.1 程序流程图73.2.2 程序设计源代码与注释8四.系统调试与实现124.1 实验步骤124.2 调试结果与分析124.3、设计模拟电路仿真14五.总结145.1 课程设计小结145.2 课程设计体会15致谢15微机原理与接口技术课程设计成绩评定表18一.前言1.1 设计背景汽车信号灯的作用是大家所熟知的,汽车通过显示不同的信号灯来告诉前后左右的行车者本汽车正在进行的操作。信号灯灯具的发展是随着汽车制造技术及电光源技术的发展而逐步完善的。它经历了机油(或煤油)灯、乙炔气灯到电光源灯的发展历程。现代汽车信号灯灯具已经开始使用发光二极管(led)技术
6、以及光导技术,这是信号灯灯具的一次飞跃。1.2系统设计目的1、了解汽车信号灯的控制原理。2、掌握8086cpu和并行接口芯片8255a逻辑功能及使用方法。3、掌握一定的汇编语言知识,培养自己的动手操作能力。4、学习程序设计的基本思路和方法。1.3设计任务与要求 1.以8086cpu为核心、并行接口芯片8255a、4个逻辑电平开关和六个发光二极管设计一汽车信号灯控制系统2.该系统通过开关控制的信号灯有汽车左转、汽车右转、汽车出现紧急状况、汽车刹车、汽车停靠等十类灯.3. 该系统只有在开关闭合即有信号输入时才有效果。二总体方案设计分析、讨论2.1 总体方案设计分析2.1.1 问题描述分析问题描述分
7、析: 汽车行驶时一共有五种状况: 汽车左转 汽车右转 汽车出现紧急状况 汽车刹车 汽车停靠 在进行课程设计时,可以考虑到10种组合模式如下: 输入状态 输出状态 左转 左头灯,左尾灯,仪表左灯亮 右转 右头灯,右尾灯,仪表右灯亮 紧急 左右头灯,左右尾灯,仪表左右灯同时闪烁 刹车 左右尾灯亮 左转+刹车 左头灯,左尾灯,仪表左灯亮 右转+刹车 右头灯,右尾灯,仪表右灯亮 刹车+紧急 左右头灯,左右尾灯,仪表左右灯同时亮 左转+刹车+紧急 左右头灯,左右尾灯,仪表左右灯同时亮 右转+刹车+紧急 左右头灯,左右尾灯,仪表左右灯同时亮 停靠 左右头灯,左右尾灯同时闪烁 2.1.2 问题的解决方案分析
8、通过对以上问题描述的深入分析,可总结出以下三点:(1)通过6个发光二级管模拟两个头灯、两个尾灯和仪表盘上的两个指示灯。(2)利用4个开关可产生的16种情况的前10种组合来分别模拟左转、右转、紧急,刹车,停靠的状态,使发光二极管信号灯相应亮、灭或闪烁。(3)通过程序或者定时/计数器控制灯的闪烁频率。考虑到程序设计比较简便,所以本次课程设计一旦涉及到信号灯的闪烁,都为程序控制。 在对任务需求进行详细分析以后,我们小组决定主要控制芯片采用实验箱上的8255a,由于本次设计中对信号灯闪烁的频率并没有严格的要求,所以就没必要采用8253来进行定时,当然,在本系统中加入8253也不是件难事,不过小组在综合
9、考虑以及对任务进行详细分析和讨论后,决定节省硬件资源放弃使用8253,用程序来进行定时。2.2 系统的主要功能(1) 当用户置开关状态为01h时,也即左转,表左转开关闭合,则仪表左灯、左头灯、左尾灯同时亮,其他灯灭。(2) 当用户置开关状态为02h时,也即右转,表右转开关闭合,则仪表右灯、右头灯、右尾灯同时亮,其他灯灭。(3) 当用户置开关状态为03h时,表紧急开关闭合,也即出现紧急状态时,则所有灯闪烁。(4) 当用户置开关状态为04h时, 表踩刹车(合上刹车开关),则左尾灯、右尾灯亮,其它灯灭。 (5) 当用户置开关状态为05h时,表示汽车左转刹车,则仪表左灯、左头灯、左尾灯同时亮,其它灯灭
10、。(6) 当用户置开关状态为06h时,表示汽车右转刹车,则仪表右灯、右头灯、右尾灯同时亮,其它灯灭。(7) 当用户置开关状态为07h时,表示汽车此时处于紧急刹车状态,则全部指示灯亮。(8) 当用户置开关状态为08h时,表示汽车此时处于左转紧急刹车状态,则全部指示灯亮。(9) 当用户置开关状态为09h时,表示汽车此时处于右转紧急刹车状态,则全部指示灯亮。(10) 当用户置开关状态为0ah时,表示汽车此时在停靠,则仪表左右灯灭,左右头灯亮,左右尾灯闪烁。所以,可以设置实验箱上的6个发光二极管的对应情况为: l0:右尾灯 l1:左尾灯 l2:右头灯 l3:左头灯 l4:仪表右灯 l5:仪表左灯通过4
11、个开关(k0、k1、k2、k3的组合)产生的16种情况的前10种来作为输入选择,影响6个指示灯的输出,对应关系如下表: 灯状态开关状态仪表左灯(l5)仪表右灯(l4)左头灯(l3)右头灯(l2)左尾灯(l1)右尾灯(l0)1左转(01h)亮灭亮灭亮灭2右转(02h)灭亮灭亮灭亮3紧急(03h)闪闪闪闪闪闪4刹车(04h)灭灭灭灭亮亮5左转+刹车(05h)亮灭亮灭亮灭6右转+刹车(06h)灭亮灭亮灭亮7刹车+紧急(07h)亮亮亮亮亮亮8左转+刹车+紧急(08h)亮亮亮亮亮亮9右转+刹车+紧急(09h)亮亮亮亮亮亮10停靠(0ah)灭灭亮亮闪闪表1 开关状态与灯状态对应表三.详细设计3.1 硬件设
12、计3.1.1 芯片选择根据课题所要实现的功能,结合所学的知识进行分析,系统要用到8086微处理器芯片和可编程的并行接口芯片8255a。8086是intel系列的16位微处理器,它有16根数据线和20根地址线,本系统采用它作为处理器。8255是可编程io口扩展芯片。对8255输入不同的指令可改变io口的工作方式。8255内部有4个寄存器:分别为寄存器a、b、c和控制寄存器。a、b、c寄存器的数据就是引脚pa7pa0、pb7pb0、pc7pc0上输入或输出的数据。而控制寄存器的数据则表明pa、pb、pc的工作方式。通过cs、a0、a1、rd和wr对4个寄存器进行操作。(1)cs为低电平时选通825
13、5;(2)a1、a0为地址选通;(3)rd和wr为读、写信号:rd为低、wr为高时为读方式,rd为高、wr为低时为写方式。(4)d0d7为数据口。 向控制寄存器写入不同的数据可以使8255工作在三种不同的方式下。 8086最小工作模式系统结构图3.1.2 系统电路图图3 系统电路图3.1.3 电路图说明分析 1.8255的cs端接实验室中tpc-h实验系统的i/o地址译码电路地址为288h28fh的接口,从而达到选通控制。2.data与8086/8088数据总线的低八位相连接,rd与ior相连接,wr与iow相连接,将8086/8088的地址线a1,a2与8255的a0,a1连接起来。3.82
14、55的pa端口用于输出,与发光二极管相连接,用于控制灯的闪烁效果,pc端口用于输入,用其低五位做为输入控制,对于8255的pb端口则为空闲状态。 4. l0(右尾灯)、l1(左尾灯)、l2(右头灯) l3(左头灯) l4(仪表右灯)、 l5(仪表左灯)3.2 软件设计3.2.1 程序流程图图4 系统总程序流程图3.2.2 程序设计源代码与注释data segment ;数据段ctr db enter c key to continue!,0ah,0dh ;程序初始提示信息 db enter other keys to exit to dos!,0ah,0dh,$ctr01 db 1. zuo
15、zhuan wan.,0ah,0dh,$ ;左转弯时提示信息(以下类似)ctr02 db 2. you zhuan wan.,0ah,0dh,$ctr03 db 3. jin ji kai guan he shang.,0ah,0dh,$ctr04 db 4. sha che.,0ah,0dh,$ctr05 db 5. zuo zhuan wan sha che.,0ah,0dh,$ctr06 db 6. you zhuan wan sha che.,0ah,0dh,$ctr07 db 7. jin ji sha che.,0ah,0dh,$ctr08 db 8. jin ji zuo zhu
16、an sha che.,0ah,0dh,$ctr09 db 9. jin ji you zhuan sha che.,0ah,0dh,$ctr10 db 10. ting kao.,0ah,0dh,$data endsstack segment stack ;堆栈段sta dw 50 dup(?)stack endscode segment ;代码段 assume cs:code,ds:data,es:data,ss:stackstart: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,axccc: mov dx,offset c
17、tr ;显示提示信息 mov ah,09h int 21h mov ah,01h int 21h cmp al,c ;若输入c,则继续执行,否则返回到dos jz eee mov ax,4c00h int 21h eee: mov dx,0ff03h ;给8255a送入方式控制字89h 设置为a口输出,c口输入(因为实验箱上没b口) mov al,89h out dx,al mov dx,0ff02h ;将4个开关的状态送入al in al,dx mov cx,0020h ;设置循环次数bb1: cmp al,01h ;将al的值依次与01h到0ah比较 jnz bb2 ;不是01h则转bb1
18、执行,是则调用中断在屏幕上显示应提示信息,顺序执行下去 mov dx,offset ctr01;左转弯状态,实现六盏灯状态为:闪、灭、闪、灭、闪、灭 mov ah,09h int 21h ;调用09号中断,在屏幕上显示现在正处于左转弯状态 mov dx,off00hleft: mov al,11101010b ;六盏灯状态为:亮、灭、亮、灭、亮、灭(最高两位没影响) out dx,al call delay0 ;调延时子程序 loop left jmp cccbb2: cmp al,02h jnz bb3 mov dx,offset ctr02;右转弯状态,实现六盏灯状态为:灭、亮、灭、亮、灭
19、、亮 mov ah,09h int 21h mov dx,0ff00hright: mov al,11010101b ;六盏灯状态为:灭、亮、灭、亮、灭、亮 out dx,al call delay0 loop right jmp cccbb3: cmp al,03h jnz bb4 mov dx,offset ctr03 ;紧急开关合上 mov ah,09h int 21h mov dx,0ff00hhurry: mov al,11000000b ;六盏灯状态为:闪、闪、闪、闪、闪、闪 out dx,al call delay0 mov al,11111111b out dx,al call
20、 delay0 loop hurry jmp cccbb4: cmp al,04h jnz bb5 mov dx,offset ctr04 ;刹车 mov ah,09h int 21h mov dx,0ff00hbreak: mov al,11000011b ;六盏灯状态为:灭、灭、灭、灭、亮、亮 out dx,al call delay0 loop break jmp cccbb5: cmp al,05h jnz bb6 mov dx,offset ctr05 ;左转弯刹车 mov ah,09h int 21h mov dx,0ff00hleftbreak: mov al,11001010b
21、 ;六盏灯状态为:亮、灭、亮、灭、亮、灭 out dx,al call delay0 loop leftbreak jmp cccbb6: cmp al,06h jnz bb7 mov dx,offset ctr06 ;右转弯刹车 mov ah,09h int 21h mov dx,0ff00hrightbreak: mov al,11000101b ;六盏灯状态为:灭、亮、灭、亮、灭、亮 out dx,al call delay0 loop rightbreak jmp cccbb7: cmp al,07h jnz bb8 mov dx,offset ctr07 ;紧急刹车 mov ah,0
22、9h int 21h mov dx,0ff00hhurrybreak: mov al,11111111b ;六盏灯状态为:亮、亮、亮、亮、亮、亮 out dx,al call delay0 loop hurrybreak jmp cccbb8: cmp al,08h jnz bb9 mov dx,offset ctr08 ;紧急左转刹车 mov ah,09h int 21h mov dx,0ff00hhurryleftbreak: mov al,11111111b ;六盏灯状态为:亮、亮、亮、亮、亮、亮 out dx,al call delay0 mov al,11011111b out dx
23、,al call delay0 loop hurryleftbreak jmp cccbb9: cmp al,09h jnz bb10 mov dx,offset ctr09 ;紧急右转刹车 mov ah,09h int 21h mov dx,0ff00hhurryrightbreak: mov al,11111111b ;六盏灯状态为:亮、亮、亮、亮、亮、亮 out dx,al call delay0 mov al,11101111b out dx,al call delay0 loop hurryrightbreak jmp cccbb10: cmp al,0ah jnz bb11 mov
24、 dx,offset ctr10 ;停靠 mov ah,09h int 21h mov dx,0ff00hstop: mov al,11001100b ;六盏灯状态为:灭、灭、亮、亮、闪、闪 out dx,al call delay0 mov al,11001111b out dx,al call delay0 loop stop jmp ccc bb11: jmp ccc ret delay proc near ;延时子程序 push cx mov cx,0ffffhpp: loop pp pop cx retdelay endpdelay0 proc near ;延时子程序 push cx
25、 push ax mov cx,0080hpp0: call delay loop pp0 pop ax pop cx retdelay0 endpcode ends end start四.系统调试与实现4.1 实验步骤(1) 准备好pc机、实验箱和导线若干。(2) 用导线按照事先画好的实验电路图将以上各个实验电路模块连接起来,就是硬件控制的汽车信号灯控制系统。(3) 在dos下编写汇编程序代码。(4) 汇编调试、运行。(5) 记录运行结果,以及调试中遇到的问题。4.2 调试结果与分析4.2.1上机调试和运行结果第一步:编辑源程序:即建立.asm文件。第二步:汇编源程序。源文件建立后,要用汇编
26、程序对源文件进行汇编,以便产生二进制的目标文件(.obj文件)。本程序用masm.exe编译界面如图10示。图 10 用masm.exe编译界面第三步;用link程序产生.exe文件。汇编程序已产生出二进制的代码文件(.obj),但.obj文件并不是可执行文件,还必须使用(link)把.obj文件转换为可执行的.exe文件。用link.exe连接为可执行文件界面如图11所示。图 11 用masm.exe编译界面第四步;程序的调试。建立kdw.exe文件后,输入td rf.exe打开td编辑器,查看计算机语言和寄存器状态,抄写机器语言用于硬件调试。4.3、设计模拟电路仿真分析:虽然实现了原本预期
27、的各种控制状态,不过程序还有待优化、改进,比如实验中的灯亮灭的情况延时保持一段时间后,返回到主程序中在屏幕上显示提示语句,不过此时灯的状态还是保持(返回前应该将灯全熄灭)。要再手动拨动开关成其它状态然后按下c键才能变化成另一种汽车状态,这样操作起来比较麻烦。还有,该系统的使用者得去记住各个开关组合所表示的汽车状态,不够人性化,应该进一步改进成用单个开关对应一种汽车状态的情况。这些系统目前存在的各种不足我们将在以后的学习和生活中不断总结、修改和改进。五.总结5.1 课程设计小结本次课程设计是我们小组是要设计一个汽车信号灯控制系统,主要通过8255a的a口和c口模拟汽车信号灯的亮灭闪烁情况。通过本次的设计以此来加深对微机接口技术的理解,提高了自己的动手能力。首先我们小组是着手对硬件电路的设计,本次课程设计主要采用了8255a接口电路。我们通过课本了解到了各个芯片的引脚及功能、工作方式、内部结构和控制字。对各个功能的熟悉便于了硬件电路的设计。然后就是对程序的设计,想要设计出一个实用的控制系统需要了解程序流程,先画出了流程图,然后对代码进行编写,主要采用汇编语言。最后联系实验室的老师在实际的实验箱上对程序,硬件电路进行调试。在调试过程中遇到了很多问题,有些问题在同学和老师的帮助下得以解决,有些我们小组讨论找出并解决问题。5.2 课程设计体会经过这段时间的课程设计,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 21681-2025机械压力机、液压机用模拟负荷测试系统
- 2025年邵阳辅警招聘考试真题含答案详解(预热题)
- 2025年自贡辅警协警招聘考试真题完整答案详解
- 2025年黄石辅警协警招聘考试真题及答案详解参考
- 2025年牡丹江辅警协警招聘考试备考题库含答案详解(培优a卷)
- 2025年苏州辅警招聘考试题库附答案详解(突破训练)
- 2025年辽源辅警协警招聘考试备考题库附答案详解(模拟题)
- 2025年陕西辅警协警招聘考试真题附答案详解(精练)
- 《铁路运输设备》题库及参考答案
- 2025年鞍山辅警协警招聘考试备考题库含答案详解(夺分金卷)
- 2025年度食品安全员考试试题(答案+解析)
- 2025年氧化铝制取工职业技能鉴定经典试题含答案
- 企业并购方案协议书
- 下载食品安全法课件
- 流态固化土工程结算合同模板
- 2025广东广州市海珠区凤阳街道第四批招聘雇员5人考试笔试参考题库附答案解析
- 2025年新版超声产筛考试试题及答案
- 侍茄师初级练习测试卷
- 微课视频录制方案及效果评估
- 专业学位研究生教学案例 姚海放
- 电商平台对入驻经营者的审核要求或规范文件【微信小程序申请模板】
评论
0/150
提交评论