《中国矿业大学计算机科学及技术学院硬件课程设计交通信》由会员分享,可在线阅读,更多相关《中国矿业大学计算机科学及技术学院硬件课程设计交通信(35页珍藏版)》请在金锄头文库上搜索。
1、硬件课程设计实践报告题 目:交通灯控制实验 时 间:2015年1月8日中国矿业大学计算机科学与技术学院目 录硬件课程设计报告1一设计任务与要求31.1需求分析与实验任务31.2任务要求4二.总体方案与说明42.1设计模块42.2设计思路5三.硬件框图与说明63.1系统所需硬件63.2 8255A芯片介绍63.3 8253芯片介绍9四电路原理图19五实物连接图20六软件主要模块流程图236.1主程序流程图23七源程序清单与注释24八.结论与体会338.1结论:338.2体会:34一设计任务与要求1.1需求分析与实验任务 红绿交通灯是我们日常生活经常见到也是必不可少的,随着城市社会经济的发展,城市
2、道路交通供给和需求的矛盾日益突出,并引发很多交通问题。当今,红绿灯安装在各个交通路口上,已经成为疏导交通车辆最常见和最有效的手段。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯时通行信号,面对绿灯的车辆可以直行、左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。我们设计的交通灯就是依据上述思路控制十字路口南北东西四个方向车辆通行的。 利用微机接口技术实验系统设计制作一个交通灯指挥系统。由于硬件条件有限,所以只能
3、实现南北方向和东西方向的交通灯指挥,要求是能够利用实验箱中的数码管显示倒计时,配上双色点阵LED显示器。实现的功能与流程如下:关键词 红绿交通灯、微机接口技术、双色点阵、数码管显示倒计时1.2任务要求(1) 南北绿灯,东西红灯同时亮30秒,且数码管30秒倒计时显示,双色点阵显示左转箭头。 (2) 当倒计时结束时,显示黄灯倒计时5秒,南北黄灯亮,持续5秒,同时东西路红灯继续亮。(3) 当倒计时结束后,南北路红灯,东西路绿灯同时亮,持续30秒,且数码管30秒倒计时显示,双色点阵显示右转箭头。(4) 当倒计时结束时,显示黄灯倒计时5秒,南北路红灯继续亮,同时东西路黄灯亮,持续5秒。(5) 停止计时,
4、数码管上的数字停在0秒。(6) 重复。二.总体方案与说明2.1设计模块按照系统设计的功能要求,初步确定该交通指挥系统主要有四个模块组成,一是数码显示倒计时模块;二是计时模块,主要用到8253芯片和8255芯片;三是灯显示模块,主要用到8255芯片;四时点阵模块用一片74LS273锁存。2.2设计思路十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。本课程设计的背景是实际中的交通灯控制,实际的交通灯布置情况如图1所示。1、用实验箱中提供的发光二极管(红绿黄各两支、共六支)作为南北路口(红绿黄各一支)和东西路口(红绿黄各一支)的模
5、拟交通灯。2、用可编程并行接口芯片8255A控制模拟交通灯的亮与灭和数码管的倒计时显示。3、用可编程定时器/计数器芯片8253实现模拟交通灯亮与灭的时间延迟的控制。4、用数码管作为模拟交通灯亮与灭的时间延迟控制的倒计时显示。5、用汇编语言编程使六个灯按交通灯变化规律“亮/灭”。交通灯变化要求:(1)南北灯绿,东西红灯同时亮30秒,且数码管30秒倒计时显示。(2)南北黄灯闪烁5秒,同时东西路红灯继续亮,且数码管5秒倒计时显示。(3)南北路红灯、东西路绿灯同时亮30秒,且数码管30秒倒计时显示。三.硬件框图与说明3.1系统所需硬件设计所需芯片:8255A、8253 74LS273所需设备:6个LE
6、D灯(两组红黄绿灯)、八位数码管显示器,双色点阵LED屏将8255A的A口与LED灯相连,对8255A进行初始化编程,控制LED灯的亮灭。对8279编程,显示30秒倒计时。用8253对交通灯进行计时,南北方向30s,黄灯5s,东西方向30s,黄灯5s,这样循环两次。 用一片74LS273锁存地址,让双色点阵显示相应图案。3.2 8255A芯片介绍引脚功能RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时
7、,8255无法与CPU做数据传输. RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。 D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位
8、的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。 A0,A1:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器. 当A0=0,A1=0时,PA口被选择; 当A0=0,A1=1时,PB口被选择; 当A0=1,A1=0时,PC口被选择; 当A0=1.A1=1时,控制寄存器被选择.3.3 8253芯片介绍8253具有3个独立的计数通道,采用减
9、1计数方式。在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。 一、8253内部结构 8253芯片有24条引脚,封装在双列直插式陶瓷管壳内。 1.数据总线缓冲器 数据总线缓冲器与系统总线连接,8位双向,与CPU交换信息的通道。这是8253与CPU之间的数据接口,它由8位双向三态缓冲存储器构成,是CPU与8253之间交换信息的必经之路。 2.读写控制 读写控制分别连接系统的IOR#和IOW#, 由CPU控制着访问8253的内部通道。接收CPU送入的读写控制信号, 并完成对芯片内部各功能部件的控制功能, 因此, 它实际上是8253芯片内部的
10、控制器。A1A0:端口选择信号,由CPU输入。8253内部有3个独立的通道和一个控制字寄存器, 它们构成8253芯片的4个端口,CPU可对3个通道进行读写操作3对控制字寄存器进行写操作。 这4个端口地址由最低2位地址码A1A0来选择。如表9.3.1所示。 3.通道选择 (1) CS#片选信号,由CPU输入,低电平有效,通常由端口地址的高位地址译码形成。 (2) RD#、WR#读写控制命令,由CPU输入, 低电平有效。RD#效时,CPU读取由A1A0所选定的通道内计数器的内容。WR#有效时,CPU将计数值写入各个通道的计数器中, 或者是将方式控制字写入控制字寄存器中。CPU对8253的读写操作如
11、表9.3.2所示。 4.计数通道02 每个计数通道内含1个16位的初值寄存器、减1计数器和1个16位的(输出)锁存器。8253内部包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可进行二进制或十进制(BCD码)计数。采用二进制计数时, 最大计数值是FFFFH, 采用BCD码计数时。 最大计数值是9999。与此计数器相对应, 每个通道内设有一个16位计数值锁存器。必要时可用来锁存计数值。 当某通道用作计数器时,应将要求计数的次数预置到该通道的计数器中、被计数的事件应以脉冲方式从CLK端输入, 每输入一个计数脉冲,计数器内容减“1”,待计数值计到“0”。 OUT端将有输出。表示计数次
12、数到。当某个通道用作定时器时。 由CLK输入一定频率的时钟脉冲。根据要求定时的时间长短确定所需的计数值。并预置到计数器中,每输入一个时钟脉冲,计数器内容减“1”, 待计数值计到“0”。OUT将有输出,表示定时时间到。允许从CLK输入的时钟频在12MHz范围内。因此,任一通道作计数器用或作定时器用,其内部操作完全相同,区别仅在于前者是由计数脉冲进行减“1”计数。 而后者是内时钟脉冲进行减“1”计数。作计数器时, 要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。作定时器时, 计数器的初值即定时系数应根据要求定时的时间进行如下运算才能得到: 定时系数需要定时的时间时钟脉冲周期 设置通道:
13、向方式控制字寄存器端口写入方式选择控制字,用于确定要设置的通道及工作方式; 计数/定时:向通道写入计数值,启动计数操作; 读取当前的计数值:向指定通道读取当前计数器值时,8253将计数器值存入锁存器,从锁存器向外提供当前的计数器值,计数器则继续作计数操作。 计数到:当计数器减1为0时,通过引脚OUTi向外输出“到”的脉冲信号。 计数初值输入存放在初值寄存器中,计数开始或重装入时被复制到计数器中。 锁存器在非锁存状态,其值随计数器的变化而变化;一旦锁存了计数器的当前值,直到锁存器值被读取后才能解除锁存状态。 5.方式选择控制字 二、8253的通道工作方式 8253中各通道可有6种可供选择的工作方
14、式, 以完成定时、计数或脉冲发生器等多种功能。8253的各种工作方式如下: 1.方式0:计数结束则中断 工作方式0被称为计数结束中断方式,它的定时波形如图9.3.4所示。当任一通道被定义为工作方式0时, OUTi输出为低电平;若门控信号GATE为高电平,当CPU利用输出指令向该通道写入计数值WR#有效时,OUTi仍保持低电平,然后计数器开始减“1”计数, 直到计数值为“0”,此刻OUTi将输出由低电平向高电平跳变,可用它向CPU发出中断请求,OUTi端输出的高电平一直维持到下次再写入计数值为止。 在工作方式0情况下,门控信号GATE用来控制减“1”计数操作是否进行。当GATE=1时,允许减“1
15、”计数;GATE=0时,禁止减“1”计数; 计数值将保持GATE有效时的数值不变, 待GATE重新有效后,减“1”计数继续进行。 显然,利用工作方式0既可完成计数功能, 也可完成定时功能。当用作计数器时,应将要求计数的次数预置到计数器中,将要求计数的事件以脉冲方式从CLKi端输入, 由它对计数器进行减“1”计数,直到计数值为0,此刻OUTi输出正跳变, 表示计数次数到。当用作定时器时,应把根据要求定时的时间和CLKi的周期计算出定时系数,预置到计数器中。从CLKi,输入的应是一定频率的时钟脉冲,由它对计数器进行减“1”计数, 定时时间从写入计数值开始,到计数值计到“0”为止,这时OUTi输出正跳变,表示定时时间到。 有一点需要说明,任一通道工作在方式0情况下, 计数器初值一次有效,经过一次计数或定时后如果需要继续完成计数或