单片机的交通灯显示系统

合集下载

基于AT89C51单片机的交通灯系统设计

基于AT89C51单片机的交通灯系统设计

基于AT89C51单片机的交通灯系统设计摘要:本文设计了一种基于AT89C51单片机的交通灯系统。

该系统通过使用AT89C51单片机作为控制核心,结合LED灯、红外传感器等硬件部件,实现了智能交通灯的功能。

利用AT89C51单片机的高性能和可编程性,本文提出了基于状态机的控制算法,实现交通灯的精确控制,以提高交通效率和安全性。

试验结果表明,所设计的交通灯系统稳定可靠,具有一定的应用价值。

关键词:AT89C51、单片机、交通灯、智能控制、状态机1. 引言交通灯作为城市道路交通的重要组成部分,对交通的顺畅和安全起着至关重要的作用。

传统的交通灯系统通常接受定时控制方式,无法依据实际交通状况进行灵活调整,导致交通拥堵和交通事故频发。

因此,设计一种智能交通灯系统,能够依据实时交通状况智能调整交通信号灯的状态,具有重要的现实意义。

2. 系统设计2.1 系统硬件设计本文所设计的交通灯系统接受AT89C51单片机作为控制核心,具有较高的性能和可编程性。

系统硬件部件包括LED灯、红外传感器、电路板等。

其中,LED灯用于表示交通灯的红、黄、绿三种状态;红外传感器用于感知车辆的存在与否。

这些硬件部件通过电路板毗连并与AT89C51单片机进行相应的电路毗连,构成完整的交通灯系统。

2.2 系统软件设计系统软件主要包括控制算法的设计和程序编写。

本文接受了基于状态机的算法,实现交通灯的智能控制。

系统依据红外传感器感知到的车辆状况和交通灯当前的状态来进行裁定,从而确定下一时刻交通灯的状态。

详尽实现过程如下:状态1:红灯状态。

当红灯亮起时,表示该方向的车辆需要停车等待。

系统检测到车辆通过红外传感器时,切换到状态2。

状态2:绿灯状态。

当绿灯亮起时,表示该方向的车辆可以通行。

系统计时一定时间后,切换到状态3。

状态3:黄灯状态。

当黄灯亮起时,表示该方向的车辆应注意停车。

系统计时一定时间后,切换到状态1。

该算法能够依据交通灯的当前状态和车辆的状况进行相应的状态切换,实现智能交通灯的控制。

基于单片机的交通信号灯的控制系统设计

基于单片机的交通信号灯的控制系统设计

基于单片机的交通信号灯的控制系统设计交通信号灯是城市交通管理中非常重要的一部分,它通过灯光信号来指示道路上车辆和行人的行动。

基于单片机的交通信号灯控制系统可以实现对交通信号的自动控制,并能根据实际交通情况和时间变化进行灵活调整,提高道路交通的效率和安全性。

1.系统设计需求分析:
-实现红、黄、绿三种信号灯的循环显示,时间可设定;
-根据实际交通情况和时间变化,动态调整红、黄、绿三种信号灯的显示时间;
-配备感应器,检测行人和车辆的存在,根据情况自动调整信号灯时间。

2.系统硬件设计:
-选择合适的单片机,如AT89C52;
-使用LED灯作为信号灯显示器件;
-选择适当的传感器,如红外传感器用于检测行人,光敏电阻用于检测车辆;
-选择适当的电路板进行连接。

3.系统软件设计:
-编写单片机的控制程序,实现红、黄、绿三种信号灯的循环显示;
-设定初始的信号灯显示时间;
-利用定时器和中断控制程序,实现对信号灯显示时间的控制,可以根据设定的时间进行调整;
-设定感应器的检测程序,当检测到行人或车辆时,调整信号灯显示时间。

4.系统工作流程:
(1)初始化系统,设定初始的信号灯显示时间;
(2)通过定时器和中断控制程序实现循环显示红绿黄信号灯;
(3)检测行人和车辆的存在,根据情况调整信号灯显示时间;
(4)循环执行步骤2和步骤3,实现自动控制交通信号灯。

