文档详情

交通灯设计报告(包含源代码、小组成员报告、硬件原理及搭建实践)

xue****ang
实名认证
店铺
DOC
411.50KB
约22页
文档ID:157001676
交通灯设计报告(包含源代码、小组成员报告、硬件原理及搭建实践)_第1页
1/22

计算机科学与技术学院硬件课程设计报告专 业: 信 息 安 全 班 级: 信息安全06—3 设计题目: 交通灯指挥系统 组 长: 组 员: 2指导教师: 职 称: 教 授 2007年 6月 课程设计指导教师评阅书指导教师评语:成 绩: 指导教师签字: 年 月 日十字路口交通灯指挥系统——硬件课程设计摘 要 一个完善的十字路口交通指挥系统,可以有效缓解交通高流量压力,带来良好的道路秩序,给人们的生活带来方便红、黄、绿灯信号的交替亮灭,构成了一个交通系统的基本框架在“红灯停,绿灯行,黄灯亮了等一等”的交通规则下,实现主、次干通道在有序时间状态下的车辆通行此外,一个完善的十字路口交通灯指挥系统还应该具有精确的倒计时功能,及时灵活地处理紧急情况,如救护车和警车通过时停止普通车辆的行驶,让出宽敞的道路,使紧急车辆畅通无阻的通行。

基于这样的构思,我们结合理论,并紧密联系实际,完成了这次硬件课程设计关键字:8086,8255,8253,LED,延时目 录1概述………………………………………………………………………………42需求分析…………………………………………………………………………4 2.1总体设计思路………………………………………………………………4 2.2十字路口模拟………………………………………………………………4 2.3 交通灯工作过程……………………………………………………………82.4列表方式描述工作过程……………………………………………………83 总体方案设计……………………………………………………………………9 3.1可编程定时器/计数器芯片8253介绍……………………………………93.1.1 8253管脚图……………………………………………………………83.1.2 8253延时功能…………………………………………………………3.1.3 8253的工作方式………………………………………………………83.2可编程并行接口芯片8255介绍……………………………………………83.2.1 8255管脚图……………………………………………………………103.2.2 8255数据端口A、B、C…………………………………………………83.2.3 8255控制字………………………………………………………………83.2.4 8255的工作方式…………………………………………………………83.3芯片具体实现思路……………………………………………………………8 总体思路…………………………………………………………………8 LED灯分布图……………………………………………………………83.3.3 8253芯片使用级联分析………………………………………………84.详细设计方案………………………………………………………………………84.1 硬件方案的实现………………………………………………………………8 4.1.1 8253功能模块图…………………………………………………………84.1.2 8255功能模块图…………………………………………………………84.1.3 整体电路设计图………………………………………………………84.2软件实现方案…………………………………………………………………8 流程图……………………………………………………………………8 源程序……………………………………………………………………84.3电路程序分析与调试……………………………………………………………8 电路连接调试……………………………………………………………84.3.2 程序调试……………………………………………………………………84.4实验分工…………………………………………………………………………85.设计改进构想…………………………………………………………………………86.心得体会………………………………………………………………………………8 6.1 XXX的心得体会………………………………………………………………86.2 XXX的心得体会………………………………………………………………86.3 XXX的心得体会………………………………………………………………87.参考文献………………………………………………………………………………1 概述我们的设计题目是交通灯指挥系统。

课程设计的目的是《微机接口与控制技术》课程的综合训练,我们通过理论学习,课题选择,资料查阅,软、硬件设计,系统调试等环节,巩固和提高所学的知识及应用水平.学会从提出问题,观察与分析问题,到最终解决问题科学方法.培养我们严谨的工作作风,务实的工作态度为今后的毕业设计奠定坚实的基础众所周知,交通灯已经成为交通控制不可或缺的组成部分,交通信号灯的出现使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果随着社会经济的发展,城市交通问题越来越引起人们的关注人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分随着城市机动车量的不断增加,许多大城市出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。

