1、目 录一、项目名称 .3二、选题背景 .32.1 课题背景 .32.2 交通灯的历史 .3三、单片机简介 .43.1 单片机的发展历程 .43.2 单片机的特点: .53.3 AT89C51 单片机简介 .6四、设计基本要求和步骤 .74.1 基本要求 .74.2 设计步骤 .8五、硬件和软件设计 .95.1 硬件电路图 .95.2 程序流程图 .10主程序 .105.4 程序源代码 .105.5 程序运行效果图 .14六、心得体会 .15模拟交通灯设计报告一、项目名称交通信号灯的模拟控制二、选题背景2.1 课题背景由于我国经济的快速发展从而导致了汽车数量的猛增,大中型城市的城市交通,正面临着
2、严峻的考验,从而导致交通问题日益严重,其主要表现如下:交通事故频发,对人类生命安全造成极大威胁;交通拥堵严重,导致出行时间增加,能源消耗加大;空气污染和噪声污染程度日益加深等。日常的交通堵塞成为人们司空见惯而又不得不忍受的问题,在这种背景下,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统已经成为当前的主要任务。随着电子技术的发展,利用单片机技术对交通灯进行智能化管理,已成为目前广泛采用的方法。2.2 交通灯的历史1868 年 12 月 10 日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德哈特设计、制造的灯柱高 7 米,身上挂着一盏红
3、、绿两色的提灯 -煤气交通信号灯,这是城市街道的第一盏信号灯。1914 年,在美国的克利夫兰市才率先恢复了红绿灯,不过,这时已是“电气信号灯” 。稍后又在纽约和芝加哥等城市,相继重新出现了交通信号灯。随着各种交通工具的发展和交通指挥的需要,第一盏名副其实的三色灯(红、黄、绿三种标志)于1918 年诞生。它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生,使城市交通大为改善。中国最早的马路红绿灯,是于 1928 年出现在上海的英租界。三、单片机简介3.1 单片机的发展历程单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控
4、制领域,故又称为微控制器。在 MCS-51 系列单片机中,有两个子系列:51 子系列和 52 子系列。每个子系列有诺干中型号。51 系列有 8051、8751 和 8031 三个型号,后来经过改进产生了 80c51、87c51、80c31 三个型号;52 系列有5021、8752、8032 三个型号,改进后的型号是 80c52/87c52、80c32。改进后的型号更加省电。52 系列比对应的 51 系列增加了定时器 T2 并将内部程序存贮器增加到 8KB。Inter 公司停止生产 MCS-51 系列单片机之后将生产权转让给了许多其他公司,于是出现了许多与 Mcs-51 兼容的单片机。现在生产
5、mcs-51兼容单片机的公司对其进行了不同程度的改进和提高。我们现在使用比较的多的是 AT89C51/AT89s51 等。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和 I/O 接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过 1、2、3、3 代的发展,目前单片机正朝着高性能和多品种方向发展,它们的 CPU 功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗3.2 单片机的特点:(1)性价比高,开发周期短,易于产品化,(2)集成度高,可靠性好,抗干扰性强,(3)功能完善,接口多样,(4)低功耗
6、、低电压一般电源供电电压在 53V 范围内单片机都能正常工作,供电的下限可达 12V。(5)总线多样,易于扩展单片机外部的典型三总线结构,方便系统构扩展,构成各种规模的应用系统。外部总线增加了 I2C 及SPI 等串行总线方式, 可根据需要进行并行或者串行扩展。3.3 AT89C51 单片机简介AT89C51 是一种带 4K 字节 FLASH 存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS 8 位微处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机。单片
7、机的可擦除只读存储器可以反复擦除 1000 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪速存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,AT89C051 是它的一种精简版本。AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示。现在 AT89S51/52 已经取代了 AT89C51/52。主要特性:与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命:1000 写/擦循环 数据保留时间:10 年全静态工作:0Hz-2
8、4MHz三级程序存储器锁定1288 位内部 RAM32 可编程 I/O 线两个 16 位定时器/计数器5 个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路四、设计基本要求和步骤4.1 基本要求本设计要求实现交通信号灯的定时控制及显示控制,其中的交通灯以绿、黄、红色发光二极管表示,主要实现以下功能:1. 定时控制:在双干线路口上,交通信号灯的变化是定时的。双干线按其性质分可分为放行线和禁止线,各自的功能为: 放行线:绿灯亮放行 60+N 秒(N 为设计者的学好) ,黄灯亮警告 3 秒,然后红灯亮禁止; 禁止线:绿灯亮放行 63+N 秒,然后绿灯亮放行。当使两条路线交替地成为放行线
9、和禁止线时,就可以实现定时交通控制,其控制状态表如下:状态表B 线绿灯B 线绿灯B 线绿灯A 线绿灯A 线绿灯A 线绿灯状态说明熄 熄 亮 亮 熄 熄 A 放行,B 禁止熄 熄 亮 熄 亮 熄 A 警告,B 禁止亮 熄 熄 熄 熄 亮 A 禁止,B 放行熄 亮 熄 熄 熄 亮 A 禁止,B 警告2、有急救车时的优先控制在定时控制的基础上,增加允许急救车优先通过的要求,当有急救车到达时,路口的信号灯全部变红,以便让急救车通过。假定急救车通过时间为 10 秒,急救车通过后,交通灯恢复先前状态。另假定以一个按键代表有急救车到来,并以中断服务方式进行处理。4.2 设计步骤1.利用 Proteus 8.
10、3 SP2 仿真软件按下列要求绘制仿真实例 用 4 个共阳极 LED 数码管的分别表示东、西、南、北四个方向路口,以数码管的上、中、下 3 个横段分别代表红、黄、绿 3 盏灯 用 P0、P1 口分别输出控制模拟交通灯的状态显示的数码管和倒计时显示数码管的状态码 P32 进行 INT0 接口进行中断处理2.按照基本要求编制程序实现相应功能。五、硬件和软件设计5.1 硬件电路图硬件电路图通过 Proteus 8.3 SP2 仿真之后如图 1 所示,其中:按钮 INT0 连接 P32 端口实现红灯全亮,处理交通意外按钮 RST 连接 RST 端口实现交通灯系统重置整体实验连接电路如下图 1 所示:
11、5.2 程序流程图开始设置中断工作方式、触发方式、初始化是否有中断运行过程执行中断YN中断结束,退出中断,返回5.4 程序源代码#include #define uint unsigned int #define uchar unsigned char /全局变量定义uchar e_w,s_n; /e_w 为东西方向倒计时,s_n 为南北方向倒计时void ledscans ( ) reentrant /ledscans 函数功能:实现 4 位 LED 数码管动态显示扫描函数,分别显示东西南北倒计时秒数uchar led =0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
12、0x07,0x7f,0x6f; /位选码uchar wei =0xfe,0xfd,0xfb,0xf7;uchar b;P2=wei0; /第一位显示P1=lede_w/10; /显示东西倒计时高位for(b=0;b0;s_n-) /两个方向倒计时 10sP0=0xdb;time50ms(20);e_w-; P0=i; /恢复现场TH1=l;TL1=m;s_n=n;e_w=p;void main() /主函数TMOD=0X10; /设置 T1 工作方式 1IT0=1; /外部中断 0 为下降沿触发中断EX0=1; PX0=1;EA=1;while(1)/放行线绿灯 67s,黄灯 3s;禁止线红灯
13、 70se_w=70; /禁止线倒计时初值for(s_n=67;s_n0;s_n-) /放行线 67s 倒计时P0=0xf3; /放行线绿灯,禁止线红灯time50ms(20); /禁止线同步倒计时e_w-; for(s_n=3;s_n0;s_n-) /放行线黄灯 3s 倒计时P0=0xeb; /放行线黄灯,禁止线任然红灯time50ms(20); e_w-; /禁止线同步倒计时 /(原)禁止线绿灯 67s,黄灯 3s;(原)放行线红灯倒计时 70ss_n=70;for(e_w=67;e_w0;e_w-)P0=0xde;time50ms(20);s_n-;for(e_w=3;e_w0;e_w-) /(原)禁止线黄灯 3sP0=0xdd;time50ms(20);s_n-;5.5 程序运行效果图正常运行的效果图如图 2 所示图 2急救车控制通行时如图 3 所示