基于51单片机的智能交通灯系统

基于51单片机的智能交通灯系统 1
摘要 1
关键词 1
51 single-chip microcomputer-based intelligent traffic light system 2
Abstract 2
Keywords 2
1前言 3
2系统总体设计 3
2.1设计目标及方案选择 3
2.1.1设计目标 3
2.1.2方案选择 4
2.2系统总体框架 4
2.3交通灯运行模式设计 5
3系统硬件设计 5
3.1主控模块STC12C5A60S2 6
3.1.1单片机最小系统构成 7
3.1.2 STC12C5A60S2功能 7
3.2LED发光二极管控制交通灯设计 7
3.3GSM模块 8
3.3.1GSM模块的基本信息 8
3.3.2GSM模块的工作方式 9
3.4独立按键设计 9
3.4显示器件LCD12864简介及驱动电路 10
3.5AT24C02存储芯片介绍 11
4系统软件设计 12
4.1系统软件的构成及主流程 12
4.2交通灯执行程序设计 13
4.3串口通信程序设计 15
4.4GSM程序设计 16
4.5lCD12861液晶显示程序设计 20
4.6按键扫描程序设计 21
4.7at24c02程序 22
5系统调试 23
6总结 24


基于51单片机的智能交通灯系统
摘要
本文基于51单片机设计出了一款可以通过手机短信来实时远程操控的交通灯控制系统。本系统是由STC12C5A60S2单片机、LED发光二极管、LCD12864显示屏、独立按键以及GSM模块和外部存储模块组成。除了能够实现正常的交通灯控制外,还实现了以下的几个功能:倒计时显示各个路口剩余通行时间、通过按键对系统运行参数设置、能够使用手机短信对系统进行控制以及断电保存等。
关键词 GSM模块 交通控制 远程操控
51 single-chip microcomputer-based intelligent traffic light system
Abstract
Based on 51 single-chip design a cell phone through text messaging to real-time remote control of traffic light control system. This system is made up of STC12C5A60S2 single-chip, LED light emitting diode, LCD12864 display, independent key GSM module and external enclosures. In addition to the normal traffic light control, also implements the following features: displays the traffic junction remaining countdown time, by pressing the operating parameters of the system settings, using SMS to control systems and power save.
Keywords:51 single-chip ;GSM module; traffic lights
1前言
交通灯作为道路交通系统中不可或缺的一部分,承担着指挥交通的重要任务。对一个十字路口来说,在不同的时段,每个路口的车流量都会随时发生变化。但是现有的交通灯系统或多或少的存在着以下这个问题:各个路口的通行时间设定得相对固定,十字路口经常出现某个方向通行车辆较多而通行时间较短,车辆无法在规定时间内完成通行,而另一个方向可能通行车辆较少,而通行时间明显过长。从而造成了许多不必要的时间浪费,以及有可能形成交通堵塞。在大部分地区,城市的许多路口依然采用的是传统的定时固定的交通灯控制系统,这种系统势必会被淘汰。
在此

背景下,设计一款更为符合现代道路交通需求的交通灯控制系统非常有必要。针对现有的一些交通灯控制系统无法灵活地对各路口通行时间进行修改的问题,本次设计拟提出一种可以远程实时操控的交通灯控制系统的方案。
2系统总体设计
2.1设计目标及方案选择
2.1.1设计目标
在前言中,我们提出了要设计一款可以远程实时操控的交通灯控制系统,那么我们要开发的这个系统应该具备以下几个功能:
(一)根据设定的交通灯系统运行规则,实现稳定地控制交通灯的亮灭,以达到控制交通的目的。
(二)可以显示各个路口的通行状态以及倒计时间。
(三)具备紧急情况处理功能,即当进入紧急状态时,各个路口都不予通行,红灯都将亮起,当退出紧急状态时,系统将恢复进入前的状态。
(四)各个路口的通行时间可以通过按键进行设定。
(五)可以远程的对各路口通行时间进行查询和修改,也可以操控该系统进入和退出紧急状态。
(六)通行时间参数可以断电保存。当系统断电时,系统应该可以把此时的通行时间参数保存起来,当再次上电时,系统可以继续使用上一次所设置的各个路口的通行时间参数。
2.1.2方案选择
针对以上我们提出的设计目标,需要制定出一套可行的方案。下面,我们将对这个系统组成进行拆分,分步制定出最终的方案。
(一)主控MCU的选用。较为常用的有STM32系列单片机和51单片机等。基与我们对51单片机的使用方法较为熟悉,在软件开发方面具有较成熟的经验,以及在本系统中,51单片机作为主控单元已经足够完成所有的需求。于是,我们最终选择使用51单片机。在本系统中,使用的是STC12C5A60S2单片机。它是基于51内核开发的新型单片机,具有更快的处理速度、更大的运行内存等特点。所以选择该款单片机作为系统的主控MCU。
(一)模拟交通灯的选择。模拟交通灯选用的是LED发光二极管。使用红、黄、绿三色发光二极管,能够有效直观的模拟交通灯的显示。
(三)远程无线传输方式的选用。无线传输有多种方式,较为常见的有蓝牙、WiFi和GSM通信等。这些方式都能够实现无线传输数据。但是蓝牙通信和WiFi通信的方式都具有一些缺陷,那就是无线传输距离过短,较远距离传输时,信号容易不稳定。而GSM通信方式则不会产生这样的问题,利用成熟的GSM网络,使用GSM通信的方式能够实现超远距离的稳定传输数据。于是,GSM通信的远程控制方式是我们最终的选择。在本系统,在GSM模块方面,我们选用的是一个SIM800C模块。
(四)显示模块的选用。显示模块将在LCD1602和LCD12864之间做出选择。对比这两者发现,前者只

