基于80C51的交通灯设

合集下载

51单片机交通灯设计要点

51单片机交通灯设计要点

摘要交通信号灯是交通信号中的重要组成部分,是道路交通的基本语言,是为了加强道路交通管理,减少交通事故的发生,提高道路使用效率,改善交通状况的一种重要工具。

适用于十字、丁字等交叉路口,由道路交通信号控制机控制,指导车辆和行人安全有序地通行。

交通信号灯由红灯(表示禁止通行)、绿灯(表示允许通行)、黄灯(表示警示)组成。

分为:机动车信号灯、非机动车信号灯、人行横道信号灯、车道信号灯、方向指示信号灯、闪光警告信号灯、道路与铁路平面交叉道口信号灯。

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制技术日益更新。

接下来将介绍基于单片机控制的交通信号灯的自动指挥系统。

交通信号灯控制方式很多。

本系统采用MSC-51系列单片机80C51和芯片74LS245为中心器件来设计交通灯控制系统。

、关键字:单片机,信号灯,控制前言道路交通信号灯是交通安全产品中的一种类别,是为了加强道路交通管理,减少交通事故的发生,提高道路使用效率,改善交通状况的一种重要工具。

适用于十字、丁字等交叉路口,由道路交通信号控制机控制,指导车辆和行人安全有序地通行。

最早的时候只有红、绿两种颜色,后来经过改良后,增加了一盏黄色的灯,红灯表示停止,黄灯表示准备,绿灯则表示通行。

之所以采用这三种颜色,一方面是三原色,其他颜色也是在此基础上调出来的,另一方面,用这三种颜色作为交通讯号也和人们的视觉结构和心理反应有关。

人的视网膜含有杆状和三种锥状感光细胞,杆状细胞对黄色的光特别敏感,三种锥状细胞则分别对红光、绿光及蓝光最敏感。

由于这种视觉结构,人最容易分辨红色与绿色。

虽然黄色与蓝色也容易分辨,但因为眼球对蓝光敏感的感光细胞较少,所以分辨颜色,还是以红、绿色为佳。

交通信号灯是交通信号指挥中的重要组成部分,是道路交通的基本语言。

交通信号灯由红灯(表示禁止通行)、绿灯(表示允许通行)、黄灯(表示警示)组成。

分为:机动车信号灯、非机动车信号灯、人行横道信号灯、车道信号灯、方向指示信号灯、闪光警告信号灯、道路与铁路平面交叉道口信号灯。

基于单片机的交通灯控制器设计

基于单片机的交通灯控制器设计

摘要随着生活水平的提高,汽车越来越普及。

因此,红绿灯安装在各个道口上,也渐渐成为了疏导交通车辆最常见和最有效的手段。

信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

本系统采用80C51单片机为中心器件来设计交通灯控制器,实现了实时显示当前通行剩余时间;按东西道红灯和南北道绿灯亮22秒后东西道、南北道黄灯闪烁3秒,再东西道绿灯和南北道红灯亮27秒,之后黄灯闪烁3秒的规律控制东西和南北方向的交通灯;能手动设置通行方向3种功能。

4位数码管显示剩余通行时间,2位显示东西方向通行剩余时间,2位显示南北方向通行剩余时间。

本系统实用性强、操作简单、扩展功能强。

关键词:单片机交通灯动态扫描自动控制手动设置1交通灯控制器的功能规划本次设计的交通灯控制器有2种工作模式,分别是正常状态下的自动控制模式和紧急情况下的手动控制模式。

自动控制模式是在单片机的控制下实现东西道与南北道红绿灯循环点亮,倒计时剩3秒时黄灯闪烁警示,并且实时显示当前通行剩余时间。

手动控制模式是在有按键按下的时候相应的通道置于绿灯,另外一个通道置于红灯,直到有返回键按下之后自动返回到自动控制模式。

2方案设计2.1 硬件方案设计本次课程设计所使用的单片机为STC89C51,STC89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用STCMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的STC89C51提供了高性价比的解决方案。

STC89C51主要功能特性:1、兼容MCS—51指令系统,4k可反复擦写(>1000次)Flash ROM2、32个双向I/O口,可编程UARL通道3、两个16位可编程定时/计数器,全静态操作0-24MHz4、1个串行中断,128x8bit内部RAM5、两个外部中断源,共6个中断源6、可直接驱动LED,3级加密位7、低功耗空闲和掉电模式晶振采用11.0592MHZ提供定时脉冲。

80c51单片机交通灯课程设计报告1.pdf

80c51单片机交通灯课程设计报告1.pdf

80C51单片机交通灯课程设计报告目录第一章引言 (3)第二章单片机概述 (4)第三章芯片介绍 (6)3.1AT89S51单片机介绍 (6)3.1.1简介 (6)3.1.2主要管脚介绍 (6)3.274LS164介绍 (8)3.3共阳数码管介绍 (8)3.3.1分类简介 (8)图3.3LED数码管引脚定义 (9)3.3.2驱动方式 (9)3.3.3主要参数 (10)3.3.4应用范围 (10)第四章系统硬件设计 (11)4.1硬件设计要求 (11)4.2硬件设计所用元器件 (11)4.3硬件设计图 (11)4.4设计流程图 (12)第五章系统软件设计 (13)5.1流程图 (13)5.2程序设计 (14)第六章结论 (16)参考文献 (18)第一章引言在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。

