基于-51单片机的交通灯设计
基于51单片机控制交通灯
目录1 绪论 (1)1.1 课题研究目的 (1)1.2 研究现状 (2)1.3 本文的主要工作 (3)2 系统方案设计 (3)2.1 总体方案设计与分析 (3)2.2 主控制器方案 (4)2.3 显示方案 (5)3 系统电路设计 (5)3.1 主控制器电路 (5)3.1.1 单片机电路 (5)3.1.2 晶振电路 (7)3.1.3 复位电路 (7)3.2 显示电路 (8)3.3 按键电路 (8)3.4 交通灯电路 (9)4 系统硬件设计 (9)4.1 主程序软件设计 (9)4.2 子程序软件设计 (11)4.2.1 显示软件设计 (11)4.2.2 按键扫描软件设计 (13)5 系统测试 (13)5.1 系统调试 (13)5.2 故障检查 (16)6硬件组装与调试 (16)6.1 系统组装 (17)6.2 上电后调试 (18)总结 (19)参考文献 (20)致谢 ...................................................................................................................错误!未定义书签。
附录 (21)附录1:成品图 (21)附录2:原理图 (22)1 绪论1.1 课题研究目的19世纪的时候,英国就出现了世界上首个交通信号灯,因为他的能源来自于煤气的交通信号灯,这种方案在后期的设备运行中很容易产生爆炸,所以后来此种交通信号灯设备就没有在出现了。
到了20世纪的时候,美国的克利夫兰市又有了交通灯设备,然而此次的能源设计方案是电力信号灯。
1930年德国有人开发了选取自动化的设计方案去操作的交通灯,这种设计标志着交通自动操作的起步。
20世纪开始,发达国家第一次选取车辆感应方案处理信号,车辆传感器的主要特点为,此设计能够按照交通拥堵的具体情况去操作交通灯运行的时间参数,这样来解决交通十字路口的拥堵问题,使得车辆可以很快的通过路口,此方案被很多地区进行使用。
基于51单片机设计的交通灯报告书
报告书干路—支路口交通信号灯控制器项目目的:通过对模拟交通灯控制系统的操作,让我们掌握定时器和中断系统的综合应用,进一步熟练51单片机的应用.项目要求:本项目主要通过感应开关控制交通灯的切换显示,实现主干路与支路车辆的分流。
(1)在正常情况下,主干道交通灯绿灯一直亮着。
(2)当支路检测到有车辆,60秒后,主干道禁止通行,支路放行。
(3)支路放行30 秒后,恢复正常情况。
项目电路如图:按键S1、S2模拟支路的车辆检测,当S1、S2为高电平(不按下按键)时,表示正常情况。
当S1或S2为低电平(按下按键)时,表示支路上有车辆,将S1、S2接到P3.0、P3.1把信号送入到单片机。
程序设计:源程序代码:#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar time,second,n,m;sbit k1=P3^0;sbit k2=P3^1;Uchar code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x 80,0x90};//数码管显示0~9的段码表void delay(uint t){uchar i;while(t--)for(i=0;i<255;i++);}void shumaguan(uchar s){P2=0xfd;P0=Tab[s/10];delay(1);P2=0xfe;P0=Tab[s%10];delay(1);}void main(){IE=0x82;TMOD=0x01;TH0=(65536-50000)/16;TL0=(65536-50000)%16;while(1){ uchar j;P1=0xde;if(k1==0||k2==0){delay(500);if(k1==0||k2==0){time=40;TR0=1;for(second=60;second>0;)shumaguan(second);TR0=0;P2=0x00;P1=0xf3;delay(3000);for(j=0;j<2;j++){P1=0xfb;delay(200);P1=0xf3;delay(200);}P1=0xeb;delay(500);}}}}void ld() interrupt 1{TR0=0;time--;if(time==0){time=40;second--;if(second==5)P1=0xdf;if(second==4)P1=0xde;if(second==3)P1=0xdf;if(second==2)P1=0xdd;if(second==1)P1=0xdd;}TH0=(65536-50000)/16;TL0=(65536-50000)%16;TR0=1;}项目小结:本项目程序主要包括四部分:主函数、延时函数、数码管显示函数、中断函数。
基于51单片机的智能交通灯课程设计报告书
基于51单⽚机的智能交通灯课程设计报告书简易智能交通灯设计1、设计背景⾃从1886两个德国⼈发明了第⼀辆汽车交通灯改变了交通路况,交通问题也渐渐被⼈们所重视。
从英国伦敦街头的第⼀个以燃煤⽓为光源的红,蓝两⾊的机械扳⼿式信号灯,到现在以电为光源的红黄绿三⾊交通灯,不知不觉中交通信号灯在⼈们⽇常⽣活中占据了重要地位。
随着⼈们社会活动⽇益增加,经济发展,汽车数量急剧增加,城市道路⽇渐拥挤,交通灯更加显⽰出了它的功能,使得交通得到有效管制,对于交通疏导,提⾼道路导通能⼒,减少交通事故有显著的效果。
近年来,随着科技的飞速发展,电⼦器件也随之⼴泛应⽤,其中单⽚机也不断深⼊⼈民的⽣活当中。
本次课程设计以模拟交通灯系统利⽤单⽚机AT89C51作为核⼼元件,实现了通过信号灯对路⾯状况的智能控制。
在⼀定程度上解决了交通路⼝堵塞、车辆停车,特殊情况的交通灯等待时间不合理、急车强通等问题。
在该次的设计系统具有结构简单、可靠性⾼、成本低、实时性好、安装维护⽅便等优点,有⼴泛的应⽤前景。
本模拟系统由单⽚机软件系统,两位8段数码管和LED灯显⽰系统。
和复位电路控制电路等组成,较好的模拟了对交通路⾯的控制。
1.1 设计思路(1)分析⽬前交通路⼝的基本控制技术以及各种通⾏⽅案,并以此为基础提出⾃⼰的交通控制的初步⽅案。
(2)确定系统交通控制的总体设计,包括,⼗字路⼝具体的通⾏禁⾏⽅案设计以及系统应拥有的各项功能,在这⾥,本设计除了有信号灯状态控制能实现基本的交通功能,还增加了倒计时显⽰提⽰,并基于实际情况,⼜增加了紧急状况处理和通⾏时间可调这两项特特殊功能。
(3)进⾏倒计时显⽰电路,灯状态电路,特殊情况按键电路的设计和对各器件的选择及连接,⼤体分配各个器件及模块的基本功能要求。
(4)进⾏软件系统的设计和仿真中,程序在KEIL软件中⽤单⽚机c语⾔编写,电路的搭建和仿真实现是在proteus软件中实现的。
在本次课程设计中通过对单⽚机内部结构和⼯作情况做了⼀定的研究,充分了解定时器,中断以及延时原理,为本次智能交通灯的设计提供了理论基础。
51单片机交通灯毕业设计方案
51单片机交通灯毕业设计方案
以下是一个基于51单片机的交通灯设计方案:
1. 硬件设计:
- 使用51单片机作为主控制器。
- 使用红黄蓝三个LED作为信号灯的显示器件。
- 使用按钮作为手动触发信号灯切换的输入设备。
- 使用数码管显示当前信号灯状态的计时器。
- 使用适当的电阻、电容、继电器等连接单片机和LED、按钮、数码管等。
2. 软件设计:
- 配置51单片机的I/O口,将LED、按钮和数码管连接到正
确的引脚。
- 编写主程序,设置中断或轮询等方式读取按钮状态,并根
据按钮状态切换信号灯状态。
- 通过控制LED引脚的输出电平,实现红黄蓝三个信号灯的
闪烁、亮灭和切换。
- 使用定时器计时,实现信号灯的定时控制。
根据交通规则,红灯、黄灯、绿灯的显示时间可以根据需要设定。
- 使用数码管显示当前信号灯的状态和剩余时间,方便车辆
和行人了解交通灯变化。
3. 功能设计:
- 根据交通规则,设置交通灯的变换顺序和时间,确保道路
的交通流畅和安全。
- 根据需要加入手动触发信号灯切换的功能,允许人工控制,
例如紧急情况下的交通调节。
- 可以考虑加入流量检测、车辆和行人优先等功能,提高交
通效率和安全性。
- 可以通过串口或无线通信模块,实现与其他设备的联动,
例如与车载导航系统、交通监控系统等的数据交换和协同控制。
以上是一个基本的51单片机交通灯设计方案,可以根据具体
需求进行进一步调整和优化。
基于51单片机交通灯程序完整版
#include<reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intbit Flag_SN_Yellow; //SN黄灯标志位bit Flag_EW_Yellow;//EW黄灯标志位uchar Time_EW;//东西方向倒计时单元uchar Time_SN;//南北方向倒计时单元uchar EW=15,SN=10,EWL=19,SNL=19; //程序初始化赋值,正常模式uchar EW1=60,SN1=40,EWL1=19,SNL1=19;//用于存放修改值的变量ucharFlag_Moden=1; //模式变量1正常模式 2 禁止南北通东西 3 禁止东西通南北 4 禁止东西南北5 夜间模式ucharFlag_key=0;uchar codetable[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//1~~~~9段选码sbit HC164_Data =P0^0;sbit HC164_Clk =P0^1;sbitEW_green =P0^2;sbitEW_yellow =P0^3;sbitEW_red =P0^4;sbitSN_red =P0^5;sbitSN_green =P0^7;sbitSN_yellow =P0^6;sbitSN_RXD_red =P2^7;sbitSN_RXD_green =P2^6;sbitEW_RXD_red =P2^5;sbitEW_RXD_green =P2^4;sbit FMQ = P1^0;sbit key1 = P3^3;sbit key2 = P3^4;sbit key3 = P3^5;sbit WEI1 =P2^3; // 东西数码管第一位sbit WEI2 =P2^2; // 东西数码管第二位sbit WEI3 =P2^1; // 南北数码管第一位sbit WEI4 =P2^0; // 南北数码管第二位//ucharew=40;sn=35;//函数 delay(uchar z)//功能能延时void Delay(uchar z){uchara,b;for(a=z;a>0;a--)for(b=200;b>0;b--);}void HC_164_Set_byte(ucharduan) {uchar i;for(i=0;i<8;i++){HC164_Data =duan& 0x80;HC164_Clk =0;HC164_Clk =1;duan =duan<<1;}}void display_smg(ucharwei,ucharnum){switch(wei){case 1:WEI1=0;WEI2=1;WEI3=1;WEI4=1;HC_164_Set_byte(table[num]);break; case 2: WEI1=1;WEI2=0;WEI3=1;WEI4=1;HC_164_Set_byte(table[num]);break; case 3: WEI1=1;WEI2=1;WEI3=0;WEI4=1;HC_164_Set_byte(table[num]);break; case 4: WEI1=1;WEI2=1;WEI3=1;WEI4=0;HC_164_Set_byte(table[num]);break; default: break;}}void Display(void){ucharh,l;h=Time_EW/10;l=Time_EW;display_smg(1,h);Delay(8);display_smg(2,l); Delay(8);h=Time_SN/10;l=Time_SN; display_smg(3,h); Delay(8);display_smg(4,l); Delay(8);}void Key(){if(key1==0){ Delay(10);if(key1==0){ while(!key1); Flag_key++;if(Flag_key==1) {Flag_Moden=2;}if(Flag_key==2) {Flag_Moden=3;}if(Flag_key==3) {Flag_Moden=4;}if(Flag_key==4) {Flag_Moden=5;FMQ=1;TR0=1;}if(Flag_key==5) {Flag_EW_Yellow=0; //SN关黄灯信号位 Flag_SN_Yellow=0; //SN关黄灯信号位 FMQ=1;Flag_Moden=1;TR0=1;//启动定时Flag_key=0;}}}if(key2==0){while(!key2);Flag_Moden=2;}if(key3==0){while(!key3);Flag_Moden=3;}}void timer0(void)interrupt 1 using 1 {static uchar count;TH0=(65536-50000)/256;TL0=(65536-50000)%6;count++;if(count==10){if(Flag_SN_Yellow==1) //测试南北黄灯标志位{SN_yellow=~SN_yellow;}if(Flag_EW_Yellow==1) //测试东西黄灯标志位{EW_yellow=~EW_yellow;}}if(count==20){if(Flag_Moden==1){Time_EW--;Time_SN--;}if(Flag_SN_Yellow==1)//测试南北黄灯标志位{SN_yellow=~SN_yellow;}if(Flag_EW_Yellow==1)//测试东西黄灯标志位{EW_yellow=~EW_yellow;}count=0;}}//模式1void Zc_moshi(){//*******S0状态**********EW_RXD_red=0; //EW人行道禁止EW_RXD_green=1;//EW人行道禁止SN_RXD_red=1; //EW人行道通行SN_RXD_green=0;//SN人行道通行Flag_EW_Yellow=0; //EW关黄灯显示信号 Flag_SN_Yellow=0; //SN关黄灯显示信号Time_EW=EW; //EW=45;SN=40;Time_SN=SN;SN_green =0; //SN通行,EW红灯SN_red =1;EW_red =0;EW_green =1;while(Time_EW>5){if(key1==0 || key2==0||key3==0){//Flag_Moden=1;TR0=0;//启动定时break;}Display();}SN_yellow=0; //SN黄灯亮开始闪烁5秒 SN_green =1; //灭//*******S1状态**********Time_SN=5;while(Time_EW<=5){if(key1==0 || key2==0||key3==0){//Flag_Moden=1;TR0=0;//启动定时break;}Flag_SN_Yellow=1; //SN开黄灯信号位 Display();}//*******S2状态**********Flag_SN_Yellow=0; //SN关黄灯显示信号 SN_yellow=1; EW_RXD_red=1; //EW人行道通行SN_RXD_green=1;//SN人行道禁止EW_RXD_green=0; //EW人行道通行SN_RXD_red=0;//SN人行道禁止Time_EW=SN; //EW=45;SN=40;Time_SN=EW;SN_green=1;//南北绿灯禁止东西通行 SN_red=0; //亮EW_red=1;EW_green=0; //亮while(Time_SN>5){if(key1==0 || key2==0||key3==0){//Flag_Moden=1;TR0=0;//启动定时break;}Display();}//*******S3状态**********EW_green=1;EW_yellow=0;Time_EW=5;while(Time_SN<=5){if(key1==0 || key2==0||key3==0){TR0=0;//启动定时break;}Flag_EW_Yellow=1; //SN开黄灯信号位 Display(); }Flag_EW_Yellow=0;EW_yellow=1;}////模式2 禁止南北通东西蜂鸣器响void Jsn() {EW_green =0;EW_yellow =1;EW_red =1;SN_red =0;SN_green =1;SN_yellow =1;SN_RXD_red =0;SN_RXD_green =1;EW_RXD_red =1;EW_RXD_green =0;FMQ =~ FMQ;Delay(10);WEI1=1;WEI2=1;WEI3=1;WEI4=1;}////模式3 禁止东西通南北蜂鸣器响void Jew() {EW_green =1;EW_yellow =1;EW_red =0;SN_red =1;SN_green =0;SN_yellow =1;SN_RXD_red =1;SN_RXD_green =0;EW_RXD_red =0;EW_RXD_green =1;FMQ =~ FMQ;Delay(10);WEI1=1;WEI2=1;WEI3=1;WEI4=1; }//模式4 禁止东西南北蜂鸣器响void JEwSn(){EW_green =1;EW_yellow =1;EW_red =0;SN_red =0;SN_green =1;SN_yellow =1;SN_RXD_red =0;SN_RXD_green =1;EW_RXD_red =0;EW_RXD_green =1;FMQ =~ FMQ;Delay(10);WEI1=1;WEI2=1;WEI3=1;WEI4=1;}//模式5 夜间模式,东西南北黄灯闪烁void Yejian() {EW_green =1;//EW_yellow =1;EW_red =1;SN_red =1;SN_green =1;//SN_yellow =1;SN_RXD_red =1;SN_RXD_green =1;EW_RXD_red =1;EW_RXD_green =1;Flag_EW_Yellow=1; //SN开黄灯信号位 Flag_SN_Yellow=1; //SN开黄灯信号位}void main (){P1=0xff;P2=0xff ;P3=0xff;P0=0xff;EW_green =1;EW_yellow =1;EW_red =1;SN_red =1;SN_green =1;SN_yellow =1;SN_RXD_red =1;SN_RXD_green =1;EW_RXD_red =1;EW_RXD_green =1;WEI1=1;WEI2=1;WEI3=1;WEI4=1;IT0=1; //INT0负跳变触发TMOD=0x01;//定时器工作于方式1TH0=(65536-50000)/256;//定时器赋初值 TL0=(65536-50000)%6; EA=1; //CPU开中断总允许ET0=1;//开定时中断// EX0=1;//开外部INTO中断TR0=1;//启动定时while(1){switch(Flag_Moden) {case 1:Zc_moshi(); break; case 2:Jsn(); break;case 3: Jew();break;case 4: JEwSn();break; case 5: Yejian();break; default :break;}Key(); }}。
基于51单片机控制交通灯的毕业设计
安徽工商职业学院ANHUI BUSINESS VOCATIONAL COLLEGE毕业设计(论文)基于单片机控制的交通灯毕业设计系别:电子信息系专业班级:10应用电子技术2班学号: ******学生姓名:**指导老师:**二零一二年十月基于单片机控制的交通灯毕业设计摘要十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。
那么靠什么来实现这井然秩序呢?靠的是交通信号灯的自动指挥系统。
交通信号灯控制方式很多。
本设计主要分为五大模块输入:控制电路、时钟控制电路、片内外程序切换控制、显示电路。
以MSC-51系列单片机IntelAT89C51为中心器件来设计交通灯控制器,实现了AT89C51芯片的P0口设置红灯、绿灯、黄灯燃亮时间的功能;为了系统稳定可靠采用了74LS14施密特触发器芯片的消抖电路,避免了系统因输入信号抖动产生误操作;显示时间直接通过AT89C51的P2口输出,由CD4511驱动LED数码管显示红灯燃亮时间。
关键字:AT89C51LED显示交通灯The Traffic Light Based On The Single-chip ControlAbstractThe intersections vehicle wears shuttle, pedestrian Xi Rang, garage driveway, person's sidewalk, orderly. So depend what to carry out this well arranged order? What to depend is a traffic sign light of automatic conductor system. The control method of the traffic sign light is a lot of. This design is mainly divided into five greatest molds a piece the electric circuit, clock of the importation control a control outside procedure inside the electric circuit, slice to cut over a control and shows electric circuit. Take single slice the machine IntelAT89 C51 of the serieses MSC-51s as a center spare part to design transportation light controller, carried out the AT89 C51's P's 0 people's constitution of the chips red, the function in bright time of green light, Huang2 Deng Ran2;For the sake of system stability the credibility adopted a 74 LS14 airtight trigger eliminate of machine chip to tremble electric circuit especially, avoided system because of importation the signal tremble movable property to living a mistake operation; The P 2 people who shows that time directly passes the AT89 C51 output, is driven LED figures a tube by the CD4511 to show red-light Ran bright time.Key word: The AT89 C51 LED show transportation light目录摘要 (2)ABSTRACT (3)前言 (5)一、工程简介 (6)(一)、概述 (6)(二)、工艺流程图 (7)二、工程设计 (7)(一)、控制方案的确定 (7)(二)、硬件部分 (8)(1)、交通灯控制系统的硬件设计 (8)(2)、硬件系统的设计具备以下原则 (8)(3)、硬件结构框图(如图3所示) (8)(4)、交通灯控制系统的原理框图(如图4所示) (8)(5)、8279的结构及引脚功能 (12)(三)、软件部分 (16)(1)、延时子程序的计算 (17)(2)、流程图(如图8所示) (17)三、系统的试调运行 (18)(一)、硬件调试 (18)(1)、静态调试 (18)(2)、动态调试 (18)四、系统设计及总结特点 (19)致谢 (20)参考文献 (20)附录A:源程序 (21)附录B:电路图 (27)前言本课程设计是在学完单片机原理及课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现。
课程设计---基于51单片机的交通灯设计
单片机原理及系统课程设计专业:电气工程及其动化班级:电气1003姓名:赵斌学号:201009202指导教师:闵永智兰州交通大学自动化与电气工程学院2013 年 3 月 15 日基于51单片机的交通灯设计摘要随着人们社会活动的日益频繁,交通在人们的日常生活中的地位越来越高,而传统的交通灯存在很多缺陷,功能和维护上都不能满足城市交通道路高速发展的要求,因此对交通灯的研究是很有理论与实践的必要性的。
本文主要介绍了一个基于AT89C51单片机的交通灯信号控制系统,详细描述了利用AT89C51单片机实现的硬件连接、软件编程以及系统流程进行了详尽分析,对关键部分的电路也进行了介绍。
该系统利用了单片机的延时电路、按键复位电路、时钟电路等电路,可以方便地实现十字路口交通灯控制器的设计。
仿真结果表明,该系统除了可以显示交通灯各种状态,完成倒计时功能,还可以实时采集车流量相关数据,进行计算与智能化控制,与传统交通灯相比更具有实用性强、操作简单、扩展性强等优点,对于疏导交通流量、提高道路通行能力有明显效果。
关键字:AT89C51 控制系统;实时采集;智能化控制AbstractAs people's social activities have become increasingly frequent, the position of traffic is higher and higher in people's daily life, while the traditional traffic light has many defects, its maintenance can not meet the rapid development of city traffic demand, so the research of the traffic lights is necessary on a rational theory and practice.This paper introduces a traffic signal control system based on AT89C51 microcontroller which detailedly described the use of AT89C51's hardware connection, software programming and system flow, the circuit of key parts were also introduced in this paper. The system uses a delay circuit, SCM button reset circuit and clock circuit designed the crossroads traffic light controller easily.The simulation results show that, except that the system can show the various states of the traffic lights, complete the countdown function, it also can collect traffic data, calculation and intelligent control. Compared with traditional traffic light it has more strong practicability, more simple operation, expansion and stronger advantages, it has obvious effect to ease traffic flow, to improve the traffic capacity of the road.Keywords: AT89C51 control system real-time intelligent control1引言随着生活水平的逐渐提高,汽车进入家庭的步伐也加快了,城市汽车数量的增多,使得城市道路交通问题越来越重要。
基于51单片机的交通信号灯模拟控制系统
基于51单片机的交通信号灯模拟控制系统一、实验目的和要求1.掌握单片机基本资源使用。
2.掌握单片机电路原理图绘制和仿真。
3.掌握单片机C语言软件开发以及联合仿真。
二、实验内容和原理实验内容:1.根据题目绘制单片机电路原理图。
2.绘制程序流程图并编写C语言程序3.在仿真程序中进行联合仿真,最后提交实验报告三、主要仪器设备keilC,proteus。
四、操作方法与实验步骤4.1 题目要求用单片机设计一个十字路口交通灯模拟控制系统,要求东西、南北两个方向都通行20秒,警告3秒,禁止20秒,同时要考虑到东西、南北两个方向出现异常情况,出现异常情况器该方向通行60秒。
4.2 系统设计思路南北的绿红黄发光二极管与单片机AT89C51单片机的P1.0,P1.1,P1.2相连。
东西的绿红黄发光二极管与单片机AT89C51单片机的P1.4,P1.5,P1.6相连。
改变单片机P1口编码控制交通灯。
控制过程中会出现两种异常情况用外中断0和外中断1处理。
时间单位采用500ms信号,由定时/计数器0定时50ms,循环10次产生,定时/计数器0采用查询方式,主程序中设定定时/计数器0的工作方式:方式1。
4.2 电路图绘制(包含详细的参数选定文字和图像叙述)C1=1nF,C2=1nF,C3=1nF,R1=300,R2=300,R3=300,R4=300,R5=300,R6=300,R7=300,R8=300,R9=300,R10=300,R11=300,R12=300,R13=3004.3 C程序编制(包含详细的文字和程序流程图)4.3 仿真分析(包含文字和图像叙述)东西绿灯,南北红灯东西黄灯,南北红灯南北绿灯,东西红灯南北黄灯,东西红灯东西发生异常时,东西通行,南北禁止,东西方向绿灯闪,南北方向红灯闪南北发生异常时,南北通行,东西禁止,南北方向绿灯闪,东西方向红灯闪五、讨论和心得(不少于100字)通过这次对交通灯信号的模拟,了解了交通灯4种正常状态,2种异常状态,它们分别是:状态1,东西方向绿灯,南北方向红灯20秒。
基于C51单片机的交通灯控制系统
基于C51单片机的交通灯控制系统1、实验方案论证:进行十字路口的交通信号灯控制电路设计,画出电路原理图及实验电路图,进行软件编程、以及使用说明文档的建立等一整套工作任务。
进行十字路口的交通信号灯控制程序设计,提交一个符合上述功能要求的十字路口的交通信号灯控制系统设计。
2、控制流程分析:对设计要求进行分析后可得出以下交通工作状态表:3、硬件设计概要:根据设计要求,可用6个LED灯分别模拟东西、南北的交通灯。
具体接法如下:AT89C51的P1口接LED灯,P1.0、P1.1、P1.2分别接东西方向红、绿、黄交通灯,P1.3、P1.4、P1.5分别接南北方向的红、绿、黄交通灯。
P1口和LED灯之间要接限流保护电阻。
两位数码管段选接P2口,位选接P0口低两位,P0口低两位接上拉电阻使其可以输出高电平。
紧急情况按钮一端接地,另一端与外中断1引脚相连;恢复正常按钮一端接地,另一端与外中断0引脚相连。
三、原理图设计1、LED显示部分电路设计:把单片机AT89C51的P1口作为红黄绿灯显示部分,用6个LED灯分别模拟东西、南北的交通灯。
P1.0、P1.1、P1.2各通过一个300Ω的限流保护电阻接东西方向的红、绿、黄LED灯;P1.3、P1.4、P1.5各通过一个300Ω的限流保护电阻接南北方向的红、绿、黄LED灯。
LED 灯的一端接电源,另一端经电阻接P1口,因此当P1口引脚输出低电平时LED灯发光,即此方案采取低电平驱动方式。
具体电路如下:2、紧急情况处理电路设计:紧急情况按钮一端接地,另一端与外中断1引脚相连;恢复正常按钮一端接地,另一端与外中断0引脚相连。
在程序设计时,我会将其设置为下降沿触发方式。
具体电路如下:3、数字显示电路设计:选用共阴极两位数码管。
两位数码管A~G引脚各通过一个300Ω的限流保护电阻分别接P2.0~P2.6,位选1引脚和2引脚分别接P0.0口低两位,P0口低两位接5kΩ的上拉电阻使其可以输出高电平。
基于51单片机的交通灯(红绿灯)设计论文报告
通过单片机仿真交通灯班级:10级电信姓名:***学号:***********第一章概述1.设计内容:用AT89S52单片机控制一个交通信号灯系统,晶振采用12MHZ。
设A车道与B车道交叉组成十字路口,A是主道,B是支道。
设计要求如下:用发光二极管模拟交通信号灯,用按键开关模拟车辆检测信号。
正常情况下,A、B两车道轮流放行,A车道放行50s,其中5s用于警告;B车道放行30s,其中5s 用于警告。
交通繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯的状态,以缓解交通拥挤状况。
在B 车道放行期间,若A车道有车而B车道无车,按下开关K1 使 A车道放行15s;在 A车道放行期间,若B车道有车而A车道无车,按下开关K1 使B 车道放行15s。
有紧急车辆通过时,按下K2开关使 A、B车道均为红灯,禁行20s。
2.设计目的:1)进一步熟悉和掌握单片机的结构和工作原理。
2)掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
3)通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。
4)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
5)通过完成一个包括电路设计和程序开发的完整过程,为我们今后从事相应工作打下基础。
3.设计原理:利用“自动控制”控制交通灯的方法。
将事先编制好的程序输入单片机,利用单片机的定时、查询、中断功能;能够根据十字路口两个方向上车辆动态状况,采用查询的方式,根据具体情况,自动给予时间通行,其中利用中断方式来处理特殊情况。
这样既方便驾驶员、路人,同时还可以紧急处理一些紧急实况。
同样具有红、黄、绿灯的显示功能,为驾驶员、路人“照明”。
使用AT89C51单片机控制 4个方向的交通灯(红﹑黄﹑绿)并用数码管显示其时间。
了解交通灯管理的基本工作原理,熟练掌握STC89C51的工作原理和应用编程,熟悉STC89C51单片机并行接口的各种工作方式和应用,并了解计数器/定时器的工作方式和应用编程外部中断的方法,掌握多位LED 显示问题的解决。
基于51单片机的交通灯设计
基于51单片机的交通灯设计交通信号灯是指示人和交通工具在道路交通中行进方向或行为的一种交通设施。
在设计交通信号灯时,应考虑交通流量、车辆速度、交叉口结构等因素,以确保交通的顺畅和安全。
本文将基于51单片机设计一种交通信号灯系统,并详细介绍其原理和实现方法。
交通信号灯系统的设计目的是通过控制红、黄、绿三种不同颜色的灯,指示车辆和行人在交通路口安全行驶。
在单片机设计中,我们将使用三个LED灯分别代表红、黄、绿三种状态。
通过控制LED的亮灭,来实现交通信号灯的变换。
首先,我们需要选择适当的硬件设备进行交通信号灯的设计。
在51单片机设计中,可以选择STC89C51或者AT89C51等型号的单片机。
此外,还需要准备三个LED灯、电阻、电容、按键等器件。
接下来,我们将进行电路设计。
在设计电路时,首先将三个LED灯连接到单片机的三个IO口上,每个IO口通过一个电阻与正极连接,负极与GND连接。
此外,在单片机的一个IO口上连接一个按键,通过按下按键触发程序的执行。
在编写程序之前,首先需要确立交通信号灯的运行逻辑。
一般而言,交通信号灯的运行逻辑如下:1.全红状态:所有车辆和行人均停止,任何方向都不可行驶。
2.绿灯状态:一些方向的车辆和行人可以行驶,其他方向均不可行驶。
3.黄灯状态:信号灯将要变成红灯或绿灯,此时车辆和行人应注意刹车或等待。
接下来,我们将编写程序并烧录到单片机中。
在程序中,需要使用到定时器和中断来进行交通信号灯的控制。
具体步骤如下:1.在程序中定义三个LED灯所对应的IO口。
2.初始化定时器,并设置定时时间,用于控制信号灯的变化。
3.设置中断,用于按键的检测和处理。
4.在主循环中,不断检测按键状态,当按键按下时,切换信号灯的状态。
5.根据信号灯的状态,控制LED灯的亮灭。
在程序设计中,应充分考虑各种异常情况和执行顺序,以保证交通信号灯的正常运行。
此外,还可以增加一些辅助功能,如倒计时显示等,以提高交通信号灯的可视性和安全性。
基于单片机的交通灯
按键处理程序:检测按键开关的状态,实现手动控 制交通信号的切换
报警处理程序:在系统异常时,控制蜂鸣器和LED指 示灯发出报警
3系统实现ຫໍສະໝຸດ 3 系统实现代码实现
基于51单片机的交通灯控制系统的代码实现主要采用C语言。下面是一个简单的示例代码 ,用于实现基本的交通灯控制逻辑
基于51单片机的交通 灯‘
--
1 引言 2 系统设计 3 系统实现
1
引言
1 引言
2
系统设计
2 系统设计
硬件设计
基于51单片机的交通灯控制系统硬件部分主要由单片机、电源模块、LED灯模块、按键模 块和报警模块组成。具体设计如下
单片机:采用8051单片机,负责处理和控制系统的各个模块 电源模块:为整个系统提供稳定的工作电压,一般采用5V直流电源
3 系统实现
调试与测试
在代码实现后,需要对系统进行 调试和测试,以确保交通灯控制 逻辑和人机交互功能的正确性。 具体的调试和测试方法可以包括 :连接硬件进行实际操作、观察 LED灯的状态、按键测试和报警 测试等。通过这些测试,可以确 认系统的稳定性和可靠性,为实 际应用提供保障
--
20XX
感谢您的聆听
ADD YOUR TITLE ADD YOUR TITLE HERE.ADD YOUR TITLE.ADD YOUR TITLE. HERE.ADD YOUR TITLE.ADD YOUR TITLE
2 系统设计
LED灯模块:包括红、绿、黄 三种颜色的LED灯,用于模拟 交通信号
按键模块:包含按键开关, 用于手动控制交通信号的切 换
报警模块:包含蜂鸣器和LED 指示灯,用于在系统异常时 发出报警
基于51单片机控制交通灯的程序设计
基于51单片机控制交通灯的程序设计#include<reg51.h>unsigned char code dis_7[21]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0x89,0x8c,0x00,0xff};//共阳数码管段码unsigned char data disbuf[6]={0x00,0x00,0x00,0x00,0x00,0x00};//显示缓冲区:时分秒使用unsigned char data count_timedx[]={2,10,5,10,25}; //东西方向倒计时时间unsigned char data count_timenb[]={2,25,10,5,10}; //南北方向倒计时时间unsigned char data Hour=14,Minite=06,Second=0,Halfsec=0; //定义时钟位unsigned char xdata *ledaddr=0x2000; //锁存器选通地址unsigned char data Ms=0,Lightcode=0,Light_step,Led_step,Light_num;unsigned int dataFault_dx=0,Fault_nb=0,Fault_total=0,Countdx=0,Countnb=0;sbit p10=P1^0; //第0位数码管位控制端sbit p11=P1^1; //第1位数码管位控制端sbit p12=P1^2; //第2位数码管位控制端sbit p13=P1^3; //第3位数码管位控制端sbit p14=P1^4; //第4位数码管位控制端sbit p15=P1^5; //第5位数码管位控制端sbit p16=P1^6; //发光二极管选通sbit p17=P1^7; //按键选通sbit p33=P3^3; //k1键用于切换四种功能/******************************************************************* **********//****************************1毫秒延时函数*******************************/ void delay1ms(int t){unsigned int i,j;for(i=0;i<t;i++)for(j=0;j<120;j++);}/******************************************************************* ********//*************************键盘扫描函数****************************************/ unsigned char getkey(void) {unsigned char Yiwei;unsigned char test=0x00,tim;*ledaddr=test;if(p17==0 && tim==0) //判断是否有按键按下{p17=1;tim=1;test=0xfe;delay1ms(5);for(Yiwei=0;Yiwei<8;Yiwei++) //处理按键{*ledaddr=test;if(p17==0)break;else test=(test<<1)+1;}return Yiwei;}else if(p17==0){}else {tim=0;}}/******************************************************************* **********//************************六位LED数码管显示***********************************/void displed(unsigned int hour_shi,unsigned int hour_ge,unsigned int min_shi,unsigned intmin_ge,unsigned int sec_shi,unsigned int sec_ge){*ledaddr=dis_7[hour_shi]; //时的十位显示p10=0;delay1ms(1);p10=1;*ledaddr=dis_7[hour_ge]; //时的个位显示p11=0;delay1ms(1);p11=1;*ledaddr=dis_7[min_shi]; //分的十位显示p12=0;delay1ms(1);p12=1;*ledaddr=dis_7[min_ge]; //分的个位显示p13=0;delay1ms(1);p13=1;*ledaddr=dis_7[sec_shi]; //秒的十位显示p14=0;delay1ms(1);p14=1;*ledaddr=dis_7[sec_ge]; //秒的个位显示p15=0;delay1ms(1);p15=1;}/******************************************************************* **********//******************************发光二极管显示函数*****************************/void displight(unsigned int state){if(state==0) //状态0:各方向红灯全亮{Lightcode=0xbb;}else if(state==1) //状态1:东西绿灯亮,南北红灯亮{Lightcode=0xbe;}else if(state==2) //状态2:东西黄灯闪烁,南北红灯亮{Lightcode=0xbd;}else if(state==3) //状态3:东西红灯亮,左行亮,南北红灯亮{Lightcode=0xb3;}else if(state==4) //状态4:东西红灯亮,南北直行绿灯亮{Lightcode=0xeb;}else if(state==5) //状态5:东西红灯亮,南北黄灯闪烁{Lightcode=0xdb;}else if(state==6) //状态6:东西红灯亮,南北红灯亮,左行亮{Lightcode=0x3b;}//黄灯闪烁if((Halfsec%2)==0){if(state==2)Lightcode=0xbf; //东西闪烁if(state==5)Lightcode=0xfb; //南北闪烁}*ledaddr=Lightcode; //送交通灯显示状态p16=0;delay1ms(1);p16=1;}/******************************************************************* *********//****************************违章车辆统计函数********************************/void weizhang(void) // 红灯亮的时候是否有车通过,KL1键显示东西,KL2键显示南北 {unsigned char key1;key1=getkey(); //获得键值if((key1==0)&&(Light_step>=4)&&(Light_step<=6)) //KL1键显示南北方向违章车辆,且只在南北方向为红灯时加1{Fault_dx++;if(Fault_dx==99) //最大计数99辆{Fault_dx=0;}}else if((key1==2)&&(Light_step>=1)&&(Light_step<=3)) //KL3键显示东西方向违章车辆,且只在东西方向为红灯时加1{Fault_nb++;if(Fault_nb==99) //最大计数99辆{Fault_nb=0;}}}/******************************************************************* ********//****************************数字钟函数***********************************/void shuzizhong(void) //数字钟:KL3键调节秒,KL4键调节分,KL5键调节时 {unsigned char data key2;key2=getkey(); //获得键值if(key2==2) //调节秒,按一次KL3,则加一秒{Second++;if(Second==60)Second=0;}if(key2==3) //调节分,按一次KL4,则加一分{Minite++;if(Minite==60)Minite=0;}if(key2==4) //调节时,按一次KL5,则加一时{Hour++;if(Hour==24)Hour=0;}disbuf[0]=Second%10; //时钟显示,送缓冲区disbuf[1]=Second/10;disbuf[2]=Minite%10;disbuf[3]=Minite/10;disbuf[4]=Hour%10;disbuf[5]=Hour/10;}/******************************************************************* **********//**************修改倒计时间函数*********************************************/void change_time(void) //注意:只修改绿灯、黄灯或左行灯时间,红灯时间自动求出 {unsigned int data key3=0;key3=getkey();if(key3==4) //KL5键选择要修改东西向倒计时{Light_num++;if(Light_num>4) Light_num=0;}if(key3==5) //KL2键用于修改东西方向倒计时,加1 {count_timedx[Light_num]++;if(count_timedx[Light_num]>=99)count_timedx[Light_num]=99;}if(key3==1)//KL6键用于修改东西方向倒计时,减1 {count_timedx[Light_num]--;if(count_timedx[Light_num]<1)count_timedx[Light_num]=1;}if(key3==6) //KL7键用于修改南北方向倒计时,加1 {count_timenb[Light_num]++;if(count_timenb[Light_num]>=99)count_timenb[Light_num]=99;}if(key3==2)//KL3键用于修改南北方向倒计时,减1 {count_timenb[Light_num]--;if(count_timenb[Light_num]<1)count_timenb[Light_num]=1;}count_timedx[4]=count_timenb[2]+count_timenb[3]+count_timenb[4]; //调整,求各方向红灯时间count_timenb[1]=count_timedx[1]+count_timedx[2]+count_timedx[3]; //红灯时间=绿灯+黄灯+左行灯}/******************************************************************* *********//************************定时器/计数器t0中断函数******************************/void time_intt0(void) interrupt 1 {TH0=0x4c; //赋初值定时50msTL0=0x00;Ms++;if(Ms>9){Ms=0;Halfsec++; //计时半秒if(Halfsec==2){Halfsec=0;Second++; //计时一秒Countdx--; //东西、南北倒计时减一Countnb--;}if(Second==60){Second=0;Minite++;//计时一分}if(Minite==60){Minite=0;Hour++; //计时一小时}if(Hour==24)Hour=0;}if((Countdx==0)||(Countnb==0)) //转换交通灯显示状态{Light_step++;if(Light_step>6){Light_step=1;}if(Countnb==0)Countnb=count_timenb[Light_step];//东西为红灯,南北绿、黄、左切换if(Countdx==0)Countdx=count_timedx[Light_step];//南北为红灯,东西绿、黄、左切换}}/******************************************************************* **********//****************外部中断1服务函数********************************************/void int_1(void) interrupt 2 //数码管显示状态切换 {EX1=0; //关中断if(Led_step<4){Led_step++;}if(Led_step==4){Led_step=0;}EX1=1;//开中断}/************串行口中断服务函数*********************************************/void ser_put(void) interrupt 4 //上位机发出字符'c',则清违章记录,若发出'g',则上传违章记录{if(RI==1) //接收到上位机发出的字符{RI=0;ACC=SBUF; //取字符if(ACC=='c') //清违章记录{Fault_dx=0;Fault_nb=0;}else if(ACC=='g')//上传违章记录{Fault_total=Fault_dx+Fault_nb;SBUF=Fault_total;}}if(TI==1) //发送中断TI=0;}/******************************************************************* **********//***************8051初始化函数************************************************/void Istr(void) {/*定时器初始化*/TMOD=0x21;//定时器1工作于方式2,做波特率发生器;定时器0工作于方式1,做定时器TH1=0xfa; //产生9.6kbit/s波特率TL1=0xfa;TH0=0x4c; //50msTL0=0x00;/*串行通信初始化*/SCON=0x50;PCON=0X80|PCON;/*启动定时器,开中断*/ET1=0; //禁止定时器1中断ET0=1;TR1=1;TR0=1;IT1=1; //设置外部中断为边沿触发EX1=1;ES=1;EA=1;}/************************主函数***********************************************/ void main(void) {Istr(); //调用初始化函数Led_step=0;Light_step=0;Light_num=0;Countdx=count_timedx[0];Countnb=count_timenb[0];SBUF='s';while(1){if(Led_step==0) //显示倒计时{displed(20,(Countdx/10),(Countdx%10),20,(Countnb/10),(Countnb%10));}if(Led_step==1) //显示时钟{shuzizhong(); //调用数字钟函数displed(disbuf[5],disbuf[4],disbuf[3],disbuf[2],disbuf[1],disbuf[0]);}if(Led_step==2) //修改倒计时数{change_time(); //调用修改倒计时时间函数displed(Light_num,count_timedx[Light_num]/10,count_timedx[Light_num]%10,Light_num,count_timenb[Light_num]/10,count_timenb[Light_num]%10);}if(Led_step==3) //显示并统计违章数{weizhang(); //调用违章记录函数displed(15,Fault_dx/10,Fault_dx%10,15,Fault_nb/10,Fault_nb%10);}displight(Light_step);//显示交通灯}}/*********over*******over************over*********over*********over* ******over***/。
基于51单片机的交通灯控制系统设计
一、摘要:随着科技的飞速发展,越来越多的控制功能强大的芯片出现在我们生活中,但8051系列单片机,因为其的廉价几成本,在我们生活中依然处于十分重要的地位。
在实时检测和自动控制的单片机应用系统中,单片机是作为一个核心部件来使用,但是仅单片机方面知识是不够的,还需要根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
作为交通控制的重要组成部份单片机。
因此,本人选择制作交通灯作为课题加以设计并实现。
交通管制应当以人性化、智能化为目的,做出相应的改善。
以此为出发点,本系统采用的单片机控制的交通信号灯。
系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广阔的应用前景。
关键词:交通灯,51单片机,数码管二、实习目的和意义1.学习51单片机的最小系统及硬件接口设计与应用2.熟练掌握电路原理图绘制软件DPX的使用。
3.熟练单片机的程序设计与调试。
4. 自主设计出具有实际意义的能用于生活的电路系统。
5. 本次课程设计对以后的毕业设计甚至工作打下了动手自己设计的基础。
三、实习要求1. 完成以8051系列单片机为核心处理器的模拟十字路口交通灯控制的硬件设计(在altium designer下画出硬件原理图)。
布线,印制电路板,并焊接原件搭载硬件电路,做出实物。
2. 完成交通灯控制系统的软件编程。
3. 软硬件综合调试,模拟实现对交通灯控制系统的控制。
4. 撰写实验报告:报告中给出硬件方案、软件流程图、软件关键代码四、实习内容1.设计题目:基于51单片机交通十字路口信号灯设计2.实现功能:具有红、绿、黄三种颜色彩灯,并有一个数码管进行倒计时显示倒计时时间为三十秒。
还应具有按键控制特殊情况下十字路口不需要红绿灯的显示(车流量很少的地段深夜可以不设红绿灯)。
五、系统实现1.电路设计:51单片机介绍:本实验使用的51单片机为STC89C52STC89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM)。
基于51单片机的交通灯设计
基于51单片机的交通灯设计交通信号灯是现代城市交通管理的重要组成部分,也是保障道路交通安全的关键设施之一、为了更好地了解交通信号灯的设计原理和实现方法,本文将以基于51单片机的交通灯设计为例,详细介绍相关知识。
首先,我们需要了解51单片机的基本知识。
51单片机是一种常见的8位单片机,广泛应用于各类嵌入式系统中。
其开发工具多样,编程语言灵活,易于上手。
交通信号灯通常由红、黄、绿三种颜色的灯组成。
在运行过程中,红灯、黄灯和绿灯依次亮起,来实现交通的有序流动。
这背后的原理是通过控制每个灯的亮灭状态和持续时间,来控制车辆和行人的行动。
1.硬件设计:首先,需要设计交通信号灯的电路,并将其连接到51单片机上。
电路中需要包括三个LED灯(红、黄、绿),以及相应的电阻和连接线路。
2.程序编写:使用51单片机开发环境,编写程序来控制交通信号灯的闪烁状态和时间。
程序中需要定义每个灯的亮灭状态和持续时间,并按照预定的顺序进行切换。
可能遇到的问题和解决方法:1.灯的亮灭状态和时间不符合预期:检查程序中对每个灯的控制语句,确保逻辑正确。
也可以通过使用调试器来单步执行代码,以查看每个步骤的执行情况。
2.电路连接错误:检查电路连接是否正确,确保每个灯的电源和地线正确连接,并没有短路或断路的情况。
3.程序逻辑错误:检查程序中的条件判断和循环语句,确保程序按照预期的顺序和时间来切换灯的状态。
在交通信号灯设计中,还可以考虑以下几个方面的优化:1.增加传感器:可以通过添加传感器模块,来根据实时的交通流量和行人情况,动态调整交通信号灯的切换时间。
这样可以更好地适应实际交通状况。
2.增加无线通信功能:可以通过添加无线通信模块,与其他信号灯或交通管理中心进行通信,实现更高级的交通控制和协调。
这样可以提高交通效率和安全性。
3.引入自学习算法:可以通过引入机器学习算法,对交通信号灯进行优化和调整。
根据交通流量、行人情况等实时数据,自动调整交通信号灯的切换策略,进一步提升交通效率。
基于51单片机的交通灯设计
课程设计报告课程名称:单片机原理及应用课程设计系部:电气与信息工程学院专业班级:__________________________学生姓名:__________________________指导教师:__________________________完成时刻:___________________________报告成绩:__________________________评阅意见:评阅教师日期目录No table of contents entries found.交通灯控制系统设计一、设计题目交通灯控制系统设讣二、设计要求(1)设计一个十字路口的交通灯控制电路,要求当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。
时刻为60秒。
(2)黃灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。
(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。
时刻为80秒。
东西方向车流大通行时刻长。
(4)东西、南北方向车道除有红、绿、黃三色指示灯外,每一种灯亮的显示时刻都用显示器进行显示,釆用计时的方式设计。
三、设计作用与目的最近儿年来随着科技快速的进展,单片机的应用正在不断地走向深切,同时带动传统检测日新月异更新。
在实验检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来利用,针对具体应用对象的特点,配以其他器件来家以完善,伴随人口的日趋增加,那么十字路口车辆穿梭,如何才能让交通井然有序呢?靠的就是交通信号的自动指挥系统。
信号灯的出现,使交通得以有效的管制,对于交通流量、提高道路通行能力,减少交通事故有明显的效果。
绿灯是通行信号,面对绿灯信号的车辆能够直行,左拐弯和右拐弯,除非另一种禁止转向。
左右转弯车辆都必需让正在路口内直行的车辆和过人行横道行人优先通行。
红灯是禁I匕信号面对红灯的车辆必需停车。
黃灯是警告信号,面对黄灯信号的车辆不呢么好越过安全停车线,可是车辆十分接近停车线而不能安全停车时能够进入交义路口。
基于51单片机的交通灯设计论文报告
基于51单片机的交通灯设计论文报告交通灯(红绿灯)是城市交通系统中非常重要的一部分,它在控制交通流量以及确保道路安全方面发挥着关键作用。
随着科技的不断发展,交通灯的设计也越来越智能化和高效。
本篇论文将以51单片机为基础,设计一种基于51单片机的交通灯系统,包括电路设计、程序编写以及系统的实现。
首先,我们需要设计电路来实现交通灯系统。
基于51单片机的交通灯系统通常由红灯、黄灯和绿灯组成。
电路的设计要求能够控制灯的亮灭以及灯的颜色变换。
我们可以使用三个LED灯作为交通灯的灯泡,通过控制灯泡的亮灭来实现交通灯的变化。
使用适当的电阻和电容来限制电流和滤波。
接下来,我们需要编写程序来控制交通灯的变换。
通过使用51单片机的GPIO引脚,可以直接控制LED灯的亮灭。
在程序中,我们需要设置灯的亮灭时间以及灯的切换时机。
通过使用定时器和中断来实现定时控制,可以让灯在规定的时间内变换。
在系统的实现中,我们需要将电路和程序进行整合。
将电路连接到单片机上相应的引脚上,并通过编写程序来控制引脚的电平变化。
同时,我们还可以加入人体红外传感器等外设来实现智能控制,例如通过检测车流量来调节交通灯变换的时间。
在设计交通灯系统时,还需要考虑到系统的可靠性和稳定性。
我们可以通过电路设计上的合理选择和优化来降低系统的故障率,并确保系统能够长时间稳定运行。
通过基于51单片机的交通灯系统设计与实现,可以有效控制交通流量、提高交通效率,并确保道路的安全性。
同时,该系统还具有灵活性和可扩展性,可以根据实际需要进行调整和升级。
综上所述,本论文基于51单片机设计了一种交通灯系统。
通过电路设计、程序编写以及系统的实现,可以实现交通灯的控制和变换。
该系统具有智能化、高效性和稳定性等特点,有助于提高交通管理水平和道路安全。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章 整体设计
1.交通控制系统总体设计
设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行。共有4种状态,这4种状态如下,周而复始,循环变化。
关键词:电子线路、STC89C52、交通灯
第1章
1.概述
在城镇街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红黄绿信号灯。其中红灯亮,表示该条道路禁止;黄灯亮表示该条道路上未过停车线的车辆停止通行,已过停车线的车辆继续通行;绿灯亮表示该条道路允许通行。交通灯控制电路自动控制十字路口红黄绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口交通管理的自动化。
2.设计目的
2.1 通过本次课程设计进一步熟悉和掌握单片机的结构及工作原理,巩固和加深“单片机原理与应用”课程的基本知识,Hale Waihona Puke 握电子设计知识在实际中的简单应用。
2.2 综合运用“单片机原理与应用”课程和先修课程的理论及生产实际知识去分析和解决电子设计问题,进行电子设计的训练。
2.3 学习电子设计的一般方法,掌握STC89C52芯片以及简单电子设计过程和运行方式,培养正确的设计思想和分析问题、解决问题的能力,特别是总体设计能力。
师大学
电气工程及自动化
实习报告
姓 名:
班 级:
学 号:
实习科目:单片机实训
指导教师:
实习时间:
智能交通信号灯
摘 要
本设计是在熟练掌握单片机及其仿真系统使用方法基础上,综合应用单片机原理、微机原理等课程方面的知识,设计一个采用STC89C52单片机控制的交通灯控制电路。该设计结合实际情况给出了一种简单低成本城市交通灯控制系统的硬件及软件设计方案、各个路口交通灯的状态循环显示,并对程序流程图进行详细讲解分析。交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。根据给出的要求设计交通灯东西、南北两干道交于一个十字路口各干道有一组红、黄、绿三色的指示灯指挥车辆和行人安全通行。红灯亮禁止通行绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换且黄灯亮的时间为东西、南北两干道的公共停车时间。
4.实验原理
4.1 基本原理
主体电路:交通灯自动控制模块。这部分电路主要由80C51单片机的I/O端口、定时计数器等组成。
本设计先是从普通三色灯的指示开始进行设计,用P1口作为输出。程序的初始化是东西南北方向的红灯全亮。然后南北方向红灯亮,东西方向绿灯亮,60秒后东西方向黄灯闪亮5秒后南北方向绿灯亮,东西方向红灯亮。重复执行。倒计时用到定时器T0,用P2口作为LED的显示。二位一体的LED重复执行60秒的倒计时。作为突发事件的处理,本设计主要用到外部中断EX0。用一模拟开关作为中断信号。实际中可以接其它可以产生中断信号的信号源。
第二章芯片与元件
1.MCU:STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K 系统可编程Flash存储器。高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52在众多嵌入式控制应用系统中得到广泛应用。
2.4 通过计算和绘制原理图、布线图和流程图,学会运用标准、规、手册、图册和查阅有关技术资料等,培养电子设计的基本技能。
2.5 通过完成一个包括电路设计和程序开发的完整过程,了解开发单片机应用系统全过程,为今后从事的工作打基础。
3.设计要求
3.1 利用单片机的定时器定时,实现道路的红绿灯交替点亮和熄灭。
⑬双数据指针;
⑭掉电标识符。
2.74HC573:74HC573包含八进制3态非反转透明锁存器,是一种高性能硅门CMOS器件。当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。主要功能:三态总线驱动输出、置数全并行存取、缓冲控制输入、使能输入有改善抗扰度的滞后作用。
3.2 以STC89C52单片机为核心,设计一个十字路口交通灯控制系统。用单片机控制LED灯模拟交通信号灯显示。假定东西、南北方向方向通行(绿灯)时间为30秒,缓冲(黄灯)时间5秒,停止(红灯)时间30秒。
3.3 南北方向、东西方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用倒计时的方法)。
1.单片机最小系统
图3.1 51单片机最小系统版
2. 数码管显示电路:由8位共阴LED数码管即驱动芯片74HC573组成,单片机控制两片锁存器是使能端,通过不停打开关闭使能端达到单片机一个8位I/O口控制8位数码管显示的效果。数码管显示电路如图3.2所示。
图3.2数码管显示电路
3.12位LED灯:由12个LED小灯排列起来,加上限流电阻就组成了12位交通灯。12位流水灯的阴极接在单片机的I/O端口,以灌电流输进单片机从而驱动LED。交通LED灯的原理图如图3.3所示。
3.led数码管:led数码管(LED Segment Displays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。
第三章电路设计
主要性能:
①与MCS-51单片机产品兼容;
②8K字节在系统可编程Flash存储器;
③1000次擦写周期;
④全静态操作:0Hz-33MHz;
⑤三级加密程序存储器;
⑥32个可编程I/O口线;
⑦三个16位定时器/计数器;
⑧8个中断源;
⑨全双工UART串行通道;
⑩低功耗空闲和掉电模式;
⑪掉电后中断可唤醒;
⑫看门狗定时器;