5.系统优化方案:
-根据实际交通数据和研究结果,优化信号灯显示时间;
-利用流量监测技术,实时监测道路交通情况,进一步优化信号灯的控制策略;
-可以加入数据通信模块,将采集到的交通数据上传到中央交通管理系统,实现更智能化的交通信号灯控制。

基于单片机的智能交通红绿灯控制系统设计

基于单片机的智能交通红绿灯控制系统设计

基于单片机的智能交通红绿灯控制系统设计智能交通红绿灯控制系统是一种基于单片机的电子设备,用于智能化控制交通信号灯的工作。

本文将详细介绍如何设计一套基于单片机的智能交通红绿灯控制系统。

首先,我们需要选择适合的单片机作为控制器。

在选择单片机时,我们需要考虑其功能、性能和价格等因素。

一些常用的单片机型号有8051、AVR、PIC等。

我们可以根据具体的需求选择合适的单片机型号。

接下来,我们需要设计硬件电路。

智能交通红绿灯控制系统的硬件电路主要包括单片机、传感器、继电器和LED等组件。

传感器可以用来感知交通流量和车辆信息,继电器用于控制交通灯的开关,LED用于显示交通灯的状态。

在硬件设计中,我们需要将传感器与单片机相连接,以便将传感器获取的信息传输给单片机。

同时,我们还需要将单片机的控制信号传输给继电器和LED,以实现对交通灯的控制。

在软件设计中,我们需要编写相应的程序代码来实现智能交通红绿灯的控制逻辑。

首先,我们需要对传感器获取的信息进行处理,根据交通流量和车辆信息来确定交通灯的状态和切换规则。

例如,当交通流量较大时,可以延长绿灯亮起的时间;当有车辆等待时,可以提前切换到红灯。

此外,我们还可以在程序中添加自适应控制算法,用于根据交通流量动态调整交通灯的周期和切换时间,以进一步提高交通流量的效率和道路通行能力。

最后,我们需要将程序代码烧录到单片机中,并进行调试和测试。

在测试过程中,我们可以模拟不同的交通流量和车辆信息,以验证智能交通红绿灯控制系统的正常运行和控制效果。

综上所述,基于单片机的智能交通红绿灯控制系统设计主要包括硬件设计和软件设计两个方面。

通过合理的硬件电路设计和程序编写,可以实现对智能交通红绿灯的智能化控制,提高交通流量的效率和道路通行能力,实现交通拥堵的缓解和交通安全的提升。

基于单片机的智能交通灯控制系统的设计说明

基于单片机的智能交通灯控制系统的设计说明

基于单片机的智能交通灯控制系统的设计说明智能交通灯控制系统是一个重要的交通管理系统,在现代城市交通中起到了不可或缺的作用。

本文将介绍一个基于单片机的智能交通灯控制系统的设计说明,包括系统架构、工作原理和实现要点。

1.系统架构智能交通灯控制系统的基本架构包括三个关键部分:交通灯设备、控制器设备和通信设备。

交通灯设备:由红灯、黄灯和绿灯组成,根据交通信号控制规则进行颜色变换。

控制器设备:使用单片机作为控制器,接收输入信号并控制交通灯的状态转换,同时与通信设备进行数据交互。

通信设备:用于与其他交通信号系统进行通信,如与车辆传感器、行人信号系统等进行信息交换。

2.工作原理智能交通灯控制系统的工作原理如下:2.1接收输入信号系统通过车辆传感器、行人传感器等设备,实时接收交通流量和行人流量的信号。

2.2分析交通情况控制器设备对接收到的信号进行分析和处理,判断交通流量和行人流量的大小和方向。

2.3生成控制指令控制器根据交通信号控制规则,生成对应的控制指令,包括红灯、黄灯和绿灯的时间长度。