但这一技术在19世纪就已出现了。

1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。

这是世界上最早的交通信号灯。

1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。

它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。

1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。

1914年,电气启动的红绿灯出现在美国。

这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。

红灯亮表示“停止”,绿灯亮表示“通行”。

智能的交通信号灯指挥着人和各种车辆的安全运行,实现红、黄、绿灯的自动指挥是城乡交通管理现代化的重要课题.在城乡街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红、黄、绿交通信号灯,其中红灯亮,表示该条道路禁止通行;黄灯亮,表示该条道路上未过停车线的车辆停止通行,已过停车线的车辆继续通行;绿灯亮,表示该条道路允许通行.交通灯控制电路自动控制十字路口两组红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口城乡交通管理自动化。

基于80C51单片机的交通灯C语言源程序

基于80C51单片机的交通灯C语言源程序

#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit SH_CP=P2^0;sbit DS=P2^1;sbit ST_CP=P2^2;uchar temp;uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; void NB_tong();void DX_tong();void NBY_show();void DXY_show();sbit RED_A=P1^0;//A代表NB南北sbit YELLOW_A=P1^1;sbit GREEN_A=P1^2;sbit RED_B=P1^3;//B代表DX东西sbit YELLOW_B=P1^4;sbit GREEN_B=P1^5;sbit K1=P3^0;sbit K2=P3^1;sbit K3=P3^3;sbit SPK=P3^7;//蜂鸣器uchar time=0,Count=0;//--------------------------------//延时//--------------------------------void DelayMS(uint x){uchar t;while(x--) for(t=0;t<120;t++);}//---------------------------------------//74HC595的驱动//---------------------------------------void In_595(){uchar i;for(i=0;i<8;i++){temp<<=1;DS=CY;SH_CP=1;_nop_();_nop_();SH_CP=0;}void Out_595(){ST_CP=0;_nop_();ST_CP=1;_nop_();ST_CP=0;}//---------------------------------------//T0定时器定时及各种情况下灯亮的调用//---------------------------------------void Timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;Count++;time=time%60;if(Count==20){time++;Count=0;}if(time<=30) NB_tong();if((time>30)&&(time<=35)) NBY_show();if((time>35)&&(time<=55)) DX_tong();if((time>55)&&(time<=60)) DXY_show();}//------------------------------------//按键处理//------------------------------------void EX_INT0() interrupt 0{if(K1==0) //K1按下强制NB南北通行,倒计时黑屏暂停;断开继续以前动作。

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

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

目录一引言 (2)二概要设计 (2)2.1 设计思路 (2)2.2总体设计框图 (3)三硬件设计 (3)3.1LED循环电路设计 (3)3.1.1 89cs51单片机概述 (3)3.1.2 LED循环说明 (5)3.2 倒计时显示电路 (6)3.2.1 74LS164芯片 (6)3.2.2 共阴极数码显示管 (7)3.2.3 倒计时电路 (7)3.2.4 急通车电路 (7)四软件按设计 (8)4.1 程序流程图: (8)4.2 LED红绿灯显示 (9)4.3倒计时显示 (10)4.4 急通车控制 (10)4.5程序代码 (10)五总结 (10)参考文献 (10)附录一: (10)附录二: (11)基于51单片机的交通灯控制系统设计摘要:在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

交通灯控制系统由80C51单片机、键盘、LED 显示、交通灯延时组成。

系统除具有基本交通灯功能外,还具有时间设置、LED信息显示功能,市交通实现有效控制。

关键词:交通灯,单片机,自动控制一引言当今,红绿灯安装在个个道口上,已经成为疏导交通车辆最常见和最有效的手段。

但这个技术在19世纪就已经出现了。

1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械般手势信号灯,用以指挥马车通行。

这是世界上最早的交通信号灯。

1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的会议大厦前的广场上,安装了世界上最早的煤气红绿灯。

它由红绿两以旋转方式玻璃提灯组成,红色表示“停止”,绿色表示“注意”。

1869年1月2日,煤气灯爆炸,是警察受伤,遂被取消!电气启动的红绿灯出现在美国,这种红绿灯由红黄绿三色圆形的投光器组成,1914年始装于纽约市5号大街的一座高塔上。

红灯亮表示“停止”,绿灯亮表示“通行”。

信号灯的出现,使得交通得以有效的管理,对于疏导交通流量、提高道路通行能力、减少交通事故有明显效果。

基于80C51的交通灯

基于80C51的交通灯

单片机课程设计题目51单片机的交通灯控制系统设计学院名称指导教师班级学号学生姓名2010年6月19日摘要:在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

交通灯控制系统由80C51单片机、键盘、LED显示、交通灯延时组成。

系统除具有基本交通灯功能外,还具有时间设置、LED信息显示功能,市交通实现有效控制。