所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题本课程设计的意义在于通过模拟交通灯的控制系统的设计,掌握8086CPU控制系统设计的一般方法和处理问题的思路,特别是一些常用的技术手段使我们能在实践教学环境中累积设计经验,开拓思维空间,全面提高个人的综合能力在产品或项目开发中,团队合作是非常重要的,在对设计进行模块划分、统一变量之后,分别设计不同设计然后进行整合,这样进行开发是非常快速简单的在设计中掌握了计算机接口设计的基本方法、锻炼了团队合作的能力2 需求分析2.1总体设计思路本次设计的思路是:通过四组LED灯(每组由红、黄、绿三个灯组成)来模拟十字路口交通灯指挥系统,实现交通信号灯的实时控制和管理每个路口两端各有一组灯,同一方向两组灯的亮灭时间、颜色完全相同,同一方向上两组灯中红灯亮的时间等于另一方向两组灯中绿灯和黄灯亮的时间的总和设计过程中使用的模拟设备是FDSJ86/88二合一微机教学实验系统,配合 PC机构成设计环境该设计要用到的主要芯片为8253、8255,以及12支数码管。

利用硬件延时控制交通灯的亮灭2.2十字路口模拟 北 主 干 道西 次干道 东 南2.3交通灯工作过程如下:(1)东西方向车辆放行6秒钟即东西方向的绿灯和南北方向的红灯同时点亮6秒钟;(2)6秒钟后,东西方向的黄灯亮3秒钟,以警示车辆将切换红绿灯此时南北方向仍维持红灯点亮3)东西方向的黄灯亮3秒钟后,转为南北方向放行9秒钟即东西方向的红灯和南北方向的绿灯同时点亮9秒钟;(4)南北方向放行9秒钟后,转为南北方向的黄灯亮3秒钟,以警示将切换红绿灯此时东西方向仍维持红灯点亮5)南北方向的黄灯亮3秒钟后,再转为东西方向车辆放行9秒钟如此循环重复2.4列表方式描述工作过程:东西(次干道)绿灯亮6S黄灯亮3S红灯亮12S南北(主干道)红灯亮9S绿灯亮9S黄灯亮3S3 总体设计方案在这套路灯控制系统中,主要用到的芯片是8253可编程计数/定时器和8255可编程并行接口芯片3.1 可编程定时器/计数器芯片8253介绍3.1.1 8253管脚图 1 242 233 224 215 206 8253 197 188 179 1610 1511 1412 13 GND Vcc3.1.2 8253延时功能可编程定时器/计数器利用硬件电路和中断的方法控制定时,定时时间和范围完全有软件来确定和改变,并有微处理器的时钟信号提供时间基准,因这种时钟信号由晶体震荡器产生,故计时精确稳定。

但该时钟信号频率太高,所以要把它送到专门的计数器/定时器芯片进行分频后,才能产生个中所需要的定时信号用可编程定时器/计数器电路进行定时时,先要根据预定的定时时间,用指令对计数器/定时器芯片设定计算初值,然后启动芯片进行工作计数器一旦开使工作后,CPU就可以去做别的工作了,等计数器到了预定的时间,变自动形成一个输出信号,该信号可以向CPU提出中断请求,通知CPU定时时间已到,使CPU做相应的处理或者直接输出信号启动设备去工作这种方法不但显著提高了CPU的利用率,而且定时时间由软件来设置,使用起来十分的灵活方便,加上定时时间又很精确,所以获得了广泛的应用3.1.3 8253控制字SC1 SC0RL1 RL0M2 M1 M0BCD1 BCD码计数0 2进制码计数1000方式0 001方式1X10方式2 x11方式3100 方式4 101方式500计数器锁存,供cpu读01只读,写计数器低字节10只读,写计数器高字节11先低字节,后高字节00 通道001 通道110 通道211 无效SC1SC0----通道选择位;RL1RL0----读、写操作位;M2M1M0-----工作方式选择位;BCD------计数方式选择位3.1.3 8253的工作方式1.方式0——计数结束中断方式工作方式是:当对8253的任一个通道写入控制字,并选定工作于方式0时,该通道的输出端OUT立即变为低电平,在门控信号为高电平的情况下,CPU利用输出指令给8253写入计数初值,允许计数。

