当前位置:文档之家› 51单片机控制的交通灯系统实验报告

51单片机控制的交通灯系统实验报告

系统实验报告——基于51单片机的交通灯设计专业:XX学生姓名:xx XX学号:***********指导教师:wwwwwwwwwww2000年x月x日目录1 设计任务和性能指标 (1)1.1设计任务 (1)1.2性能指标 (1)2 设计方案 (2)2.1任务分析 (2)2.2方案设计 (2)3 系统硬件设计 (3)3.1单片机的最小系统 (3)3.2电源电路 (4)3.3数码管显示时间电路设计 (4)3.4信号灯控制电路设计 (5)4 系统软件设计 (5)4.1主程序设计 (5)5 调试及性能分析 (6)5.1调试分析 (6)5.1.1 软件调试 (6)5.1.2 硬件调试 (6)5.1.3 系统功能调试 (6)6 心得体会 (6)参考文献 (8)附录1 系统原理图 (9)附录3 程序清单 (10)附录3元器件清单 (14)1 设计任务和性能指标1.1设计任务利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。

用红、绿、黄发光二极管作信号灯。

如图上图所示。

设东西向为主干道,南北为支干道。

1.2性能指标1. 状态1:仅亮灯,数码管不工作。

按下键4,红/黄/绿三色灯交替亮:红—〉(20秒)黄(闪烁)—〉(5秒)绿—〉(20秒) 黄(闪烁)—〉(5秒)红2. 状态2:灯和数码管相结合,模拟十字路口的交通灯 在以上功能的基础上数码管倒计时显示时间。

南东2 设计方案2.1任务分析模拟交通灯控制器就是使用单片机来控制一些LED 和数码管,模拟真实交通灯的功能。

红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字路口的车辆及行人交通,计时牌显示路口通行转换剩余时间等2.2方案设计根据设计的要求可知,系统的硬件原理框图如下图所示。

单片机键盘LED 显示三色指示灯系统硬件框图单片机选用A T89S52,它与8051系列单片机全兼容,但其内部带有4KB 的FLASH R OM ,设计时无需外接程序存储器,为设计和调试带来极大的方便。

南北向和东西向各采用2个数码管计时,同时需要对该方向的指示灯的点亮时间进行倒计时。

键盘系统可以根据系统的需要设置不同的键的个数,可以选择线式键盘或矩阵式键盘,若单片机的IO 口不够用时,可以考虑扩展8255或8155满足系统的要求。

2. 软件方案根据设计要求,程序框图如图1所示。

软件可由汇编语言完成,也可由C 语言完成。

软件设计可以分为以下几个功能模块: 主程序:初始化及键盘监控。

计时程序模块:为定时器的中断服务子程序,完成0.1秒(或其他时间)和1秒的时间定时。

显示程序模块:完成60个发光二极管(实际上只需驱动30个)和8个LED 数码管的显示驱动。

程序流程图见下一页:程序流程图3 系统硬件设计3.1单片机的最小系统ATMEL 公司生产的AT89S52单片机它是硬件电路的核心部分,时钟电路晶振使用12MHz ,复位电路采取按键复位方式。

具体连接图3.1和图3.2。

单片机系统的时钟电路开始初始化判断当前状态调用正常 运行子程序 调用紧急 状态子程序单片机系统的复位电路3.2电源电路设计电源用5V直流变压器直接供电。

3.3数码管显示电路显示电路采用8个共阳数码管,P1口作为数码管的输入,P0.4、P0.5、P0.6 P0.7分别控制东西南北四路数码管的位选端C1,C2,C3,C4。

数码管显示电路(上图是共阴数码管)3.4信号灯控制电路应急电路4 系统软件设计4.1 主程序设计开始参数初始化显示子程序中断处理紧急中断子程序系统程序流程图5 调试及性能分析5.1 调试分析5.1.1 软件调试软件调试主要是利用proteus仿真软件完成电路的搭建,运行以发现设计中的错误及时改正。

5.1.2 硬件调试硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。