关键词:交通灯,单片机,自动控制Abstract: in the daily life, the use of traffic lights, traffic management, and to be effective, improve road relieves traffic flow capacity, reduce the number of traffic accidents has obvious effect. 80C51 SCM by traffic control system, the keyboard, the LED display, traffic delays. Besides the basic traffic system function outside, still have time to set, the LED display function effectively, city traffic control.Keywords: light, SCM, automatic control目录一、引言 (4)二、概要设计 (5)2.1 设计思路 (5)2.2总体设计框图 (5)三、硬件设计 (6)3.1LED循环电路设计 (6)3.1.1 89cs51单片机概述 (6)3.1.2 80C51单片机的时钟 (9)3.1.3 80C51的封装和引脚 (11)3.2.1LED循环灯的说明 (14)四软件按设计 (15)4.1 程序流程图: (15)4.2 LED红绿灯显示 (17)五总结 (17)参考文献 (18)附录一:程序源代码 (18)附录二:PCB图 (24)基于51单片机的交通灯控制系统设计一、引言当今,红绿灯安装在个个道口上,已经成为疏导交通车辆最常见和最有效的手段。

基于80c51单片机实现交通灯控制

80c51单片机实现交通灯控制作者姓名:姚孟豪专业班级:机电一体化专业指导教师:郑丽文(老师)摘要本系统由单片机系统、键盘、LED 显示、交通灯演示系统组成。

系统包括人行道、左转、右转、以及基本的交通灯的功能。

系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间、违规车辆检测以及根据具体情况手动控制等功能。

关键词:AT89S51,交通规则,LEDAbstractThis system is made up of single-chip microcomputer , keyboard ,led displaying module and Traffic lights system .The system includes pavement ,left turning ,right turning ,and the basic traffic lights function .Excepting the basic traffic lights function ,it also includes counting ,time installing , emergency disposing ,speech cluing, LCD information displaying ,adjusting the lighting time of lights based on different time and controlling with hand in accordance with circumstances and so on.Key Words: AT89S51 , Traffic regular,LED目录第一章序言……………………………………………………………………∙∙∙∙∙∙∙∙∙∙∙41.1 交通灯的形成……………………………………………………………………………∙∙∙41.2芯片简介……………………………………………………………………………………∙51.3论文研究内容与章节安排…………………………………………………………………∙6 第二章方案比较、设计与论证………………………………………………………∙∙72.1电源提供案……………………………………………………………………………∙∙∙∙∙∙∙∙∙72.2 显示界面方案……………………………………………………………………………∙∙∙72.3 输入方案…………………………………………………………………………………∙∙∙8 第三章理论分析与计算………………………………………………………∙∙∙……∙∙∙93.1交通灯显示时序的理论分析与计算∙ (9)3.2交通灯显示时间的理论分析与计算……………………………………………………∙∙∙∙12 第四章电路图及设计文件……………………………………………………∙∙∙……∙∙134.1 灯控制电路设计…………………………………………………………………………∙∙∙134.2倒计时显示电路设计………………………………………………………………………∙134.3违规车辆检测电路设计…………………………………………………………………∙∙∙∙15 第五章程序设计思路与流程图………………………………………………………∙∙175.1主程序流程图……………………………………………………………………………∙∙∙∙175.2.按键子程序流程图………………………………………………………………………∙∙20 第六章测试、数据及结果分析………………………………………………∙∙……∙∙246.1状态灯显示测试……………………………………………………………………………∙246.2数码管的测试……………………………………………………………………………∙∙∙∙246.3整体电路测试.......................................................................................∙∙24 总结.........................................................................................................∙∙∙ (25)附录:......................................................................................................∙∙ (26)第一章序言1.1 交通灯的形成当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。

单片机80C51 交通灯程序