2.4控制交通灯状态控制器将生成的控制指令发送给交通灯设备,控制交通灯的状态进行转换。

2.5与其他系统进行通信控制器还可以与其他交通信号系统进行通信,实现信息交换和协同工作,如与行人信号系统进行同步。

3.实现要点在设计基于单片机的智能交通灯控制系统时,需要考虑以下几个要点:3.1硬件选择选择合适的单片机型号,具备足够的计算能力和接口功能,满足系统的需求。

同时,选用高亮度的LED灯作为交通灯设备,以确保可见性。

3.2软件设计编写控制器的软件程序,包括输入信号的处理、交通流量分析、控制指令生成和交通灯状态控制等功能。

同时,采用合适的算法和数据结构,提高系统的效率和稳定性。

3.3通信接口设计设计与其他交通信号系统进行通信的接口,包括通信协议和数据格式等。

确保系统能够与其他设备实现信息的交互和协同工作。

3.4安全保障考虑系统的安全性,采取必要的安全措施,如加密通信、备份控制器程序、实时监测和故障报警等,以保障系统的正常运行和数据的安全性。

单片机控制红绿灯系统方案

单片机控制红绿灯系统方案

单片机控制红绿灯系统方案1.系统硬件设计:-单片机:选用常见的51系列单片机,如AT89C51、STC89C52等,具有较好的性能和稳定性。

-红绿灯模块:选用集成了LED灯和数码管的模块,方便实现红绿灯的亮灭控制,并可通过数码管显示倒计时时间。

-电源模块:为单片机和红绿灯模块提供稳定的电源。

-按钮:设置用于手动切换信号灯状态的按钮。

-电路连接:通过电路连接单片机、红绿灯模块、按钮等硬件模块,并进行相应的引脚连接。

2.系统软件设计:-输入检测:使用单片机的输入引脚,检测按钮按下的信号,并对按钮事件进行中断处理。

-红绿灯控制程序:根据交通信号灯的状态进行控制,如绿灯亮时,红灯、黄灯灭;红灯亮时,绿灯、黄灯灭;黄灯亮时,其他灯均灭。

-倒计时程序:通过单片机的计时器功能实现倒计时功能,控制红绿灯的时间。

-灯光变化显示:根据交通信号灯的状态控制相应的LED灯点亮或熄灭,并通过数码管显示倒计时时间。

-数据保存:通过EEPROM等非易失存储器保存交通灯的灯色状态,以防断电后重启时灯色状态恢复初始值。

3.系统流程设计:-初始化系统:包括初始化单片机、红绿灯模块、按钮等硬件模块,以及设置倒计时时间和初始灯色状态。

-按钮事件处理:当检测到按钮按下时,中断触发相应的按钮事件处理函数,如切换信号灯状态或修改倒计时时间。

-倒计时处理:通过设置计时器的时间间隔来控制倒计时功能,当倒计时时间到达0时,自动切换信号灯状态。

-灯光控制:根据交通灯的状态,通过单片机的输出引脚控制相应的LED灯点亮或熄灭,并通过数码管显示倒计时时间。

-数据保存和恢复:通过EEPROM等非易失存储器保存交通灯的灯色状态,以便断电后系统重启能够恢复到上次的状态。

4.系统功能扩展:-增加红绿灯时间调整功能:通过按钮事件处理函数,实现手动调整红绿灯的时间间隔,以适应交通流量的变化。

-添加外部信号检测功能:通过输入引脚检测外部交通信号灯状态,并根据外部信号优化本系统的红绿灯控制策略。

基于单片机的交通灯控制系统设计与实现

基于单片机的交通灯控制系统设计与实现

基于单片机的交通灯控制系统需要包含以下组成部分:1.硬件设备组成:单片机、LED 灯、显示屏等硬件设备。

2.设计思路描述:交通灯控制系统的设计思路是基于定时器的,利用计数器和定时器来控制红绿灯的转换,同时通过按键检测实现手动控制。

3.程序设计:程序需要完成按键检测、信号灯控制和定时器计数等功能。