计数结束,OUT引脚自动由低电平变成高电平这个由低到高的正跳变信号,可用于判别计数是否结束2.方式1——可编程单稳态输出方式3.方式2——比率发生器当对某一计数通道写入控制字,选定工作方式2时,在OUT端是高电平的情况下,若写入初值n,计数结束时,OUT端输出脉冲频率是输入时钟脉冲频率的n分之一因此,这实际上是一种分频方式4.方式3——方波发生器5.方式4——软件触发选通6.方式5——硬件触发选通 3.2 可编程并行接口芯片8255介绍3.2.1 8255管脚图 1 402 393 38 4 37 5 36 6 35 7 34 8 33 9 32 10 31 11 30 12 29 13 28 14 27 15 26 16 25 17 24 18 23 19 22 20 21 GND RESETVcc 3.2.2 8255数据端口A、B、C 8255端口A和端口B都可以用作一个8位的输入口或8位的输出口,出口既可作8位输入输出口又可分为两个4位输入输出口,还常常用来配合A口和B口工作,用来产生A口和B口的端口状态信号,8255A有两类控制字,一类控制字用来定义各端口的工作方式,称为方式选择控制字,另一类控制字用于对C端口的任一位置进行置位或者复位操作,称为置位复位控制字对8255A进行编程时这两种控制字都要写入控制字寄存器中,但方式选择控制字的D7位总是1,而置位复位控制字的D7位总是0。

3.2.3 8255控制字说明:左为方式选择控制字,右为置位复位控制字3.2.4 8255的工作方式1.方式0——基本输入输出CPU与这种方式交换数据时,可直接用输入指令从指定端口读取数据,或用输出指令将数据写入指定的端口,不需要任何其它用于应答的联络信号方式选择字的格式如下图:D7D6D5D4D3D2D1D0D7-标志位D6D5=00,选择A口工作于方式0D4=0,选择A口输出端口D3=1,D0=1,C口高、低四位分别作为输入端口D2=0,选择B口工作于方式0D1=0,选择口输出端口3.3芯片具体实现思路 总体思路为了实现系统的显示功能我们采用的方案是点阵LED作为状态灯输出,显示提示信息用8255并行接口芯片与12个LED灯相接,通过输出端口的状态字控制灯的亮灭变化:当信号为高电平时,LED熄灭,当信号为低电平时,LED点亮用8253定时器进行延时,实现控制LED灯的亮灭时间这种方案既满足系统功能要求,又减少了系统实现的复杂度 LED灯分布图 PA0 PA1 PA2 红 黄 绿 北PB6 红 红 PA3PB5 黄 西 东 黄 PA4PB4 绿 绿 PA5 南 PA6 PA7 PB7 红 黄 绿3.3.3 8253芯片使用级联分析对8253芯片的通道1进行编程,工作与方式0,实现各段时间的延时(以2s为例)。

将频率为1MHz(周期为0.5us)的时钟直接加到CLK1端,则OUT1输出的时钟脉冲周期只有0.5us*65536=32768us=32.768ms,达不到2s的要求,为此,需要通道0与通道1级联的方案来解决这个问题 将频率为1MHz的信号加到CLK0端,并让通道0工作于方式2,若选择计数初值为2000,则从OUT0端可得到序列负脉冲,其频率为1MHz/2000=500Hz,周期为2ms再把该信号连到CLK1输入端,并使通道1工作于方式0为了使OUT1输出周期为2s(频率为0.5Hz)的脉冲,应取时间常数为500Hz/0.5Hz=1000.同理,若均取OUT0分频初值为2000,则OUT1延时要求与计数初值分别为:延时长度2s6s3s9s计数初值10003000150045004 详细设计方案4.1 硬件方案的实现 4.1.1 8253功能模块图左为8086CPU管脚图,中为74LS138译码器,右为8253计数器8253址范围为300H~307H,与通道1采用级联的方式,实现不同时间长度的延时 M/ CCCCCC KK77676 CBA 说明:左4.1.2 82 4.1.2 8255功能模块图说明:左为8086CPU,中为74LS138译码器,右为8255并行接口。