#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit RED_DONGXI = P1^0;//南北方向红灯亮sbit YELLOW_DONGXI = P1^1;//南北方向黄灯亮sbit RED_NANBEI = P1^3;//东西方向红灯亮sbit GREEN_DONGXI = P1^2;//南北方向绿灯亮sbit YELLOW_NANBEI = P1^4;//东西方向黄灯亮sbit GREEN_NANBEI = P1^5;//东西方向绿灯亮sbit DXweixuan1 = P1^6;//南北方向数码管位选1sbit DXweixuan2 = P1^7;//南北方向数码管位选2sbit NBweixuan1 = P3^0;//东西方向数码管位选1sbit NBweixuan2 = P3^1;//东西方向数码管位选2sbit L1=P3^5; sbit L2=P3^6;sbit L3=P3^7;uintaa, bai,shi,ge,bb;uint shi1,ge1,shi2,ge2;uint code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uint code table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void delay(uint z);voidinit(uint a);void display(uint shi1,uint ge1,uint shi2,uint ge2);void xtimer0();void init1();void init2();void init3();void init4();void init5();void xint1();void xint0();void LED_ON();void LED_OFF();void main(){P0=0xFF;P1=0xFF;P2=0x00;P3=0xFF;EA=1;EX0=1;IT0=0;init1();while(1){init2();//第2个状态init3(); //第3个状态init4(); //第4个状态init5();//第5个状态}}void init1()//第一个状态:东西、南北方向均亮红灯5S{uint temp;temp=5;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;while(1){RED_DONGXI=0; //第一个状态东西、南北均亮红灯5SRED_NANBEI=0;GREEN_DONGXI=1;GREEN_NANBEI=1;YELLOW_DONGXI=1;YELLOW_NANBEI=1;if(aa==20)//定时20*50MS=1S{aa=0;temp--;}shi1=shi2=temp/10;ge1=ge2=temp%10;if(temp==0){temp=5;break;}display(ge1,shi1,ge2,shi2);}}void init2()//第二个状态:东西亮红灯30S~5S、南北亮绿灯25~0S; {uint temp;temp=26;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;while(1){RED_DONGXI=1;RED_NANBEI=0;GREEN_DONGXI=0;GREEN_NANBEI=1;YELLOW_DONGXI=1;//第二个状态:东西亮绿灯25S、南北亮红灯YELLOW_NANBEI=1;if(aa==20)//定时20*50MS=1S{aa=0;temp--;shi1=(temp+5)/10;ge1=(temp+5)%10;shi2=temp/10;ge2=temp%10;if(temp==0){temp=26;break;}}display(ge1,shi1,ge2,shi2);}}voidinit3() //第三个状态:东西绿灯变为黄灯闪5次、南北亮红灯5S {uint temp;temp=6;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;while(1){RED_NANBEI=0;GREEN_DONGXI=1;if(aa==20)//定时20*50MS=1S{aa=0;temp--;YELLOW_DONGXI=~YELLOW_DONGXI;shi1=temp/10;shi2=shi1;ge1=temp%10;ge2=ge1;}if(temp==0){temp=6;break;}display(ge1,shi1,ge2,shi2);}}voidinit4()//第四个状态:东西亮绿灯25~0S,南北方向亮红灯30~5S;{uint temp;temp=26;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;while(1){RED_DONGXI=0;RED_NANBEI=1;YELLOW_DONGXI=1;//第一个状态东西、南北均亮红灯5S GREEN_NANBEI=0;if(aa==20){aa=0;temp--;shi1=temp/10;shi2=(temp+5)/10;ge1=temp%10;ge2=(temp+5)%10;if(temp==0){temp=26;break;}}display(ge1,shi1,ge2,shi2);}}voidinit5()//第五个状态:东西亮红灯、南北绿灯闪5次转亮黄灯5S {uint temp;temp=6;TMOD=0x01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;ET0=1;TR0=1;while(1){RED_NANBEI=1;RED_DONGXI=0;GREEN_DONGXI=1;GREEN_NANBEI=1;if(aa==20){aa=0;temp--;YELLOW_NANBEI=~YELLOW_NANBEI;shi1=temp/10;shi2=shi2;ge1=temp%10;ge2=ge1;if(temp==0){temp=6;break;}}display(ge1,shi1,ge2,shi2);}}display(uint shi1,uint ge1,uint shi2,uint ge2) {DXweixuan1=0;DXweixuan2=1;NBweixuan1=1;NBweixuan2=1;P0=table[ge1];delay(5);DXweixuan1=1;DXweixuan2=0;NBweixuan1=1;NBweixuan2=1;P0=table[shi1];delay(5);DXweixuan1=1;DXweixuan2=1;NBweixuan1=0;NBweixuan2=1;P0=table[ge2];delay(5);DXweixuan1=1;DXweixuan2=1;NBweixuan1=1;NBweixuan2=0;P0=table[shi2];delay(5);}voidxint0() interrupt 0{RED_NANBEI=0;RED_DONGXI=0;GREEN_NANBEI=1;GREEN_DONGXI=1;YELLOW_NANBEI=1;YELLOW_DONGXI=1;P0=0x00;NBweixuan1=0;NBweixuan2=0;DXweixuan1=0;DXweixuan2=0;delay(2);returnvoidxint1() interrupt 2{RED_NANBEI=1;RED_DONGXI=1; GREEN_NANBEI=0; GREEN_DONGXI=0; YELLOW_NANBEI=1; YELLOW_DONGXI=1;P0=0x00;NBweixuan1=0; NBweixuan2=0; DXweixuan1=0; DXweixuan2=0;delay(2);return;}voidxtimer0() interrupt 1 {TH0=(65535-50000)/256; TL0=(65535-50000)%256; aa++;}voiddelay(uint z){uintx,y;for(x=0;x<z;x++)for(y=0;y<110;y++);}。

单片机80c51交通信号灯模拟控制系统设计