具体实现可以分为以下几步:(1) 根据硬件设备的引脚对应关系,定义各个引脚的控制方式和状态。

(2) 在程序中定义计时器和定时器,用于计时和设置红绿灯状态。

例如,计时器每隔一定时间就会触发定时器,设置红绿灯的状态,并且根据状态判断相应的亮灯和熄灯。

(3) 通过按键检测来实现手动控制,当检测到按键按下时,立即切换灯的状态,当再次按下时,又立即切换回之前的状态。

4.实现代码:下面是一个该系统的简单代码示例,供参考:#include <reg52.h>#define uint unsigned int#define uchar unsigned charsbit KEY1 = P3^0;//按键定义sbit RED = P2^2;//红灯定义sbit YELLOW = P2^1;//黄灯定义sbit GREEN = P2^0;//绿灯定义/*函数声明*/void initTimer0();void delay1ms(uint count);/*主函数*/int main(){initTimer0();/*初始化计时器*/while(1){if(KEY1 ==0){/*按键按下*/delay1ms(5);/*消抖*/if(KEY1 ==0){/*仍然按下*//*绿灯亮10s*/GREEN =1;delay1ms(10000);GREEN =0;/*黄灯亮3s*/YELLOW =1;delay1ms(3000);YELLOW =0;/*红灯亮7s*/RED =1;delay1ms(7000);RED =0;/*黄灯亮2s*/YELLOW =1;delay1ms(2000);YELLOW =0;}}}return0;}/*函数定义*/void initTimer0(){TMOD &=0xF0;TMOD |=0x01;TH0 =0xFC;TL0 =0x18;EA =1;ET0 =1;TR0 =1;}/*1ms延时函数*/void delay1ms(uint count){uint i,j;for(i=0;i<count;i++){for(j=0;j<125;j++){}}}/*计时器中断函数*/void timer0() interrupt 1{TH0 =0xFC;TL0 =0x18;}以上是一个简单的基于单片机的交通灯控制系统设计与实现示例。

单片机交通灯控制系统

单片机交通灯控制系统

单片机交通灯控制系统摘要:基于89C51单片机作为控制中心的交通灯控制系统,该系统有红、黄、绿三种信号灯显示功能,还有交通方向指示信号和倒计时功能。

关键词:单片机;控制系统;交通灯汽车工业的发展,带动着生产经济的发展,随之而来的是人们的购车热潮,越来越多的汽车增加了城市交通的负担,如何能够更有效的疏导交通已成为当今社会的一大难题,那么就需要有一套性能可靠,功能齐全,安全有效的交通灯控制系统,来合理指挥交通。

本文介绍的是一种基于89C51单片机作为控制中心的交通灯控制系统。

1系统控制的基本要求十字路口交通灯控制系统:东西方向、南北方向各有一组红、黄、绿三色信号灯,一组直行,左转,右转方向信号灯,有左转待停信号灯和一个时钟系统,时钟系统由两个LED组成,用于显示时间的变化。

具体要求为:1)要能够满足初始时东西向和南北向的红绿灯都亮红灯;2)在东西向路口亮绿灯40 s之后,转黄灯亮5 s,然后再转红灯亮40 s;3)南北向的红绿灯要能够与东西向相配合,再东西向绿灯亮的时候亮红灯,反之则亮绿灯;4)紧急事件发生之时,按下单脉冲按钮,则东西南北向都亮10 s红灯;5)东西向以及南北向的红绿灯时间要能够在LED显示器上显示;6)所有的上述时间设置,要能够满足根据车流量进行实时调节的需求。

2硬件电路的设计本次系统的硬件电路设计如图1所示。

如图1所示,本次构建的硬件系统包括了89C51单片机,接口芯片、交通灯以及时间显示几个重要的构成部分。

其中,89C51单片机是一个标注你的40引脚双列直插式的集成电路芯片,具有功能较强,功耗相对较低,而且能够适应恶劣环境下工作的特点,芯片内置了256KB数据存储以及4KB程序存储,非常适合本次构建的交通灯控制系统的实际需求。