能显示英文和一些简单的符号,信息不够直观,不满足本系统的设计需求。而后者不仅可以显示LCD1602所能显示的字符,还可以显示中文字符。通过分析比较我们选择的是后者,即LCD12864液晶显示。
(五)存储器件的选择。考虑到本系统需要存储的数据量较小,拟选用一块可以保存2字节的EEPROM存储器AT24C02芯片,这已经足够满足系统的使用需求了。
2.2交通灯运行方案设计
本系统是一个交通灯的控制系统,那么就需要设计一个交通灯的运行模式方案。结合本系统的设计要求以及实际情况之后,本方案设计了一种交通灯的运行模式。在该模式下,系统共有4个通行状态,分别是:
(一) 南北方向直行通过。
(二) 南北方向左拐通过。
(三) 东西方向直行通过。
(四) 东西方向左拐通过。
在这4种通行状态中的其中一个执行时,其他3个方向均亮起红灯。系统预设了45s为红绿灯的交替变换的时间。在由绿灯转换为红灯时,中间会有3秒钟的黄灯亮起的过程。
系统上电时,即开始从通行状态(一) 开始执行,然后依次往下面的状态执行,循环往复的运行。
2.3系统总体框架
通过前面的分析,我们知道本系统是由51单片机作为控制单元,外接红、黄、蓝三色LED发光二极管电路作为交通灯显示,通过软件设计实现模拟交通灯的亮灭。利用中断走时函数可以实现准确地倒计时。液晶显示屏可以将系统的实时运行状态显示出来。而4个独立按键则可以对交通灯控制系统的参数进行设置。GSM模块与单片机通过串口通信使系统能够读取到接受到的短信,以此为根据来进行相应的操作。使用AT24C02芯片可以将设置的各路口通行时间参数保存起来。以上所说的各部分就组成了本系统的大体框架。
那么可以看出,整个系统的总体结构图如下:

图2.1 系统结构框图
综上所述,系统的总体设计方案已经确定。我们要做的就是根据既定的方案,进行具体的硬件电路设计和软件程序的实现。
3系统硬件设计
在系统总体设计方案确定之后,接下来就是要确定系统硬件的设计。根据总体的设计思路,设计出的系统硬件框图如图3.1所示:

图3.1 系统硬件总体框
可以看出,系统硬件主要是由主控单片机STC12C5A60S2,LCD12864液晶显示屏,SIM800GSM模块以及相关用于控制的按键和LED二极管等电路构成。下面,我们将来研究这些硬件的性能和通过它们搭建起来的电路系统。
3.1主控模块STC12C5A60S2
STC12C5A60S2单片机是国内STC公司生产的1T增强型单片机。它和8051的指令和管脚完全兼容。它的指令代码完全兼容传统8051,但是处理速度却是它的8~12倍。它的内部就自带高达60K FLASHROM应用程序空

间,它的工作电压大概在3.3V到5.5V。
其引脚图如图3.1所示:

图3.1STC12C5A60S2引脚图
本系统设计中我们的单片机引脚分配如下:
整个P0口作为LCD12864液晶屏的数据端口,P1.0~P1.3作为按键输入的端口。P1.4~P1.7和P.3.2~P3.7作为连接发光二极管的端口。P2.0和P2.1与AT24C02存储器进行连接。串口通信线RXD和TXD分别接到GSM模块的输出和输入端口,以完成单片机与GSM模块的通信。
系统采用的最小系统如图3.2示。它是由一个复位电路和一个晶振电路组成。晶振频率采用的是11.0592MHz。