交通信号灯模拟控制系统设计程序流程图开始↓8051初使化↓四个路口红灯亮↓东西红灯亮,南北绿灯亮,延时↓东西红灯亮,南北黄灯闪烁,延时↓东西绿灯亮,南北红灯亮,延时↓东西黄灯闪烁,南北红灯亮,延时交通信号灯模拟控制系统主程序ORG 0000HSJMP A3ORG 0030HA3: MOV SP,#60H ;设栈指针初值MOV A, #24HMOV P1, ASETB P3.2CLR P3.3CLR P3.4SETB P3.5 ;全部红灯亮MOV R4,#00H ;显示0秒MOV R7,#00H ;显示0秒MOV R2,#03HLCALL XI ;调用子程序A2 : MOV A,#0CHMOV P1,ASETB P3.2SETB P3.3CLR P3.4CLR P3.5 ;东西红灯,南北绿灯MOV R4,#14H ; 显示20秒LOOP2 : MOV R2,#03HLCALL XIDJNZ R4,LOOP2 ;判断20秒显示时间到否MOV R2,#03HLCALL XILOOP8: MOV R2,#03H ;南北黄灯闪3次LCALL XIMOV R4,#05H ;设南北黄灯亮长显示5秒SETB P3.2CLR P3.3A1: MOV A,#14HMOV P1 ,ASETB P3.4CLR P3.5 ;东西红灯,南北黄灯MOV R2,#01H ;定时LCALL DELAY ;调用延时子程序MOV A ,#04HMOV P1 ,ACLR P3.4CLR P3.5 ;东西红灯,南北不亮即意思要南北黄灯闪烁MOV R2 ,#01H ;定时LCALL DELAYDJNZ R4,LOOP8 ;判断南北黄灯闪烁,显示5秒到否?MOV A, #61HMOV P1,ACLR P3.2CLR P3.3CLR P3.4SETB P3.5 ;东西绿灯,南北红灯MOV R4,#14H ;显示20秒LOOP3:MOV R2,#03HLCALL XIDJNZ R4,LOOP3 ;判断20秒显示时间到否MOV R7,#05H ;设东西黄灯亮长显示5秒SETB P3.5A0: MOV A,#0A2HMOV P1,ACLR P3.2CLR P3.3CLR P3.4 ;东西黄灯,南北红灯MOV R2,#01H ;定时LCALL DELAYMOV A,#20H ;MOV P1,ACLR P3.2CLR P3.3CLR P3.4 ;南北红灯,东西不亮即意思要东西黄灯闪烁MOV R2,#01H ;定时LCALL DELAYDJNZ R7,A0 ;判断东西黄灯闪烁,显示5秒到否?LJMP A2 ;循环回状态1,即东西红灯,南北黄灯DELAY: PUSH 2PUSH 1PUSH 0 ;进栈DELAY1: MOV 1,#00HDELAY2:MOV 0,#0B2HDJNZ 0,$ ;判断是否运行完0B2HDJNZ 1,DELAY2DJNZ 2,DELAY1POP 0POP 1POP 2 ;出栈DJNZ R2 ,DELAY ;判断R2是否运行完RET ;返回主程序XI: MOV A,R4MOV B,#10DIV ABMOV R6,AMOV DPTR,#TABMOV A,BMOVC A,@A+DPTRMOV SBUF,AMOV R7,#0FHH55S: DJNZ R7,H55SMOV A,R6MOVC A,@A+DPTRMOV SBUF,AMOV R7,#0FHH55S1: DJNZ R7,H55S1LCALL DELAYRETTAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h DB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8ehEND|评论。

基于80C51的单片机交通灯控制系统的设计

2015届毕业设计说明书基于80C51的单片机交通灯控制系统的设计学院:电气与信息工程学院学生姓名:邓联武指导教师:龙卓珉职称讲师专业:电气工程及其自动化班级:电气本1103完成时间:2015年6月最近几十年来,我们国家基础建设的发展日益加快,城市化的进程也越来越迅速,便利和通畅的道路交通渐渐成为了我国社会主义建设的重要环节。

由于车辆的快速增长,特别是我国交通建设主要道路口的管理与控制的好坏,对交通的安全有着深远而重要的影响。

当前,十字路口都采用了信号灯来控制车辆和行人的通行,不仅便于维护管理,而且非常智能化。

数字化信号灯电路,不仅低功耗,而且多种多样,并且方便了人们的生活。

人与车,路这三个方面的和谐统一是我们一直追求的主题,三者的协调多样发展,对促进社会经济价值与人文的发展有重大意义。

伴随着城市的交通与人们越来越息息相关,交通信号灯可以有效率地调控交通车流量,提高和改善车辆通过的效率,能够减少和预防一系列交通事故的发生。

道路十字路口的车辆来回不息,良好的秩序和调控是保证车与人安全的最主要因素,有序的交通,是城市道路通畅的重要保障。

在本次设计里面,我选择了AT89C52单片机作为控制核心,并辅以电源电路,复位电路,按键电路,人体传感器,数码管显示,led灯显示,蜂鸣报警器,晶振电路和控制电路等来实现交通灯系统的功能。

交通灯进行工作时,可以根据通过车流量的不同对交通灯设置南北东西红绿灯的时间,当最后进入五秒倒计时,黄灯会不停闪烁提示行人与车辆注意交通灯的变化。

另外,还可以利用人体红外感应原理对道路交通进行违规检测,并进行报警。

一旦有紧急情况需要让行时,东西南北所有路灯变为红灯,此时车辆禁止通行,为紧急车辆让道。