接口芯片采用的是英特尔公司设计生产的8255A芯片,该芯片的满足I/O接口的实际需求,具有使用相对方便,通用性较强的特点,能够满足本系统设计的需求。

交通灯采用的是双色LED装置,包括了红色LED管芯以及绿色LED管芯,通过电平的加高或者调低,从而实现红灯、绿灯、黄灯的亮、灭。

基于单片机的智能交通信号灯控制系统设计

基于单片机的智能交通信号灯控制系统设计

基于单片机的智能交通信号灯控制系统设计智能交通信号灯控制系统是通过单片机来实现的一种智能化交通管理系统。

本文将介绍这个系统的设计原理和实现过程。

首先,我们需要明确设计目标。

智能交通信号灯控制系统旨在提高交通信号灯的运行效率,减少交通拥堵,并提供更安全、更流畅的交通体验。

系统应具备以下特点:可智能化控制信号灯的时间和状态,能够实时感知交通流量和通过车辆的情况,并根据这些信息灵活调整信号灯的绿灯时间。

接下来是硬件的选型和设计。

考虑到单片机的性能和成本,我们选用一款功能强大的低功耗单片机作为系统的核心处理器。

在选取单片机时,需要考虑其处理能力、存储容量、通信接口以及对外设控制的能力。

在交通信号灯控制系统设计中,需要采集和处理交通流量和通过车辆的数据。

为了实现这一功能,我们可以使用传感器来收集数据,如车辆检测器、红外线传感器等。

这些传感器将采集到的数据通过数字信号发送给单片机,单片机再根据这些数据进行相应的控制操作。

为了将控制信号传递给信号灯,我们需要选择合适的继电器或开关来实现。

当单片机判断需要更改信号灯状态时,它会通过输出端口控制继电器或开关的闭合与断开,从而打开或关闭相应的灯光。

在软件设计方面,我们需要编写适当的程序来实现交通信号灯控制功能。

这包括交通流量和通过车辆数据的处理,以及控制信号灯和继电器的操作。

可以使用C语言或汇编语言等编程语言来编写程序,并使用相应的开发工具进行调试和烧录。

在系统测试和调试阶段,我们需要模拟不同交通流量和车辆通过情况,验证系统对于不同情况下的灵活控制能力。

可以使用示波器、逻辑分析仪等工具来检测和分析系统的工作过程,确保系统的稳定性和可靠性。

总结起来,智能交通信号灯控制系统的设计包括硬件选型和设计、软件编写以及系统测试和调试三个方面。

通过合理选择硬件和编写适当的程序,可以实现交通信号灯的智能控制和优化,提高交通流畅性和交通安全性。

这个系统是智能交通管理的一个重要组成部分,有着广泛的应用前景。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计基于单片机的交通灯显示系统交通灯是日常生活中常见的自动控制产品,人们的日常出行及人身安全等都与交通灯有着密切的联系。

本文提出一种基于单片机的交通灯设计,系统包含三个功能模块:(1)交通灯LED显示模块,实时显示东西、南北两个路口红、黄、绿三种灯的状态;(2)定时器模块,中断计算绿灯剩余时间;(3)独立按键模块,分为紧急制动按钮和夜间模式按钮两个按钮;(4)LCD液晶显示模块,显示绿灯亮的剩余时间系统结构如下图所示:关键词:定时器;液晶显示;独立按键山东经济学院课程设计目录摘要...................................................................................................... 错误!未定义书签。

引言. (1)1.交通灯的概述 (2)1.1交通灯的结构 (2)1.2 工作原理 (3)1.3功能应用 (3)1.4工作流程 (4)2 交通灯显示系统组成 (5)2.1 定时器TR1模块的选择与设计 (5)2.2 LCD液晶显示模块的选择与设计 (5)2.3独立按键模块的选择与设计 (7)2.4LED模块的选择与设计 (8)3 实验结果演示 (9)结论 (10)参考文献.................................................................................................. 错误!未定义书签。

