3986.net
小网站 大容量 大智慧
当前位置:首页 >> 信息与通信 >>

单片机控制的交通灯控制系统设计

电子设计综合训练报告

单片机控制的交通灯控制系统设计

2010 年 6 月 8 日

-1-

摘要
本系统由单片机系统、键盘、LED 显示、交通灯演示系统组成。系统包括人 行道、左转、右转、以及基本的交通灯的功能。系统除基本交通灯功能外,还具 有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具 体情况手动控制等功能。 本设计是单片机控制的交通灯控制系统。 单片机即单片微型计算机。 RAM, 由 ROM,CPU 构成,其集定时、计数和多种接口与一体的微控制器。它体积小、成 本低、功能强,广泛的应用于只能产业和工业自动化上。而 51 系列单片机是各 类单片机中最为典型和富有代表性的一种。 本设计的意义在于通过具体控制系统的设计, 掌握微机控制系统设计的一般 方法和处理问题的思路,特别是一些常用的技术手段。使大家能在实践教学环节 中,积累设计经验,开拓思维空间,全面提高个人的综合能力。 红绿灯控制是智能交通系统的一个重要部分, 本文给出了一个用单片机控制 的简易交通红绿灯自动控制系统。该系统适用于十字路口,并对放行和禁行时间 进行倒计时显示(秒) 。 在车辆通行繁忙的十字交叉路口设置的交通灯控制系统,其特点是:道路较 窄而车流量较大,主干道,支干道的车辆通行时间不等, ,同时设有道路应急控 制。具体的情况是:在正常的情况下,东西支干道通行时间为 20 秒,南北主干 道通行时间为 30 秒,每个方向在绿灯转为红灯时,要求黄灯先亮 5 秒钟,才能 变换运行车道。并且能够在人工监控状态下,如果一道有车而另一道无车,交通 灯控制系统能立即让有车道放行。而且有紧急车辆要求通过时,系统要能禁止普 通车辆通行。 关键字:单片机 红绿灯 AT89S52 Proteus 仿真

-2-

目录
1 概述 1.1 课题名称……………………………………………………………………4 1.2 设计要求……………………………………………………………………4 1.3 设计意义……………………………………………………………………4 2 系统总体方案及硬件设计 2.1 芯片的选择与简单介绍……………………………………………………5 2.2 系统方框图…………………………………………………………………7 2.3 工作原理……………………………………………………………………7 2.4 电路原理图…………………………………………………………………8 2.5 单片机最小系统……………………………………………………………9 2.6 时间显示电路…………………………………………………………… 10 2.7 交通灯电路……………………………………………………………… 10 3 软件设计 3.1 整体系统分析…………………………………………………………… 3.2 相关参数计算…………………………………………………………… 3.3 程序流程图……………………………………………………………… 4 Proteus 软件仿真 4.1 系统仿真电路图………………………………………………………… 4.2 仿真结果分析…………………………………………………………… 5 课程设计体会 参考文献 附 1:源程序代码 附 2:系统原理图 11 11 12 13 15

-3-

1 概述
1.1 课题名称 单片机控制的交通灯控制系统设计 1.2 设计要求 1)南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的 车辆交替运行,主干道每次通行时间都设为 30 秒、支干道每次通行间为 20 秒, 时间可设置修改; 2)在绿灯转为红灯时,要求黄灯先亮 5 秒钟,才能变换运行车道; 3)黄灯亮时,要求每秒闪亮一次; 4)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时 间都用显示器进行显示(采用计时的方法); 5)一道有车而另一道无车(实验时用开关 K0 和 K1 控制),交通灯控制 系统能立即让有车道放行; 6)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B 道均为红灯, 紧急车由 K2 开关模拟。 1.3 设计意义 国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示 灯。加上一个倒计时的显示计时器来控制行车。对于一般情况下的安全行车,车 辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点: 1.两车道的车辆轮流放行时间相同且固定, 在十字路口,经常一个车道为 主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时 间应该短些。 2.没有考虑紧急车通过时,两车道应采取的措施,臂如,消防车执行紧急 任务通过时,两车道的车都应停止,让紧急车通过。 基于传统交通灯控制系统设计过于死板,红绿灯交替是间过于程式化的缺 点,智能交通灯控制系统的设计就更显示出了它的研究意义,它能根据道路交通 拥护,交叉路口经常出现拥堵的情况。利用单片机控制技术.提出了软件和硬件 设计方案,能够实现道路的最大通行效率。