当需要禁停的时候,所有路口为绿灯模式,此时禁止车辆滞留停车。

夜晚由于特殊性,东西南北路口皆为黄灯,此时车辆根据所处情况正确判断谨慎通行。

本次交通灯系统的设计兼备操作简易,扩展功能强大两方面。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录一、引言 (4)二、概要设计 (5)2.1 设计思路 (5)2.2总体设计框图 (5)三、硬件设计 (6)3.1LED循环电路设计 (6)3.1.1 89cs51单片机概述 (6)3.1.2 80C51单片机的时钟 (9)3.1.3 80C51的封装和引脚 (11)3.2.1LED循环灯的说明 (14)四软件按设计 (15)4.1 程序流程图: (15)4.2 LED红绿灯显示 (17)五总结 (17)参考文献 (18)附录一:程序源代码 (18)附录二:PCB图 (24)基于51单片机的交通灯控制系统设计二、概要设计2.1 设计思路利用单片机实现交通灯的控制,该任务分以下几个方面:a 实现红、绿、黄灯的循环控制。

要实现此功能需要表示三种不同颜色的LED灯分别接在P1个管脚,用软件实现。

b 用数码管显示倒计时。

可以利用动态显示或静态显示,串行并出或者并行并出实现。

C 实现急通车。

这需要人工实现,编程时利用到中断才能带到目的,只要有按钮按下,那么四个方向全部显示红灯,禁止以诶车辆通行。

当情况解除,让时间回到只能隔断处继续进行。

2.2总体设计框图见图2-1:图2-1三硬件设计3.1LED循环电路设计3.1.1 89cs51单片机概述MCS-51单片机内部结构:89CS51是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。

下图是80C51的基本结构:图3-1 80C51的基本结构89CS51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等极大单元及数据总线、地址总线和控制总线等三大总线,现在分别加以说明。

*中央处理器:8位CPU,含布尔处理器;时钟电路;总线控制逻辑。

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统的工作,完成运算和控制输入输出等操控。

*数据存储器(RAM):128KB数据存储器(RAM,可再扩64KB);特殊功能寄存器SFR。

89CS51内部有128个8位用户数及存储单元和128个寄存器单元,他们是统一编址的,专营寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户自定义的字型表。

*程序存储器(ROM):4KB的程序存储器(ROM/EPROM/Flash,可扩至64KB); 89CS51共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。

*定时/计数器(ROM):89CS51有两个16位的可编程定时/计数器,一时想定时或计数产生中断用于控制程序转向。

*并行输入输出(I/O)口:89CS51共有4组8位I/O口(P0、P1、P2或P3),用于对外数据传输。

*全双工串行号:89CS51内置一个全双行串行通信口,用于与其它设备间的串行数据传输,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

*中断系统:89CS51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,客满著不同的控制要求,并具有2级优先级别选择。

*时钟电路:89CS51内置最高频率高达12Hz的时钟电路,用于产生整个单片机运行的脉冲时序,但89CS51单片继续外置震荡电容。

单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。

3.1.2 80C51单片机的时钟(1)振荡器和时钟电路80C51内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路。

80C51的时钟产生方法有以下两种。

a 内部时钟方式利用芯片内部的振荡器,然后在引脚XTALl和XTAL2两端跨接晶体振荡器(简称晶振),就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路。

外接晶振时,C l和C2的值通常选择为30pF左右;C l、C2对频率有微调作用,晶振或陶瓷谐振器的频率范围可在1.2MHz~12MHz之间选择。

为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机引脚XTALl 和XTAL2靠近。

图3-2 80C51时钟电路接线方法b 外部时钟方式此方式是利用外部振荡脉冲接入XTALl或XTAL2。

HMOS和CHMOS 单片机外时钟信号接入方式不同。

MCS-51系统的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,图二是它们的引脚配置,40个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用图3-38951的抚慰方式可以自动复位,也可以是手动复位,见下图。

除此之外,RESET/Vpd 还是一复用脚,Vcc 掉电其间,此脚可以接上没用电源,以保证单片机内部RAM 的数据不丢失。

在编程时,EA/Vpp 脚还需加上21V 的编程电压。

3.1.3 80C51单片机的的封装和引脚80C51系列单片机采用双列直插式(DIP ).QFP44(Quad Flat Pack )和LCC (Leaded Chip Caiier)形式封装。

这里仅介绍常用的总线型DIP40封装。

如图3-4所示。

40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚(1) 电源:VCC - 芯片电源,接+5V; VSS - 接地端;图3-4 80C51单片机的的封装和引脚(2)时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。

(3) 控制线:控制线共有4根,ALE/PROG:地址锁存允许/片内EPROM编程脉冲ALE功能:用来锁存P0口送出的低8位地址PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。

PSEN:外ROM读选通信号。

RST/VPD:复位/备用电源。

RST(Reset)功能:复位信号输入端。

VPD功能:在Vcc掉电情况下,接备用电源。

EA/Vpp:内外ROM选择/片内EPROM编程电源。

EA功能:内外ROM选择端。