8255的地址范围为308H-30FH8255的portA端口与portB端口的后四位接12个LED灯 M/ CCCCCC KK77676 CBA 4.1.3 整体电路设计图说明:译码器的300H-307H选定8253芯片,8253的0通道工作于方式2,进行分频,1通道工作于方式0,两个通道级联,实现延时GATE0与GATE1均接+5伏高电压,允许计数CLK0输入1MHz脉冲OUT1端与8255的portC0相接 ,实现延时测试功能。

译码器的308H-30FH选定8255芯片,芯片的A、B端口工作于方式0,基本输入输出,且均是输出端口,C端口是输入端口,输入8253的OUT1端的信号,进行延时检测延时结束,交替灯的亮灭变化8253 300----307 74LS138308----30F8086CPU +5V 1MHZ …… ……82554.2软件实现方案 流程图 开始 东西南北灯全亮 东西绿灯亮6s,南北红灯亮6s 循东西黄灯亮3s,南北红灯亮3s 环东西红灯亮9s,南北绿灯9s亮东西红灯3s亮,南北绿灯3s亮结束 源程序CODE SEGMENT ASSUME CS:CODESTART: ;8255初始化MOV DX,30BH ;指向8255控制端口 MOV AL,10001001B ;方式字 OUT DX,AL ;输入方式字 MOV DX,30BH MOV AL,00H ;置位复位控制字PC0复位 OUT DX,AL ;输入控制字;所有灯都灭 MOV DX,308H ;指向A口 MOV AL,0FFH ;状态字 OUT DX,AL MOV DX,309H ;指向B口 MOV AL,0FFH ;状态字 OUT DX,AL;初始状态:四个红灯亮 MOV DX,308H MOV AL,10110110B OUT DX,AL MOV DX,309H MOV AL,10111111B OUT DX,AL;分频 MOV DX,303H ;指向8253控制口 MOV AL,00110101B0 ;通道控制字OUT DX,ALMOV DX,300H MOV AL,00H ;先低字节 OUT DX,AL MOV AL,20H ;后高字节 OUT DX,AL ;延时2秒 MOV DX,303H MOV AL,01110001B1 ;通道控制字 OUT DX,AL MOV DX,301H MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL;检测是否完成延时 MOV DX,30AH ;指向C口 TEST1: IN AL,DX AND AL,01H ;跟01H与操作 CMP AL,00H JNZ TEST1 ;未完成延时继续检测,东西绿灯亮, ;南北红灯亮 MOV DX,308H MOV AL,10011110B OUT DX,AL MOV DX,309H MOV AL,11101111B OUT DX,AL;延时6秒 MOV DX,300H MOV AL,00H OUT DX,AL MOV AL,20H OUT DX,AL MOV DX,301H MOV AL,00H OUT DX,AL MOV AL,30H OUT DX,AL;检测是否完成延时 MOV DX,30AH TEST2: IN AL,DX AND AL,01H CMP AL,00H JZ TEST2;东西黄灯亮,南北红灯亮 MOV DX,308H MOV AL,10101110B OUT DX,AL MOV DX,309H MOV AL,11011111B OUT DX,AL;延时3秒 MOV DX,300H MOV AL,00H OUT DX,AL MOV AL,20H OUT DX,AL MOV DX,301H MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL MOV DX,30AH ;检测是否完成延时 TEST3: IN AL,DX AND AL,01H CMP AL,00HJZ TEST3;东西红灯亮,南北绿灯亮 MOV DX,308H MOV AL,11110011B OUT DX,AL MOV DX,309H MOV AL,00111111B OUT DX,AL;延时9秒 MOV DX,300H MOV AL,00H OUT DX,AL MOV AL,20H OUT DX,AL MOV DX,301H MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL;检测是否完成延时 MOV DX,30AH TEST4: IN AL,DX AND AL,01H CMP AL,00H JZ TEST4 ;东西红灯亮,南北黄灯亮MOV DX,308H MOV AL,01110101B OUT DX,AL MOV DX,309H MOV AL,10111111B OUT DX,AL;延时3秒 MOV DX,300H MOV AL,00H OUT DX,AL MOV AL,20H OUT DX,ALMOV DX,301H MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL MOV DX,30AH;检测是否完成延时 TEST5: IN AL,DX AND AL,01H CMP AL,00H JZ TEST5 ;循环显示 JMP BEGINCODE ENDSEND START4.3电路程序分析与调试 电路连接调试由于对实验箱缺乏细致了解,导致接线错误,灯无法实现预想结果的亮灭变化。