-4-

2 系统总体方案及硬件设计
2.1 芯片的选择与简单介绍 主控芯片采用 AT89S52 单片机(其管脚图如图-1 所示)。单片机,亦称单片微型计算机。它是把中央处 理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、 输入/输出端口(I/0)等主要计算机功能部件都集成在 一块集成电路芯片上的微型计算机。计算机的产生加快 了人类改造世界的步伐,但是它毕竟体积大。于是,微 型计算机(即单片机)在这种情况下诞生了。纵观生活 的各个领域,从导弹的导航装置,到飞机上各种仪表的 控制,从计算机的网络通讯与数据传输,到工业自动化 过程的实时控制和数据处理,以及我们生活中广泛使用 的各种智能 IC 卡、 电子 宠物等, 这些都离不开单片机。
(图-1)

单片机以体积小、功能全、性价比等诸多优点而独具特色,在工业控制、尖 端武器、通信设备、家用电器等嵌入式应用领域中独占鳌头。如果说 C 语言程序 设计课程设计的基础课,那么单片机以其系统硬件构架完整、价格低廉、学生能 动手等特点,成为工科学生硬件设计基础课。 MCS-51 单片机是指由美国 INTEL 公司(大名鼎鼎的 INTEL)生产的一系列单 片机的总称,这一系列单片机包括了好些品种,如 8031,8051,8751,8032, 8052,8752 等,其中 8051 是最早最典型的产品,该系列其它单片机都是在 8051 的基础上进行功能的增、 改变而来的, 减、 所以人们习惯于用 8051 来称呼 MCS-51 系列单片机。 8051 单片机包含中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、 定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总 线和控制总线等三大总线,现在我们分别加以说明: 1.中央处理器(CPU) 中央处理器(CPU)是整个单片机的核心部件,是 8 位数据宽度的处理器,能 处理 8 位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工 作,完成运算和控制输入输出功能等操作。 2.数据存储器(RAM)

-5-

8051 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元, 它们是 统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用 于存放用户数据,所以,用户能使用的 RAM 只有 128 个,可存放读写的数据,运 算的中间结果或用户定义的字型表。 3.程序存储器(内部 ROM): 程序存储器用于存放程序和固定不变的常数等。 通常采用只读存储器, 且其 又多种类型,在 89 系列单片机中全部采用闪存。AT89S51 内部配置了 4KB 闪存。 3.1.定时/计数器(ROM): 定时/计数器用于实现定时和计数功能。 AT89S51 共有 2 个 16 位定时/计数器。 3.2.并行输入输出(I/O)口: 8051 共有 4 组 8 位 I/O 口(P0、 P1、P2 或 P3),用于对外部数据的传输。每 个口都由 1 个锁存器和一个驱动器组成。 它们主要用于实现与外部设备中数据的 并行输入与输出,有些 I/O 口还有其他功能。 4.全双工串行口: A89S51 内置一个全双工串行通信口,用于与其它设备间的串行数据传送, 该串行口既可以用作异步通信收发器,也可以当同步移位器使用。 5.时钟电路: 时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。 6.中断系统: 中断系统的作用主要是对外部或内部的终端请求进行管理与处理。AT89S51 共有 5 个中断源,其中又 2 个外部中断源和 3 个内部中断源。

-6-

7.定时/计数器 8051 有两个 16 位的可编程定时/计数器, 以实现定时或计数产生中断用于控 制程序转向。 2.2 系统方框图



源 交通灯时间 显示部分

时钟电路

AT89S52

复 电

位 路

交通灯

