交通灯控制器的设计与实现一、实验目的1. 了解交通灯管理的基本工作原理。2. 熟悉8253计数器/定时器、8259A中断控制器和8255A并行接口的工作方式及应用编程。3. 掌握多位LED显示的方法。 二、 实验内容与要求设计一个用于十字路口的交通灯控制器。1.基本要求: 1) 东西和南北方向各有一组红,黄,绿灯用于指挥交通,红,黄,绿的持续时间分别为25s,5s,20s。2) 当有紧急情况(如消防车)时,两个方向均为红灯亮,计时停止,当特殊情况结束后,控制器恢复原来状态,正常工作。3) 一组数码管,以倒计时方式显示两个方向允许通行或禁止通行的时间。2.提高部分:1) 实时修改交通灯的持续时间。2) 根据不同时段对主要交通方向的信号进行调整。3) 可以使用LCD显示提示信息。 三、实验报告要求 1.设计目的和内容 2.总体设计 3.硬件设计:原理图(接线图)及简要说明 4.软件设计框图及程序清单 5.设计结果和体会(包括遇到的问题及解决的方法) 四、总体设计交通灯的工作过程如下:设十字路口的1、3为南,北方向,2、4为东西方向,初始态为4个路口的红灯全亮。之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车,2个路口的LED数码管开始倒计时25秒。延迟20秒后,1、3路口的绿灯熄灭,而1,3路口的黄灯开始闪烁(1HZ)。闪烁5次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车,2个路口的LED数码管重新开始倒计时25秒。延迟20秒时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。闪烁5次后,再切换到1、3路口方向。之后,重复上述过程。当有紧急情况时,2个方向都红灯亮,倒计时停止,车辆禁止通行,当紧急情况结束后,控制器恢复以前的状态继续工作。 在设计中采用6个发光二极管来模拟2个路口的黄红绿灯,每个路口用2个数码管来显示通行或禁止剩余的时间。紧急情况用一个单脉冲发生单元申请中断来模拟,紧急情况结束后,再发一个中断来恢复以前的状态。 根据前面的介绍,本设计硬件由定时模块、发光二极管模块、数码管显示模块和紧急中断模块组成。定时模块采用硬件定时和软件定时相结合的方法,用8253定时/计数器定时100ms,再用软件计时实现所需的定时。发光二极管模块由8255控制发光二极管来实现。数码管显示模块由实验平台上的LED显示模块实现。紧急中断模块是由单脉冲发生单元和8279中断控制器组成。 程序主要是由定时子程序、发光二极管显示子程序、数码管显示子程序和中断服务程序组成。包括对8253、8255以及8259等可编程器件的编程。 五、硬件设计 本课题的设计可通过实验平台上的一些功能模块电路组成,由于各模块电路内部已经连接,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。完整系统的硬件连接如图1所示。硬件电路由定时模块、发光二极管模块、数码管显示模块和紧急中断模块组成。 定时模块是由8253的计数器0来实现定时100ms。Clk0接实验平台分频电路输出Q6,f=46875hz。GATE0接8255的PA0,由8255输出来控制计数器的起停。OUT0接8259的IRQ2,定时完成申请中断,进入中断服务程序。 发光二极管显示模块由8255输出来控制发光二极管的亮灭。8255输出为低电平时,对应的发光二极管就点亮,否则就熄灭。8255的接口电路如图2所示。交通灯的对应关系如下:L7 L6 L5 L2 L1 L0PC7 PC6 PC5 PC2 PC1 PC013红灯 13黄灯 13绿灯 24红灯 24黄灯 24绿灯 实验平台上提供一组六个LED数码管。插孔CS1用于数码管段选的输出选通,插孔CS2用于数码管位选信号的输出选通。本设计用4个数码管来倒计时。 紧急中断模块是由单脉冲发生单元和8259中断控制器,单脉冲发生单元主要用来请求中断,然后做出紧急情况处理。
标签: 交通灯控制器
上传时间: 2013-10-07
上传用户:小小小熊
置位/复位电路有多种设计方法,应根据成本预算和设置的磁场分辨率来选择最佳方案。置位脉冲和复位脉冲对传感器所起的作用是基本一样的,唯一的区别是传感器的输出改变正负号。
上传时间: 2013-10-17
上传用户:名爵少年
为满足能谱分析中多道脉冲幅度分析器A/D转换的要求,设计了一种高速脉冲峰值保持电路。以高速电压比较器LM311、采样/保持芯片LF398作为主要器件,具有幅度判别、波形采样、峰值保持、电荷泄放等功能,结构简单,易于调试。实验表明:对于高速脉冲信号,该电路可以较好地甄别峰值并保持,性能可靠,响应速度快,误差小于1%。
上传时间: 2013-11-17
上传用户:saharawalker
基于MSP430的NRF905无线发收应用实例.
上传时间: 2013-11-01
上传用户:qq10538412
文中在FFT基础上,运用高低通滤波器原理,采用精确计算得出多普勒频率偏差的方法,从而提高了频率、目标速度的测量精度。计算机仿真和外场试验结果均表明了此方法的有效性。目前该方法已应用于某单脉冲跟踪雷达系统。
上传时间: 2013-10-30
上传用户:qingdou
超声波传感器适用于对大幅的平面进行静止测距。普通的超声波传感器测距范围大概是 2cm~450cm,分辨率3mm(淘宝卖家说的,笔者测试环境没那么好,个人实测比较稳定的 距离10cm~2m 左右,超过此距离就经常有偶然不准确的情况发生了,当然不排除笔者技术 问题。) 测试对象是淘宝上面最便宜的SRF-04 超声波传感器,有四个脚:5v 电源脚(Vcc),触发控制端(Trig),接收端(Echo),地端(GND) 附:SRF 系列超声波传感器参数比较 模块工作原理: 采用IO 触发测距,给至少10us 的高电平信号; 模块自动发送8个40KHz 的方波,自动检测是否有信号返回; 有信号返回,通过IO 输出一高电平,高电平持续的时间就是超声波从发射到返回的时间.测试距离=(高电平时间*声速(340m/s))/2; 电路连接方法 Arduino 程序例子: constintTrigPin = 2; constintEchoPin = 3; floatcm; voidsetup() { Serial.begin(9600); pinMode(TrigPin, OUTPUT); pinMode(EchoPin, INPUT); } voidloop() { digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW); cm = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cm cm = (int(cm * 100.0)) / 100.0; //保留两位小数 Serial.print(cm); Serial.print("cm"); Serial.println(); delay(1000); }
上传时间: 2013-10-18
上传用户:星仔
实验用脉冲爆震发动机控制系统以Atmega16为核心,对发动机的点火系统、供油系统和供气系统进行有效控制。系统主要包括单片机控制模块、人机交互模块、数据采集模块和脉冲输出模块。通过实验,该系统可以实现实验型脉冲爆震发动机的成功起爆和稳定工作。
上传时间: 2013-10-12
上传用户:lijinchuan
脉冲当量或电子齿轮的调整方法
上传时间: 2013-11-20
上传用户:Divine
S7200脉冲数出MAP库文件使用说明
上传时间: 2014-01-23
上传用户:chens000
提出一种新型脉冲激光测距方法——自触发脉冲飞行时间激光测距方法。运用该方法有效解决了传统脉冲激光测距法中存在的提高测量精度和缩短测量时间两者之间的矛盾。对该方法及本质特点进行了详细描述和理论分析,并给出用于描述该方法的基本方程。其飞行时间测量系统的设计很大程度上决定了自触发脉冲激光测距的测量精度和测量速度。设计并实现了基于CPLD的自触发脉冲激光测距飞行时间测量系统。CPLD的使用提高了测量精度,并且结构简单,体积小,可靠性高,非常适合高性能便携式的激光测距仪。
上传时间: 2013-10-26
上传用户:lili123