Vpp功能:片内EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

(4) I/O线80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。

P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。

图3-5 上电复位电路图3-6上电+按键复位电路复位状态:初始复位不改变RAM(包括工作寄存器R0~R7)的状态,复位后80C51片内各特殊功能寄存器的状态如表所示,表中“x”为不定数。

IP xx000000B SBUF xxxxxxxxBIE 0x000000B PCON 0xxx0000B复位时,ALE和成输入状态,即ALE== 1,片内RAM不受复位影响。

复位后,P0~P3口输出高电平且使这些双向口皆处于输入状态,并将07H写入堆栈指针SP,同时将PC和其余专用寄存器清0。

此时,单片机从起始地址0000H开始重新执行程序。

所以,单片机运行出错或进入死循环时,可使其复位后重新运行。

3.2.1 LED循环说明东西、南北两干道交于一个十字路口,各干道有一组红、绿、黄三色的指示灯,指挥车辆和行人的安丘按通行。

红灯禁止通行,绿灯亮允许通行。

黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西,南北两干道的公共停车时间。

25s 3s 2s 25s 3s 2s红灯亮红灯亮红灯亮绿灯亮绿灯闪黄灯亮东西通道南北通绿灯亮绿灯闪黄灯亮红灯亮红灯亮红灯亮道上表说明东西路口哈珀灯亮,南北路口绿灯亮,同时开始25s倒计时。

25s倒计时结束后开始5s倒计时,南北铝扣绿灯闪烁,计时至最后2s时,南北路口黄灯亮。

完成一次这样的循环要30s。

30s结束,南北路口红灯亮,东西路口绿灯亮,并重新30s倒计时,依次循环。

电路图如图三所示。

图3-7四软件按设计4.1 程序流程图:如图4-1所示。

图4-14.2 LED红绿灯显示如图3-7所示,当P1端口输出高电平,即P1各端口=1时,根据发光二极管的单向导电性可知,这是发光二极管熄灭;当P1个端口输出低电平,即P1各端口=0时,发光二极管亮。

我们可以使用SETB指令使P1各端口输出高电平,使用CLR指令时P各端口输出低电平。

至于循环需要软件控制,程序见附录。