2.3 工作原理 由软件设置交通灯的初始时间,南北方向通行30秒,东西方向通行20秒,数 码管采用动态显示,P0口送字形码,P2口送字位选通信号,通过单片机的P1口控 制各种信号灯的燃亮与熄灭。采用中断方式实现按键的功能。
东西方向 EW 南北方向 NS

G

Y

R

G

Y

R

系统控制 电路

车辆检测
-7-

紧急转换

2.4 电路原理图
RP1
1 2 3 4 5 6 7 8 9

C2
33p

X1
CRYSTAL 19

U1
XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17

RESPACK-8

C3 33p
18

XTAL2

C1
9 100n RST

R13
220R

R14

1k 29 30 31

PSEN ALE EA

D1 D12 D5
LED-GREEN LED-YELLOW LED-RED

1 2 3 4 5 6 7 8

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51

R1 R2 R3
470R 470R 470R

D4 D9 D8

R7

R10 R11 470R R12 470R
470R

D3
LED-GREEN

470R LED-GREENR8

D11 D6

R9 470R LED-YELLOW
470R LED-RED

时间设定 紧急情况 返回 支干道通行

K4 K2 K3 K1

LED-YELLOW LED-RED

R4 R5 R6
470R 470R 470R

D2 D10 D7
LED-GREEN LED-YELLOW LED-RED

主干道通行 K0

(图-2)

2.5 单片机最小系统

-8-

单片机最小系统以80S52为核心,外加时钟和复位电路,电路结构简单,抗干扰能 力强,成本相对较低,非常符合本设计的所有要求。89C51单片机系列是MCS-51系 列的基础上发展起来的,是当前8位单片机的典型代表,采用CHMOS工艺,即互补金 属氧化物的HMOS工艺, CHMOS是CMOS和HMOS的结合,具有HMOS高速度和高密度的 特点,还具有CMOS低功耗的特点。 时钟电路在单片机的外部通过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微 调电容,构成稳定的自激振荡器.本系统采用的为12MHz的晶振,一个机器周期为 1us,C2,C3为30pF。 复位电路分为上电自动复位和按键手动复位,RST引脚是复位信号的输入端, 复位信号是高电平有效.上电自动复位通过电容C1和电阻R4来实现,按键手动复 位是图中复位键来实现的。

(图-3)

2.6 时间显示电路

(图-4)

因为系统要求南北和东西方向的信号灯时间不一样,所以就利用单片机的 P0 口送出数据的段码,位选信号用 P2 口送出,用动态扫描的方法显示东西、南 北的倒计时间(如图-4 所示)。 数码管使用共阴数码管,需要接上470欧上拉电阻以提供足够大的电流来驱

-9-

动数码管,数码管的每段的电流是约10毫安。 2.7 交通灯电路 本设计利用单片机的 p1 口来驱动和控制各种信号灯的燃亮和燃亮时间,在 实际中,交通灯的信号灯需要用高电压控制,在这里我们只是模拟一下它的控制 信号,所以我们就只用单片机的信号引脚直接来控制发光二极管(如图-5 所示)

3 软件设计 (图-5)
3.1 整体系统分析 总体流程图(实现各种状态间的转换):

东西绿灯 南北红灯

东西黄灯闪 南北红灯亮

东西红灯亮 南北黄灯闪

东西红灯 南北绿灯

- 10 -

3.2 相关参数计算 T0 的计数初值:X=216-12*50*1000/12=15536=3CB0H 3.3 程序流程图

(图-6)
- 11 -

4 Proteus 软件仿真
4.1 系统仿真电路图 1.交通灯控制系统正常运行时仿真图(见图-7)。
RP1
1 2 3 4 5 6 7 8 9

C2
33p

X1
CRYSTAL 19

U1
XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17

RESPACK-8

C3 33p
18

XTAL2

C1
9 100n RST

R13
220R

R14

1k 29 30 31

PSEN ALE EA

D1 D12 D5
LED-GREEN LED-YELLOW LED-RED

1 2 3 4 5 6 7 8

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51