具体步骤及测试结果如下:(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接,对未连接的进行修复。

(2)参照原理图,检查各个器件之间的连接是否连接正确,是否存在虚焊,经测试,各连接不存在问题。

(3)以上两项检查并修复完后,给该硬件电路上电,电源指示灯点亮。

5.1.3 系统功能调试通过软件仿真显示,系统基本能完成要求。

6 心得体会这次系统实验历时两周的时间,在这实验过程里我们巩固了从编程、焊板到调试的专业知识,逻辑思维和动手能力都得到了很大的提高。

对于交通灯这个题目,由于以前学单片机这个课程时,做过类似相关的实验,觉得这个比较简单而且做出的东西也比较直观,查阅了大量的资料,在老师的讲解帮助下,我们对如何通过单片机控制交通灯这个题目,有了进一步的理解。

要解决的主要问题就是程序的设计了,虽然感觉交通灯程序没什么难的,就是数码管倒计时显示加几个闪烁的二极管就完事,但是也许是起初想的太简单,设计时到了细节处,也出了不少问题,而且很难被检查出来,但是最后经过我们的不断努力,还是写出来正确的代码。

上周终于拿到了PCB板,怀着紧张的心情一个器件一个器件的完成板子的焊接,最后通过串口线把程序下载到板子上,但是板子却没有意料中的效果,而且没一点现象,用万用表检查单片机的电压差不多为零,查出了问题所在松了口气,后来在网上查资料知道原来变压器的接口那三个引脚,两个GND必须短接,要不就不能正常供电,本以为短接后就正常了,但是数码管还是没反应,二极管基本可以正常显示,这时候真是一种煎熬,差了很久找不到原因,后来对照着原理图一个个的检查,最后发现原来是数码管封装错了,板子上的数码管公共极是3、8两个引脚,但是原理图上封装的事1、6,当时也没有注意,以为只要是共阴管就没问题了,没想到软件本身就存在错误。

通过这次系统实验,对以前学过的知识进行了巩固,加深了理解,提高了应用的能力,而且提高了我们的发现、分析、解决问题的能力,同时提高了大家对专业的认识及兴趣,对于我们工科生来说,对以后就业很有帮助。

最后,尤其要感谢xx和xx老师的指导和帮助,我们才得以顺利完成这次系统试验。

参考文献[1] 邹丽新.单片微型机原理及应用苏州大学出版社,2006.12[2]彭伟.单片机C语言程序设计实训100例.北京:电子工业出版社,2009。

8附录1 系统原理图系统原理图附录2 程序清单;------------------------------------;程序实现功能;西南北路口直行与转弯交替通行,数码管显示直行通行倒计时,红绿黄灯显示包括人行道在内的道路交通状态。

;某一方向道路拥挤时,可以人工控制调节东西南北方向通行时间。

;紧急情况时,各路口交通灯显示红灯,数码管保持数据不变。

#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit key1=P1^0;sbit key2=P1^1;sbit key3=P1^2;sbit key4=P1^3;sbit smgwe1=P0^4;sbit smgwe2=P0^5;sbit smgwe3=P0^6;sbit smgwe4=P0^7;sbit smgdot=P2^7;sbit south_green=P2^0;sbit south_red=P2^1;sbit south_yellow=P2^2;sbit east_green=P2^3;sbit east_red=P2^4;sbit east_yellow=P2^5;sbit num_a=P0^0;sbit num_b=P0^1;sbit num_c=P0^2;sbit num_d=P0^3;uchar count;uchar type=1;uchar num;uchar south_dispnum=10,east_dispnum=5;void delay_ms(uint z){uchar x,y;for(x=0;x<z;x++)for(y=0;y<123;y++);}void timer0_init(){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;EA=1;TR0=1;}void display(uchar south_dispnum,uchar east_dispnum) {uchar south_dispnum1,south_dispnum2;uchar east_dispnum1,east_dispnum2;south_dispnum1=south_dispnum/10;south_dispnum2=south_dispnum%10;east_dispnum1=east_dispnum/10;east_dispnum2=east_dispnum%10;smgwe1=1;smgwe2=0;smgwe3=0;smgwe4=0;num_d=south_dispnum1/8;num_c=south_dispnum1%8/4;num_b=south_dispnum1%4/2;num_a=south_dispnum1%2;delay_ms(1);smgwe1=0;smgwe2=1;smgwe3=0;smgwe4=0;num_d=south_dispnum2/8;num_c=south_dispnum2%8/4;num_b=south_dispnum2%4/2;num_a=south_dispnum2%2;delay_ms(1);smgwe1=0;smgwe2=0;smgwe3=1;smgwe4=0;num_d=east_dispnum1/8;num_c=east_dispnum1%8/4;num_b=east_dispnum1%4/2;num_a=east_dispnum1%2;delay_ms(1);smgwe1=0;smgwe2=0;smgwe3=0;smgwe4=1;num_d=east_dispnum2/8;num_c=east_dispnum2%8/4;num_b=east_dispnum2%4/2;num_a=east_dispnum2%2;delay_ms(1);}void traffic_light(){switch(type){case 1: south_red=1;south_green=0;south_yellow=0;east_red=0;east_green=1;east_yellow=0;display(south_dispnum,east_dispnum);if(east_dispnum==0){east_dispnum=5;south_dispnum=5;type=2;}break;case 2:south_red=1;south_green=0;// south_yellow=0;east_red=0;east_green=0;// east_yellow=0;display(south_dispnum,east_dispnum);if(east_dispnum==0){south_dispnum=5;east_dispnum=10;type=3;}break;case 3:south_red=0;south_green=1;south_yellow=0;east_red=1;east_green=0;east_yellow=0;display(south_dispnum,east_dispnum);if(south_dispnum==0){south_dispnum=5;east_dispnum=5;type=4;}break;case 4:south_red=0;south_green=0;// south_yellow=0;east_red=1;east_green=0;// east_yellow=0;display(south_dispnum,east_dispnum);if(east_dispnum==0){south_dispnum=10;east_dispnum=5;type=1;}break;}}void main(){timer0_init();while(1){traffic_light();}}void timer0_isr() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;if(count==5){if(type==2){east_yellow=!east_yellow;}if(type==4){south_yellow=!south_yellow;}}if(count==20){count=0;south_dispnum--;east_dispnum--;}}附录1 元器件清单数量器件类型原理图符号封装Used Part Type Designator Footprint Description==== =================== ========== =========== ============== 排阻3 10K排阻RP1 RP3 SIP9RP4==== =================== ========== =========== ============== 电阻(1/8w)8 150 R20 R21 AXIAL0.4R22 R23R24 R25R26 R278 1K R1 R2 R3 AXIAL0.4R4 R5 R6R7 R10==== =================== ========== =========== ============== 电容(耐压16V)1 0.1u C9 RAD0.22 20p C5 C6 RAD0.21 22u C12 RB.2/.41 470u C7 RB.2/.4==== =================== ========== =========== ============== 晶振1 11.0592M XTAL1 XTAL1==== =================== ========== =========== ============== 三极管10 9013 Q1 Q2 Q3 TO-92C NPN TransistorQ4 Q5 Q6Q7 Q8 Q9Q10==== =================== ========== =========== ============== 集成块1 74LS47 U2 DIP161 AT89S51 U1 DIP401 LM7805 U5 TO-220S==== =================== ========== =========== ==============按键(四脚扁平,脚距4.57*7.1)5 按键K1 K2 K3 KEY6x6K4KEYRESET==== =================== ========== =========== ============== 发光二极管3 红灯LED2 LED5 LEDLEDPower2 黄LED3 LED6 LED2 绿LED1 LED4 LED==== =================== ========== =========== ============== 0.8"数码管(带小数点)4 数码管DS1 DS2 LED08DS3 DS4==== =================== ========== =========== ============== 1 整流桥D1 BRIDGE_C==== =================== ========== =========== ============== 9V变压器。

相关主题