附录一源程序代码SECOND1 EQU 30H ;东西路口计时寄存器SECOND2 EQU 31H ;南北路口计时寄存器DBUF EQU 40H ;显示码缓冲1TEMP EQU 44H ;显示码缓冲2LED_G1 BIT P1.0 ;东西路口绿灯LED_Y1 BIT P1.1 ;东西路口黄灯LED_R1 BIT P1.2 ;东西路口红灯LED_G2 BIT P1.5 ;南北路口绿灯LED_Y2 BIT P1.6 ;南北路口黄灯LED_R2 BIT P1.7 ;南北路口红灯ORG 0000HLJMP STARTORG 0003HLJMP INTO0ORG 0100HSTART:MOV TMOD,#01H 置T0工作方式1MOV TH0,#3CHMOV TLO,#0B0HCLR TFOSETB TRO 启动T0SETB EX0SETB PX0 设置外中断0高优先级SETB EALOOP: MOV R2,#20 置1s计数初值MOV R3,#20 红灯亮20SMOV SECOND1,#25 东西路口计时显示初值25sMOV SECOND2,#25 南北路口计时显示初值25sLCALL DISPLAYLCALL STATEL 调用状态1WAIT1:JNB TF0,WAIT1 查询50ms到否CLR TF0MOV TH0,#3CH 恢复T0定时初值50msMOV TL0,#0B0HDJNZ R2,WAIT1 判断1s到否?未到继续状态1 MOV R2,#20 置50ms计数初值DEC SECIND1 东西路口显示时间减1DEC SECOND2 南北路口显示时间减1LCALL DISPLAYDJNZ R3,WAIT1 状态1维持20sMOV R2,#5 置50ms计数初值MOV R3,#3 绿灯闪烁3sMOV R4,#4 闪烁间隔200msMOV SECOND1,#5 东西路口计时显示初值5sMOV SECOND2,#5 南北路口计时显示初值5sLCALL DISPLAYWAIT2:LCALL STATE2 调用状态2JNB TF0,WAIT2 查询50ms到否CLR TF0MOV TH0,#3CH 恢复T0定时初值50msMOV TL0,#0B0HDJNZ R4,WAIT2 判断200ms到否?未到继续状态2 CPLLED_G1 东西绿灯闪烁MOV R4,#4 闪烁200msDJNZ R2,WAIT2 判断1s到否?未到继续状态2 MOV R2,#5 置50ma计数初值DEC SECOND1 东西路口显示时间减1DEC SECOND2 南北路口显示时间减1LCALL DISPLAYDJNZ R3,WAIT2 状态2维持3sMOV R2,#20 置50ms计数初值MOV R3,#2 黄灯闪烁2sMOV SECOND1,#2 东西路口计时显示初值2sMOV SECOND2,#2 南北路口计时显示初值2sLCALL DISPLAYWAIT3:LCALL STATE3 调用状态3JNB TF0,#3CH 查询100ms到否CLR TF0MOV TH0,#3CH 恢复T0定时初值100msMOV TL0,#0B0HDJNZ R2,WAIT3 判断1s到否?未到继续状态3MOV R2,#20 置100ms计数初值DEC SECOND1 东西路口显示时间减1DEC SECOND2 南北路口显示时间减1LCALL DISPLAYDJNZ R3,WAIT3 状态3维持2sMOV R2,#20 置50ms计数初值MOV R3,#20 红灯闪烁20sMOV SECOND1,#25 东西路口计时显示初值25sMOV SECOND2,#25 南北路口计时显示初值25sLCALL DISPLAYWAIT4:LCALL STATE4 调用状态4JNB TF0,WAIT4 查询100ms到否CLR TF0MOV TH0,#3CH 恢复T0定时初值100msMOV TL0,#0B0HDJNZ R2,WAIT4 判断1s到否?未到继续状态4 MOV R2,#20 置100ms计数初值DEC SECOND1 东西路口显示时间减1DEC SECOND2 南北路口显示时间减1LCALL DISPLAYDJNZ R3,WAIT4 状态4维持2sMOV R2,#5 置50ms计数初值MOV R3,#4 红灯闪烁20sMOV R3,#3 绿灯闪烁3sMOV SECOND1,#25 东西路口计时显示初值5sMOV SECOND2,#25 南北路口计时显示初值25sLCALL DISPLAYWAIT5:LCALL STATE5 调用状态5JNB TF0,WAIT5 查询100ms到否CLR TF0MOV TH0,#3CH 恢复T0定时初值100msMOV TL0,#0B0HDJNZ R4,WAIT5 判断200ms到否?未到继续状态5 CPLLED_G2 南北绿灯闪烁MOV R4,#4 闪烁200msDJNZ R2,WAIT5 判断1s到否?未到继续状态5 MOV R2,#5 置100ms计数初值DEC SECOND1 东西路口显示时间减1DEC SECOND2 南北路口显示时间减1LCALL DISPLAYDJNZ R3,WAIT5 状态5维持3sMOV R2,#20 置50ms计数初值MOV R3,#20 红灯闪烁2sMOV SECOND1,#25 东西路口计时显示初值5sMOV SECOND2,#25 南北路口计时显示初值5sLCALL DISPLAYWAIT6:LCALL STATE6 调用状态4JNB TF0,WAIT6 查询100ms到否CLR TF0MOV TH0,#3CH 恢复T0定时初值100msMOV TL0,#0B0HDJNZ R2,WAIT6 判断1s到否?未到继续状态6 MOV R2,#20 置100ms计数初值DEC SECOND1 东西路口显示时间减1DEC SECOND2 南北路口显示时间减1LCALL DISPLAYDJNZ R3,WAIT6 状态6维持3sLJMP LOOPSTATE1: 状态1SETB LED_G1 东西路口路灯亮CLR LED_Y1CLR LED_R1CLR LED_G2CLR LED_Y2SETB LED_R2 南北路口红灯亮RETSTATE2: 状态2CLR LED_Y1CLR LED_R1CLR LED_G2CLR LED_Y2SETBLED_R2 南北路口红灯亮RETSTATE3: 状态3CLR LED_G1CLR LED_R1CLR LED_G2CLR LED_Y2SETB LED_R2 南北路口红灯亮SETB LED_Y1 东西路口黄灯亮RETSTATE4: 状态4CLR LED_G1CLR LED_Y1SETB LED_R1 东西路口红灯亮SETB LED_G2 南北路口绿灯亮CLR LED_Y2CLR LED_R2RETSTATE5: 状态5CLR LED_G1SETB LED_R1 东西路口红灯亮CLR LED_Y2CLR LED_R2RETSTATE6: 状态6CLR LED_G1CLR LED_Y1SETB LED_R1 东西路口红灯亮CLR LED_G2CLR LED_R2SETB LED_Y2 南北路口黄灯亮RETDISPLAY: 数码显示MOV A,SECOND1 东西路口计时寄存器 MOV B,#10DIV ABMOV DBUF+3,AMOV A,BMOV DBUF+2,AMOV SECOND2 南北路口计时寄存器 MOV B,#10DIY ABMOV DBUF+1,AMOV A,BMOV DBUF,AMOV R0,#DBUFMOV R1,#TEMPMOV R7,#4DP10:MOV DPOTR,#LEDMAPMOV A,@R0MOVC A,@A+DPTRMOV @R1,AINC R0INC R1DJNZ R7,DP10MOV R0,#TEMPMOV R1,#4DP12:MOV R7,#8MOV A,@R0DP13:RLC AMOV P3.0,CCLR P3.1SETB P3.1INC R0DJNZ R1,DP12RETLENMAP:DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FHORG 0200HINTO0:PUSH PSWPUSH ACCSETB LED_R1SETB LED_R2CLR LED_G1CLR LED_Y1CLR LED_G2CLR LED_Y2POP PSWPOP ACCRETIEND附录二:底层PCB:顶层PCB。

相关文档
最新文档