附录.. (11)1.原件明细表 (11)2.源程序清单 (11)致谢 (17)引言今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。

但这一技术在19世纪就已出现了。

1918年,又出现了带控制的红绿灯和红外线红绿灯。

带控制的红绿灯,一种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。

红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。

红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。

信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。

绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。

左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。

红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。

黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。

随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。

道路拥挤现象日趋严重,造成的经济损失越来越大,并一直保持大比例的增长。

现在交通系统已不能满足经济发展的需求。

由于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。

在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。

并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强度。

中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。

智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。

使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。

1.交通灯的概述从采用计算机控制到现代化的电子定时监控,交通信号灯在科学化、自动化上不断地更新、发展和完善。

但是,随着社会的不断进步,传统的交通灯的缺陷也日益出现,其中设计过于死板,达不到道路的最大通行效率是最明显的问题,红绿灯交替变换时间过于程式化。

随着我国经济的高速发展,人们对各种交通车辆的需求量不断增大,城市的交通拥护问题日益严重,目前,大部分城市的十字路口的交通控制灯,通常的做法是:事先经过车辆流量的调查,利用传统的方法设计好红绿灯的延时,然而,实际上的车流量是不断变化的,有的路口在不同的时间段车流量的大小甚至有很大的差异,所以说,统计的方法己不能适应迅速发展的交通现状。

本文设计一个基于中规模集成电路的交通灯,它具有四个模块:交通灯LED显示、定时器倒数计时和独立按键及LCD液晶显示功能。

本实验用六个LED灯模拟两个路口交通灯的显示,直观、明了。

1.1交通灯的结构本文设计的交通灯显示系统包括四个模块,分别是LCD倒计时显示、LED交通灯状态显示和独立按键功能,如图1.1所示。

图1.1 系统框图利用单片机的定时器定时的原理,结合LCD及LED显示电路、以及两个按键来设计交通灯。

将软、硬件有机地结合起来,使得系统能够正确地进行倒计时,同时能够正确地显示交通灯的状态及两个独立按键分别实现紧急制动状态下红灯点亮及夜间模式下黄灯闪烁的功能。

1.2 工作原理(1)交通灯显示系统共有四种状态:南北方向红灯时,东西方向先是绿灯后是黄灯;东西方向红灯时,南北方向先是绿灯后是黄灯;(2)单片机的数码管显示及LCD显示均与P0口的LED显示相冲突,所以用两个单片机,将主板中的P1口与次板中的P0口相连,让灯在次板中显示;设置东西方向红、黄、绿灯分别为dxr、dxy、dxg,南北方向红、黄、绿灯分别为nbr、nby、nbg,且等于0时灯亮,等于1时灯灭;(3)通过定时器1对绿灯进行15s绿灯倒数计时且同通过LCD进行显示,同时设置四个状态标志位,在定时中断中判断交通灯该进入四种状态中的哪个状态;(4)通过P3口定义两个独立按键S17和S18,且定义两个状态标志位分别为紧急制动按键和夜间模式按键。

分别实现红全灯亮且再次按下红灯全灭及黄灯闪烁的功能。

1.3功能应用(1)东西方向、南北方向均有红、黄、绿三种信号灯;(2)带紧急制动按钮,按钮按下,所有方向红灯亮;再次按下,恢复正常显示(3) 夜间模式按下,所有方向显示黄灯闪烁;(4) 实时提醒绿灯亮的剩余时间;国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。

加上一个倒计时的显示计时器来控制行车。

利用单片机控制技术.提出了软件和硬件设计方案,能够实现道路的最大通行效率。

1.4工作流程图1.4 工作流程图2 交通灯显示系统组成2.1 定时器TR1模块的选择与设计本设计利用51单片机的TR1定时器定时,实现精确计时。