R1 R2 R3
470R 470R 470R

D4 D9 D8

R7

R10 R11 470R R12 470R
470R

D3
LED-GREEN

470R LED-GREENR8

D11 D6

R9 470R LED-YELLOW
470R LED-RED

时间设定 紧急情况 返回 支干道通行

K4 K2 K3 K1

LED-YELLOW LED-RED

R4 R5 R6
470R 470R 470R

D2 D10 D7
LED-GREEN LED-YELLOW LED-RED

主干道通行 K0

(图-7)

2.交通灯南北方向绿灯向红灯转变,黄灯闪烁时仿真图(见图-8)。

图-8 - 12 -

4、交通灯东西方向向南北方向转变,黄灯亮,见(图-9)。

(图-9)

4.2 仿真结果分析 仿真实验实现南北方向车道和东西方向车道两条交叉道路的车辆交替运行, 南北方向(主干道)每次通行时间设为 30 秒、东西方向通行时间设为 20 秒,时 间可以在程序中修改。同时能够实现红灯、黄灯、绿灯状态转换,红绿灯转换时 间为 5 秒,转黄期间黄灯亮。可以准确显示每个状态所剩余的时间,按下禁行普 通车辆键, 东西南北方向都亮红灯; 按下南北放行键, 南北绿灯亮, 东西红灯亮; 按下东西放行键,东西绿灯亮,南北红灯亮;任何时候按下返回键,此系统都将 回到初始状态,当紧急状况出现时,按下紧急开关,可实现主干道和支干道全部 禁止通行,允许紧急车辆安全通行,实现了课程设计的要求。

- 13 -

5 课程设计体会
本系统就是充分利用了 AT89S52 芯片的 I/O 引角。系统统采用 MSC-51 系列 单片机为中心器件来设计交通灯控制器, 实现了能根据实际车流量通过单片机芯 片的 P1 口控制红、黄、绿灯的燃亮与熄灭;P0 口外接数码管来显示各个信号灯 的时间。系统设计简便、实用性强、操作简单、程序设计简便。系统不足之处不 能控制车的左、右转、以及自动根据车流改变红绿灯时间等。这是由于本身地理 位子以及车流量情况所定,如果有需要可以设计扩充原系统来实现。 通过这次课程设计, 我得到了一次用所学知识与技能分析和解决问题的可贵 的锻炼机会,使我深刻邻会了单片机的基本原理和单片机应用系统开发的过程。 在常用编程设计思路技巧的掌握方面都向前迈了一大步, 为日后成为合格的应用 型人才打下良好的基础。 通过本次的毕业设计,受益匪浅,充分意识到自己所学的东西还是非常有限 的,不过通过设计,还是学到了一些书本上没有学到的东西,为自己以后的工作 奠定了一定的基础。在撰写本文的过程中,深切地体会到当今科技技术飞速的发 展,特别是单片机的发展使得许多技术难题迎刃而解,作者坚信,随着科学技术 的不断发展,单片机技术的应用将是前途无量。 由于本设计涉及到的知识面比较广,再加上本人在相关领域知识的缺乏,所 以本设计的性能指标还是有待改善的,然而,模拟仿真证明了本设计的设计思想 和设计方法是现实可行的。

- 14 -

参考文献
[1]余发山 王福忠 单片机原理及应用技术 [M].徐州:中国矿业大学出版社 2008. [2]吴黎明 单片机原理及应用技术[M].北京:科学出版社 2003. [3]刘乐善 微型计算机接口技术及应用[M].北京: 华中科技大学出版社 2004. [4] 李伯成.基于MCS-51单片机的嵌入式系统的设计[M].北京: 电子工业出版社, 2004. [5] 吴黎明, 王桂棠, 洪添胜, 等. 单片机原理及应用技术[ M ] . 北京: 科学 出版社,2005. [6] 韩 克 , 柳 秀 山 , 等 . 电 子 技 能 与 E D A 技 术 [M]. 广 州 : 暨南 大 学 出 版 社,2004.

- 15 -