图3.2
在整个系统中,STC12C5A60S2单片机主要的功能就是正常的驱动发光二极管按照要求实现亮灭,驱动LCD12864进行对应的显示,以及驱动GSM模块准确的接受来自用户的短信,以此来实现对应的操作。
3.2LED发光二极管控制交通灯设计
本系统发光二极管电路的设计电路原理图如图3.2所示。可以看到,本设计分别用两组发光二极管来控制东西、南北两个方向的交通。每组有5个二极管,其中红色与绿色LED灯各有两个,黄色LED灯一个。
对于每一个LED灯来说,它的正端接到5V的电源和一个1K的限流电阻,它的负端接到单片机的一个I/O口。当该I/O口的输出为逻辑1时,发光二级管的两端电压几乎相同,不会导通,也就不会发光;当端口输出为逻辑0时,发光二极管正负极间的正向电压较大,在电阻选取合适的情况下超过那个定值,也就会发光。

图示3.2LED灯连接示意图
这样的设计已经可以达到模拟控制一个十字路口的交通的要求。
3.3GSM模块
本系统的GSM模块的型号为SIM800C。SIM800C是芯讯通无线科技公司开发的一款GSM通信模块。
它是高性能工业级GSM/GPRS四频模块。它可以在四个频道下进行工作。它的工作频段是:GSM850/900/1800/1900MHz。模块可以实现基本的电话语音、SMS(短信、彩信)、GPRS数据传输功能。它的功能可以说是非常丰富。在本系统中,我们只需使用到它的短信功能。
SIM800C具有宽电压供电的特点。5V 到20V直流电源供电高效稳定,灵活适应不同供电电压的系统。本系统采用的是5V直流供电。模块还具有TTL串口,模块TTL自带有电平转换电路,兼容各类电平。可以轻松接入各种单片机或其它串口设备中。
单片机与GSM模块的连接方式如下图3.7所示

图3.3 GSM模块的连接图
模块的TTL串口支持3.3V/5.5V的系统,并且它的内部还设计了电平转换电路。这样就确保数据可以安全稳定的传输。sim800c模块的单片机串口的连接方式为TXD—RXD、RXD—TXD、GND—GND。即单片机与GSM模块的发送端和接受端相连接,并且两者之间需要共地连接。
单片机通过串口发送AT命令给sim800c模块可以实现对它的驱动。
3.4显

示器件LCD12864简介及驱动电路
本次设计采用的输出显示模块是LCD12864液晶显示屏。LCD12864液晶显示屏是一种在单片机设计中常用的输出显示模块。其名称12864就表示了该显示屏由128(水平方向)乘64(竖直方向)个点阵组成。其内部自带ASCII 字符库和中文汉字库。显示屏分为四行,每一行都能显示8个点阵汉字或是16个ASCII字符。带有及256乘点64点阵显示 RAM,可用来实现图像显示,功能强大。其主要的优点有:
(1)工作电压3.3V到5V之间,不需要负压,与单片机工作电压契合度高。
(2)功耗低。每一个字符的显示只需要几毫安的电流,在显示器件中耗能相对较小。
(3)液晶屏幕尺寸大,分为四行,可显示最多32个中文汉字或者64个ASCII 字符。它能显示内容的较多,可以满足系统需求。
(4)制作工艺较为成熟,成本较低的同时显示效果强劲。
LCD12864液晶显示屏原理图如图3.4所示。

图3.4LCD12864液晶屏原理图
3.5独立按键设计
在本设计中,根据需求我们需要设置几个功能键。本此设计采用的是独立式按键结构。它的一端接地,另一端连接到单片机的I/O口。基于本次设计按键数量需求不多,使用独立按键的设计相较于另一种矩阵键盘的设计会比较方便实用。
根据设计的需求,本系统需要使用按键对交通灯控制系统进行修改通信时间参数以及控制系统进入紧急模式。经过分析,本系统共设计了4个独立按键来完成这些需求。
如图3.5所示。4个接触式按键K1、K2、K3、K4的一端分别连接到单片机的P1.0、P1.1、P1.2、P1.3口,而另一端接地。

图3.5独立按键设计原理图
各个按键的功能如下所述:
K1和K2按键是在系统进入调节模式时对各路口的通行时间进行设置的按键,按下K1按键使通行时间参数增加,按下K2按键可以使通行时间参数减小,两个按键均是按下一次增减1s,通行时间参数是设置范围是:1~99。
K3按键是控制系统进入调节模式的按键,本系统共有4个模式的通行时间设置,分别为:南北直行时间设置、南北左拐时间设置、东西直行时间设置、东西左拐时间设置。
K4按键是紧急状态按键。它可以控制系统进入和退出紧急状态。
3.6AT24C02存储芯片介绍
为实现断电后对交通灯控制系统的通行参数等数据进行保存的功能,设计中使用了一片at24C02存储芯片进行断电保存。at24C02存储芯片是一种电可擦可编程存储芯片。它基于I2C传输协议制作。它的内部含有8位的256个字节的存储空间。它的工作电压范围是从1.8V到5.5V之间。24C02存储芯片体积小、功耗低、支持双向数据传输协议和硬件写入保护。读写数据次数可高达到十万次以上。内部存储的数据信息可以保存

相关文档
最新文档