工作原理:在作为定时器使用时,输出的时钟脉冲是由晶体振荡器的输出经过12分频后得到的,因此每一个机器周期定时器加1,定时器每接收一个输入脉冲的时间为1us。

图2.1定时器中断原理图2.2 LCD液晶显示模块的选择与设计通过调用液晶显示子函数,最终实现在液晶屏的第二行显示“num:时间”的功能。

void enable(uchar del) //1602命令函数{P0 = del;RS = 0;RW = 0;E = 0;delay();E = 1;delay();}void write(uchar del) //1602写数据函数{P0 = del;RS = 1;RW = 0;E = 0;delay();E = 1;delay();}void L1602_init(void) //1602初始化{enable(0x01);enable(0x38);enable(0x0c);enable(0x06);enable(0xd0);}void L1602_char(uchar hang,uchar lie,char sign) //1602字符显示输入模块{uchar a;//if(hang == 1) a = 0x80;if(hang == 2) a = 0xc0;a = a + lie - 1;enable(a);write(sign);}void L1602_string(uchar hang,uchar lie,uchar *p)//1602字符串显示输入{uchar a;//if(hang == 1) a = 0x80;if(hang == 2) a = 0xc0;a = a + lie - 1;enable(a);while(1){if(*p == '\0') break;write(*p);p++;}}图2.2 液晶显示屏连接原理图2.3独立按键模块的选择与设计void key(){if(S0==0 || S1==0){Delay1(20); //20毫秒软件防抖if(S0==0 || S1==0){if(S0 == 0) //所有方向红灯亮{flag=4;x=x+1;}if(S1 == 0) //黄灯闪烁flag=5; }}图2.3 独立按键电路图通过调用按键子程序实现如下功能: S18S19当S18按下后,出现的是黄灯闪烁,表示在黑夜是出现紧急情况当S19按下后,出现的是所有红灯亮,表示在黑夜是出现紧急情况2.4LED 模块的选择与设计通过设置六个不同的状态标志位来控制交通灯在不同情况下的显示状态,其中包括正常情况下的四中显示状态、紧急制动状态以及夜间模式状态。

图2.4 灯控制电路图3 实验结果演示图3.1 实验结果加电后,交通灯的初始状态是东西方向红灯亮、南北方向绿灯亮,液晶屏从15s 开始倒数计时;倒数到0时变为东西方向红灯亮、南北方向黄灯亮;而后南北方向红灯亮、东西方向绿灯亮,液晶屏从15s开始倒数计时;倒数到0时变为南北方向红灯亮、东西方向黄灯亮。

当按键S17按下时,两个方向红灯都亮,再次按下时,两个方向的红灯都灭;当按键S18按下时,两个方向的黄灯闪烁。

结论本设计模拟实现了交通灯的基本功能:当按下独立按键S19时,红灯全亮;当按下独立按键S18时,黄灯闪烁;液晶显示屏可以显示绿灯的15s倒计时。

东西南北方向交通灯通过控制标志位来改变状态。

由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,所以在这次课程设计过程中,我了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。

有一点是在设计过程中遇到的情况,就是自己认为行的通的电路,但实际接上却实现不了,而又一下找不出问题所在,只有在查了书上有关这方面的解释后才有所进展,因此耗费在这上面的时间很多。

总体感觉是:通过这次课程设计,加强了我们动手、思考和解决问题的能力。