附1:源程序代码
/*#include<REG51.H> */ { /*12MHz */ TMOD=0x01; /**计数器用模式1, 为16位计数器*****/ TH1=(65536-50000)/256; /*0x3C*/ TL1=(65536-50000)%256; /*0xB0*//*计50000个数,用时50ms*/ IT0=1;/*外部中断0为边沿触发 方式*/ ET0=1;/*允许T0中断*/ TR0=1;/*启动计数器*/ EA=1;/*CPU开放总中断*/ EX0=1;/*允许外部中断0中断,即 允许响应端口P3^2(K4)中断*/ EX1=1;/*允许外部中断1中断,即 允许响应端口P3^3(K2)中断*/ } /*中断0处理程序*/ void int0(void) interrupt 0 { EA=0;/*CPU禁止响应一切中断*/ P1=0xDB,P0=a[0];/* 东 西 南 北 方 向均红灯亮,P0口输出0*/ for(;;)/*无条件循环*/ { P2=b[0],P0=a[(SN_G+Y)%10];/* 南 北 方向数码管显示可通行时间的个位*/ delay(5); /*延时*/

#include<AT89X51.H> #define uchar unsigned char /*定 义字符串类型为无符号型*/ uchar code a[10]={0x3F,0x06,0x5B,0x4F,0x66, 0x6D,0x7D,0x07,0x7F,0x6F}; uchar code b[4]={0x0D,0x0E,0x07,0x0B}; /****P2口,低有效*/ uchar code c[4]={0xDE,0xDD,0xF3,0xEB}; /****P1口,低有效*/

char SN=25,WE=30; char SN_G=25,WE_G=15,Y=5; uchar i,k=0,count=0; void delay(uchar t);/*定义函数*/ void light(); /*定义函数*/ void led(); /*定义函数*/ sbit */ sbit */ sbit */ sbit */ sbit */ K0=P3^7;/*开关K0接P3^7管脚 K1=P3^6;/*开关K1接P3^6管脚 K2=P3^3;/*开关K2接P3^3管脚 K3=P3^5;/*开关K3接P3^5管脚 K4=P3^2;/*开关K4接P3^2管脚

/*程序初始化*/ void init(void)
- 16 -

P2=b[1],P0=a[(SN_G+Y)/10];/* 南 北 方向数码管显示可通行时间的十位*/ delay(5); /*延时*/

while(!K1)/* 当 松 P2=b[2],P0=a[(WE_G+Y)%10];/* 东 西 方向数码管显示可通行时间的个位*/ delay(5); /*延时*/ 开K1开关时,跳出空循环,执行后面 的程序*/ { } WE_G++;/*东西方向绿 灯时间+1*/ if(WE_G==100) WE_G=0;/* 由 于 使 用 的是两位数码管,当东西方向绿灯时 间加到100后清零*/ } } /*返回*/ if(K3==0) /*P3^5=0*/ { delay(10);/*延时, 把抖 动的时间抛掉*/ if(K3==0) { while(!K3)/* 当 松 开K3开关时,跳出空循环,执行后面 的程序*/ { } count=0;/*清零*/ k=0;/*南北方向通车, 东西方向不通车*/ SN=SN_G,WE=SN_G+Y;/*南北方向显示 时间为南北方向绿灯通行时间,东西 方向显示时间为南北方向绿灯通行时 间加黄灯闪亮时间*/ light();/* 调 用 交 通灯函数*/ led(); /*调用数码管 函数*/ EA=1; /*CPU开放总中
- 17 -

P2=b[3],P0=a[(WE_G+Y)/10];/* 东 西 方向数码管显示可通行时间的十位*/ delay(5); /*延时*/ /*设置南北方向通行时间*/ if(K0==0) /*P3^7=0*/ { delay(10);/*延时,把抖 动的时间抛掉*/ if(K0==0) { while(!K0)/* 当 松 开 K0开关时,跳出空循环,执行后面的 程序*/ { } SN_G++;/*南北方向绿灯 时间+1*/ if(SN_G==100) SN_G=0;/*由于使用的 是两位数码管,当南北方向绿灯时间 加到100后清零*/ } } /*设置东西方向通行时间*/ if(K1==0) /*P3^6=0*/ { delay(10);/*延时,把 抖动的时间抛掉*/ if(K1==0) {

断*/ break;/*跳出*/ } } } } /*中断1处理程序*/ void int1(void) interrupt 2 { P1=0xDB,P0=a[0];/* 东 西 南 北 方 向均红灯亮,P0口输出0*/ EA=0;/*CPU禁止响应一切中断*/ TR0=!TR0;/*计数器停止工作*/ } for(;;)/*无条件循环*/ { /*数码管扫描程序,*/ P2=b[0];/*显示南北方向个位 */ delay(5);/*延时*/ P2=b[1];/*显示南北方向十位 */ delay(5);/*延时*/ P2=b[2];/*显示东西方向个位 */ delay(5);/*延时*/ P2=b[3];/*显示东西方向十位 */ delay(5);/*延时*/ 数*/ /*返回*/ if(K3==0) { delay(10);/*延时, 把抖动 的时间抛掉*/
- 18 -

if(K3==0) { while(!K3)/* 当 松 开 K3 开关时,跳出空循环,执行后面的程 序*/ { } EA=1;/*CPU 开 放 总 中 断 */ TR0=!TR0;/* 启 动 计 数 器 */ break;/*跳出*/ } } } /*键盘程序*/ void key() { /*南北有车而东西无车*/ if(K0==0) /*K0=0*/ { delay(10);/*延时,把抖动的 时间抛掉*/ if(K0==0) { while(!K0)/*当松开K0开 关时,跳出循环,执行后面的程序*/ { light();/*调用交通灯 函数*/ led(); /* 调用数码管函 } count=0;/*清零*/ k=0;/*南北方向通车,东 西方向不通车*/ SN=SN_G,WE=SN_G+Y;/* 南

/*P3^5=0*/

北方向显示时间为南北方向绿灯通行 时间,东西方向显示时间为南北方向 绿灯通行时间加黄灯闪亮时间*/ light();/*调用交通灯函 数*/ led(); /*调用数码管函数 */ } } /*南北无车而东西有车*/ if(K1==0) /*K1=0*/ { delay(10);/*延时,把抖动的 时间抛掉*/ if(K1==0) { while(!K1)/*当松开K1开 关时,跳出循环,执行后面的程序*/ { light();/*调用交通灯 函数*/ led(); /* 调用数码管函 数*/ } count=0;/*清零*/ k=2;/*南北方向不通车, 东西方向通车*/ SN=WE_G+Y,WE=WE_G;/* 南 北方向显示时间为东西方向绿灯通行 时间加黄灯闪亮时间,东西方向显示 时间为东西方向绿灯通行时间*/ light();/*调用交通灯函 数*/ led(); /*调用数码管函数 */ } } }
- 19 -

/*定时函数*/ void time1(void) interrupt 1 { TH0=0x3c; TL0=0xb0;/* 计50000个数,用时 50ms*/ count++; /*自增运算*/ if(count>=20)/* 当 count 大 于 或 等于20时,历时1s,执行程序*/ { SN--;/*自减运算*/ WE--;/*自减运算*/ count=0;/*清零*/ if(SN==0||WE==0)/*当SN=0或 者WE=0时,执行程序*/ { k++;/*自增运算*/ if(k>3)/*当k>3时,执行 程序*/ k=0;/*清零*/ switch(k)/*switch 语 句 */ { case 0:SN=SN_G,WE=SN_G+Y;break;/* 南 北 方向显示时间为南北方向绿灯通行时 间,东西方向显示时间为南北方向绿 灯通行时间加黄灯闪亮时间*/ case 1:SN=Y,WE=Y;break; /*东西 南北方向显示时间均为黄灯闪亮时间 */ case 2:SN=WE_G+Y,WE=WE_G;break;/* 南 北 方向显示时间为东西方向绿灯通行时 间加黄灯闪亮时间,东西方向显示时 间为东西方向绿灯通行时间*/

case 3:SN=Y,WE=Y;break; /*东西 南北方向显示时间均为黄灯闪亮时间 */ } } } } /*延时t毫秒*/ void delay(uchar t) { uchar i; for(t;t>0;t--) { for(i=2000;i>0;i--) {} }

} else if(P1==c[3]&&count==0)/* 当 东 西方向亮黄灯且count=0时,执行程序 */ { TH1=(65536-300000)/256; TL1=(65536-300000)%256;/* 延时50ms*/ P1=0xFB;/*南北方向亮红灯, 东西方向黄灯熄灭*/ } } /*数码管函数*/ void led() { P2=b[0],P0=a[SN%10];/* 显 示 南 北方向个位*/ delay(5);/*延时*/ P2=b[1],P0=a[SN/10];/* 显 示 南 北方向十位*/ delay(5);/*延时*/ P2=b[2],P0=a[WE%10];/* 显 示 东 西方向个位*/ delay(5);/*延时*/ P2=b[3],P0=a[WE/10];/* 显 示 东 西方向十位*/ delay(5); /*延时*/ } /*主函数*/

} /*交通灯函数*/ void light() { P1=c[k];/* 交通 灯对应着 k的值 变化*/ if(P1==c[1]&&count==0)/* 当 南 北方向亮黄灯且count=0时,执行程序 */ { TH1=(65536-50000)/256; TL1=(65536-50000)%256;/* 延时50ms*/ P1=0xDF;/* 南 北 方 向 黄 灯 熄 灭,东西方向亮红灯*/ void main(void) { init();/*调用程序初始化函数*/ for(;;)/*无条件循环*/
- 20 -

{ key();/*调用键盘程序*/ light();/*调用交通灯函数*/ led(); /*调用数码管函数*/ } }

- 21 -

附2:系统原理图

RP1
RESPACK-8

南北路

1

C2
33p

X1
CRYSTAL 19

U1
XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17

C3 33p
18

XTAL2

C1
9 100n RST

R13
220R

R14

1k 29 30 31

PSEN ALE EA

2 3 4 5 6 7 8 9

D1 D12 D5
LED-GREEN LED-YELLOW LED-RED

1 2 3 4 5 6 7 8

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51

K4 K2 K3 K1

时间设置 紧急情况 返回

东西路

R1 R2 R3
470R 470R 470R

支干道同行/支干道+1 主干道通行/主干道+1

D4 D9 D8

R7

R10 R11 470R R12 470R
470R

D3
LED-GREEN

K0

470R LED-GREENR8

D11 D6

R9 470R LED-YELLOW
470R LED-RED

LED-YELLOW LED-RED

R4 R5 R6
470R 470R 470R

D2 D10 D7
LED-GREEN LED-YELLOW LED-RED

- 22 -


推荐相关:

基于单片机的交通灯控制系统设计.doc

基于单片机的交通灯控制系统设计 - 兰州文理学院学生毕业论文 题 目:基于单片机的交通灯控制系统 作 者: 指导老师: 电子信息工程 学院 电子信息工程技术 专业 三年...


单片机控制交通灯控制系统设计.doc

单片机控制交通灯控制系统设计 - . 长江学院课程设计报告 课程设计题目: 交通信号灯控制系统 制作设计 2011 年 06 月 06 日 单片机控制交通灯控制系统设计 摘要 ...


基于单片机的交通灯控制系统设计_图文.doc

基于单片机的交通灯控制系统设计 - 单片机课程设计报告 实习项目: 十字路口交通灯控制 系别: 物理与电气工程系 专业: 电气工程及其自动化 学号: 姓名: 指导老师: ...


基于51单片机的交通灯控制系统设计(含程序、PCB图).pdf

交通灯| 单片机| 控制系统|基于51单片机的交通灯控制系统设计(含程序、PCB图)_电子/电路_工程科技_专业资料。 您的评论 发布评论 用户评价 这篇关于单片机的文档...


基于单片机交通灯控制系统设计.doc

基于单片机交通灯控制系统设计 - 基于单片机的交通灯控制系统设计 前言 交通是经


单片机设计方案交通灯控制系统设计方案.doc

单片机设计方案交通灯控制系统设计方案 - 单片机课程设计报告 交通灯控制系统设计 摘 要 本设计是针对交通灯系统的设计,由单片机 AT89C51(实物用 AT89S52)...


单片机课程设计交通灯控制系统设计.doc

单片机课程设计交通灯控制系统设计 - 本科课程设计报告 单片机课程设计报告 交通灯控制系统设计 第 - 1 - 页共 24 页 河南理工大学本科课程设计报告 摘 要 ...


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

基于单片机的智能交通灯控制系统设计与实现 - 此论文还为录入论文库,所以可以放心“使用”! 关键词:毕业论文、单片机、交通灯、毕业设计、智能、红绿灯


单片机控制交通灯系统设计.doc

单片机控制交通灯系统设计 - 摘要 本系统由单片机系统、键盘、LED 显示、交通灯演示系统组成。系统包括 人行道、左转、右转、以及基本的交通灯的功能。系统除基本...


基于单片机的交通灯控制系统设计毕业论文_图文.doc

基于单片机的交通灯控制系统设计毕业论文 - 基于单片机的交通灯控制系统设计 I


基于51单片机的交通灯控制系统设计.doc

基于51单片机的交通灯控制系统设计 - 一、 摘要: 随着科技的飞速发展, 越来越多的控制功能强大的芯片出现在我们生活中, 但 8051 系列单片机, 因为其的廉价几成本...


基于51单片机的十字路口交通灯控制系统设计.doc

基于51单片机的十字路口交通灯控制系统设计 - 课程设计任务书 课程名称 单片机原理及应用课程设计 摘要 本文介绍了一个基于 MCS-51 及 PROTEUS 的十字路口交通灯...


基于单片机的十字路口交通灯控制系统设计_图文.doc

基于单片机的十字路口交通灯控制系统设计_工学_高等教育_教育专区。单片机交通灯 十字路口交通灯控制系统设计 十字路口交通灯控制系统设计毕业论文 ...


基于单片机的交通灯控制系统设计论文.doc

基于单片机的交通灯控制系统设计论文 - 目 录 1 设计课题任务、功能要求说明及


基于单片机的交通灯控制系统设计毕业论文.doc

基于单片机的交通灯控制系统设计毕业论文 - 毕业论文题目 基于单片机的交通灯控制系统设计 姓名 所在系 *** 学 号 专业年级 职称 指导教师 二 O 一四 年 ...


基于AT89C51单片机的交通灯控制系统设计毕业论文.doc

基于AT89C51单片机的交通灯控制系统设计毕业论文 - 滨江学院 单片机交通灯的控制系 统设计 学生姓名 学专班号业级 通信工程 指导老师 ...


基于单片机的交通灯控制系统硬件设计.doc

基于单片机的交通灯控制系统硬件设计 - 基于单片机的交通灯控制系统硬件设计 摘要:目前,实现路口交通灯系统的控制方法很多 ,可以用标准逻辑器件、 可编程序控制器 ...


单片机控制的交通灯系统设计报告.doc

单片机控制的交通灯系统设计报告 - 湖南科技大学 单片机控制的交通灯系统设计


基于AT89C51单片机的交通灯控制系统设计_图文.ppt

基于AT89C51单片机的交通灯控制系统设计 - 基于AT89C51单片机的 交通灯控制系统设计 ? ? ? ? ? ? 1.1 项目概述 1.2 项目要求 1.3 系统设计 1.4 硬件...


基于单片机的交通灯控制系统设计.doc

基于单片机的交通灯控制系统设计 - 兰州文理学院学生毕业论文 题 目:基于单片机的交通灯控制系统 作 者: 指导老师: 电子信息工程 学院 电子信息工程技术 专业 三年...

网站首页 | 网站地图
3986 3986.net
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com