这有两个原因:第一,8255并行接口芯片portB端口从左至右,为PB7-PB0(这一顺序与portA,portC的端口设置相反),实际连线时却按照PB0-PB7相连,导致程序中控制灯亮灭的状态字与电路接线不相应,从而导致受控灯出错;第二,8255芯片与LED灯相接时,内部加了反相器,对8255输入状态字控制灯的亮灭时,二进制信号0表示亮,1表示灭由于没有意识到这一点,受惯性思维的影响,写状态字是按0控制灭,1控制亮来写的,导致该亮的灯是灭的,该灭的灯反而亮了另外,实验箱有问题,给我们的调试带来很大麻烦,首先是芯片不全 ,导致我们完成程序无法及时验证是否正确;其次,有的箱子接口有问题,结果按RESET键没反应,无法继续实验 程序调试由于对理论知识掌握不牢,导致实验过程中走了很多弯路两个方面的原因:第一,用8255控制灯的亮灭,书写程序时,对8255初始化控制字后,默认8255的所有端口都被复位,即所有端口输出都为1,接线后对灯的控制效果是导致所有灯都亮,刚开始以为是程序问题,就不停的修改程序,可都没有效果,这浪费了很长时间后来在老师的指导下,初始化后,加了一段所有灯都灭的程序,再执行自己的程序时,就得心应手了;第二,8253芯片的 通道1工作于方式0,实现延时,当延时结束时,OUT1输出高电平,电路连接时,OUT1与8255的PC0端口相连,程序是用输入指令从PC口读取数据,与01H相与,测试是否完成延时,若完成延时则继续执行下一条指令,若未完成延时则继续测试,直到检测到高电平为止。

虽然思路正确,但编写的程序始终是个死循环,单步调试的结果是始终在执行测试程序段,不能继续执行下一条指令连续执行则始终停留在初始化状态,即所有灯都亮的状态刚开始用TEST语句,后来改为AND,CMP语句还 是一样的效果,这浪费了很长时间调试与同学讨论,循环语句并没有用错,但是他们设计的思路与我们不同,效果很好我觉的我们得拓展自己的思维,尝试用不同的思路设计不同的程序,进行调试,这样成功的几率才会更大4.4实验分工本次课程设计,经我们小组的研究与讨论将设计步骤分为三部份:一是在老师的指导下选题,收集相关资料,二是集体讨论,明确设计思路,研究设计细节;三是分工具体实施,联合协作,最后规划报告具体分工::软件方案实现及报告设计(具体程序流程图的编写,整体报告设计):硬件方案实现(芯片应用及电路连接):电路程序调试(改进程序和电路连接中的问题,调试最后结果)5 设计改进构想为实现交通灯系统的显示功能,我们采用了LED灯进行了灯光显示,用不同颜色灯的亮灭有效的控制了道路通道的的车辆流通,实际应用中,只有灯的亮灭很难知道车辆需要等待多长时间,这就需要延时数字倒计时功能设计改进方案是用数码管来完成数字显示。