附录1.原件明细表器件名称型号参数数量单片机ATC90C51RD+ 2 液晶显示板1602LCD 1 电源 1LED灯 6跳线8 2.源程序清单#include<reg52.h>unsigned char table[]={0,1,2,3,4,5,6,7,8,9};#define uchar unsigned charsbit dxr=P1^0; //东西三灯定义端口sbit dxy=P1^1;sbit dxg=P1^2;sbit nbr=P1^3; //南北三灯定义端口sbit nby=P1^4;sbit nbg=P1^5;sbit E=P2^7; //1602使能引脚sbit RW=P2^6; //1602读写引脚sbit RS=P2^5; //1602数据/命令选择引脚sbit S0=P3^4; //S17 紧急制动按钮sbit S1=P3^3; //S18 夜间模式char num;uchar count,flag,num1,x;//定义变量void init() //定时器初始化函数{TMOD=0x10;TH1=(65536-50000)/256;//0.05sTL1=(65536-50000)%256;EA=1;ET1=1;}void delay(){int i,j;for(i=0; i<=100; i++)for(j=0; j<=20; j++);}void Delay1(unsigned int del){unsigned int m,n;for(m=0; m<del; m++)for(n=0; n<1827; n++) ;}void led() //灯控制子程序{ if(flag==1) //东西方向绿灯{dxr=1;dxy=1;dxg=0;nbr=0;nby=1;nbg=1;}if(flag==0) //南北方向绿灯{dxr=0;dxy=1;dxg=1;nbr=1;nby=1;nbg=0;}if(flag==2) //东西方向黄灯{dxr=1;dxy=0;dxg=1;nbr=0;nby=1;nbg=1;}if(flag==3) //南北方向黄灯{dxr=0;dxy=1;dxg=1;nbr=1;nby=0;nbg=1;}if(flag==4) //所有方向红灯亮{ dxr=0;dxy=1;dxg=1;nbr=0;nby=1;nbg=1;}if(flag==5) //所有方向黄灯闪烁{ dxr=1;dxy=0;dxg=1;nbr=1;nby=0;nbg=1;Delay1(100);dxr=1;dxy=1;dxg=1;nbr=1;nby=1;nbg=1;Delay1(100);dxr=1;dxy=0;dxg=1;nbr=1;nby=0;nbg=1;Delay1(100);dxr=1;dxy=1;dxg=1;nbr=1;nby=1;nbg=1;Delay1(100);}}void key() //按键控制子程序{if(S0==0 || S1==0){Delay1(20); //20毫秒软件防抖 if(S0==0 || S1==0){if(S0 == 0) //所有方向红灯亮{flag=4;x=x+1;}if(S1 == 0) //黄灯闪烁flag=5; }}}//液晶显示屏子程序void enable(uchar del){P0 = del;RS = 0;RW = 0;E = 0;delay();E = 1;delay();}void write(uchar del){P0 = del;RS = 1;RW = 0;E = 0;delay();E = 1;delay();}void L1602_init(void){enable(0x01);enable(0x38);enable(0x0c);enable(0x06);enable(0xd0);}void L1602_char(uchar hang,uchar lie,char sign) {uchar a;//if(hang == 1) a = 0x80;if(hang == 2) a = 0xc0;a = a + lie - 1;enable(a);write(sign);}void L1602_string(uchar hang,uchar lie,uchar *p) {uchar a;//if(hang == 1) a = 0x80;if(hang == 2) a = 0xc0;a = a + lie - 1;enable(a);while(1){if(*p == '\0') break;write(*p);p++;}}void main() //主函数{ int i = 48;char a,b;num=20;S0=1;S1=1;L1602_init();L1602_string(2,1," num: ");init();P0=0xff;TR1=1;while(1){ if(num>=5){a=(num-5)/10;b=(num-5)%10;}L1602_char(2,7,table[a]+48);L1602_char(2,8,table[b]+48);key();led();if(flag==4&&x%2==0){flag=4;while(1){key();if(flag==4&&x%2!=0)break;} } }}void T1time() interrupt 3 //中断子程序{count ++;if (count ==20){ count=0;num--; }if(num<=20)flag=1;if(num==0){num=20;num1=~num1;}if(num1==0){ if(num<5)flag=3;//南北黄灯elseflag=0;}//南北绿灯;else//if(num1==1){if(num<5)flag=2;//东西黄灯elseflag=1;}//东西绿灯TH1=(65536-50000)/256;//0.05sTL1=(65536-50000)%256;}致谢这次课程设计能够顺利完成,得益于很多人的指导。

相关文档
最新文档