若用8255完成实验,由于端口不够用,需将灯减少到8个,即将黄灯去掉,交通灯工作流程变为,绿灯亮后,继续闪烁3s,以通知车辆,将要进行灯的转换实验可用8255的剩余端口,连接一个数码管的输入输出端,通过对它输入初值,与8253协调工作,完成倒计时具体为:8253通道1工作于方式3,输出方波,每检测到一次输出脉冲电平的转换,通知数码管进行一次减一计数直到减到0为止再进行循环显示另外,考虑到实际情况,道路上会有紧急车辆通行,交通灯应为紧急车辆的及时通行提供方便当紧急车辆通过时,所有的红灯都亮,禁止普通车辆的通行可通过程序跳转来实现根据流量统计可调整灯的亮灭时间,实验可改进,用8253做计数器,统计通过的车流量,流量大的通道通行时间相应调长一段时间6 心得体会 6.1XXX的心得体会通过这次实验我获得了很多收获,可分为以下两点:第一,与人协作的精神:通过这次实验我再次认识到了集体的力量因为是第一次做课程设计,心里一点把握都没有,本来以为很困难的课程设计,通过我们三个人的共同努力,终于在规定是时间内成功完成,虽然过程中有些不顺利的事情,但是我们还是通过努力,最终达成了共识在这过程用有仔细的查阅资料、认真的分析和激烈的讨论。

使我受益匪浅第二,计算机硬件方面的知识:为了做好这次实验,我们翻阅了大量的相关的资料,在完成实验的同时,丰富了自己的知识,开阔了眼界,一片小小的芯片居然可以做那么多的东西,同时也对几种芯片有了深入的了解,虽然有些实验中没有用到这些东西对我学习计算机接口这门课程有了很大的帮助,通过亲自动手接线、调试,我了解到了一些书本上没有的知识,也加强了自己的动手能力虽然这次课程设计不是一次能应用于实际的课题,只是为了增强我们的能力,而开设的,但是看到自己的第一个设计,我还是感到很高兴,在以后的学习中,我一定会更加努力,为将来能做出更出色的产品打好基础光有理论不行,得用于实践,只有硬件实现了,才能肯定自己的知识,同时巩固理论以后做实验应不断联系实践,才能有出色的效果6.2XXXX的心得体会通过本次实验,是我熟悉了硬件设计的作用,熟练掌握了设计硬件设计课程报告的过程对我以后做有关硬件方面的设计时有极大的帮助虽然此次实验的结果不甚理想仍然给我们许多启示:首先是加强团队精神作为一个软件甚至计算机方面的人,如果不会与人合作无论他的理论多么的精深,实践能力多么的强,都无法做出适合时代的发展的东西因为一个人的精力毕竟有限,只有善于与人合作,才能有所作为。

要善于查找资源作为一个从事计算机方面的人才,如果不会充分用资源就无法充分发挥自己的才能网络上的资源可以说是无穷无尽的,所以善用变的尤其重要开始我们没有相关方面的知识但通过查找,比较,学习,我们终于成功完成本次设计要有钻劲,其实相比较而言,我认为 我们的设计课题是相对容易的我发现别的组的,有的部分要难的多但是他们一样很出色的完成了通过不停的调试程序,我觉得受益非浅6.3XXXX的心得体会在这次课程设计实验中我有很多的收获: 这是我第一次参加课程设计实验,开始我甚至不知道如何去做,要做什么但实验中我们小组三人团结合作,共同努力,让我看到了团队精神的力量在实验中我们一起去查找资料,去确定方案,一起讨论来答成共识在我们的精诚合作下我们终于完成了实验 在课程设计中我学到了很多的新知识,同时也看到了自己的不足实验中对8255A的学习有很大的好处,同时也促进了我学习“接口”这门课程的兴趣通过实验我的动手能力有的加强,从而也激发了去创造性学习的热情最后我要感谢同组的同学对我的帮助,虽然我们现在做的不会应用到实际中去但我想这次课程设计对我以后的工作与学习都会有极大的影响!7 参考文献《微型计算机原理与接口技术》 吴秀清 中国科技大学出版社《微型计算机接口技术原理及应用》 刘乐善 华中理工大学出版社《微型计算机接口原理与技术》 邹逢兴 电子工业出版社《微型计算机系统与接口》曾家智 电子科技大学出版社。

下载提示
相关文档
正为您匹配相似的精品文档