51单片机综合实验交通灯设计报告

合集下载

基于51单片机设计的交通灯报告书

基于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;}项目小结:本项目程序主要包括四部分:主函数、延时函数、数码管显示函数、中断函数。

单片机交通灯实验报告

单片机交通灯实验报告

单片机交通灯实验报告一、实验目的二、实验原理三、实验器材四、实验步骤五、实验结果六、实验分析与讨论七、实验总结一、实验目的:本次单片机交通灯实验的主要目的是通过使用单片机控制LED灯的亮灭,模拟交通信号灯的运行状态,并能够正确地掌握单片机编程技巧和硬件连接技术。

二、实验原理:本次交通灯实验采用了单片机作为中央处理器,通过编写程序控制LED灯的亮灭来模拟交通信号灯。

在程序中,我们需要使用到延时函数和条件判断语句。

具体来说,在红绿黄三个LED灯之间切换时,需要设定一个时间段,并在该时间段内循环执行红绿黄三个LED灯亮度变化的循环语句。

三、实验器材:1. 单片机开发板一块;2. LED 灯若干;3. 杜邦线若干。

四、实验步骤:1. 将红色 LED 灯连接至 P0 口;2. 将黄色 LED 灯连接至 P1 口;3. 将绿色 LED 灯连接至 P2 口;4. 将单片机开发板与电脑连接,打开 Keil 软件;5. 编写程序,将红色 LED 灯亮起来;6. 编写程序,将黄色 LED 灯亮起来;7. 编写程序,将绿色 LED 灯亮起来;8. 编写程序,模拟交通信号灯的运行状态。

五、实验结果:在完成了上述步骤后,我们成功地模拟出了交通信号灯的运行状态。

具体来说,在程序中我们设定了一个时间段为10s,在这个时间段内,红灯亮 5s,黄灯亮 2s,绿灯亮 3s。

在这个时间段结束后,循环执行该过程。

六、实验分析与讨论:通过本次交通灯实验,我们学习到了如何使用单片机控制LED灯的亮灭,并能够正确地编写程序模拟交通信号灯的运行状态。

在编写过程中需要注意以下几点:1. 在使用延时函数时要注意时间单位和精度;2. 在编写条件判断语句时要注意逻辑结构和语法规范;3. 在硬件连接时要注意杜邦线的颜色对应关系和插口位置。

七、实验总结:本次单片机交通灯实验是一次非常有意义的实践活动。

通过此次实验,我们掌握了单片机编程技巧和硬件连接技术,并能够正确地模拟交通信号灯的运行状态。

51单片机交通灯毕业设计方案

51单片机交通灯毕业设计方案

51单片机交通灯毕业设计方案
以下是一个基于51单片机的交通灯设计方案:
1. 硬件设计:
- 使用51单片机作为主控制器。

- 使用红黄蓝三个LED作为信号灯的显示器件。

- 使用按钮作为手动触发信号灯切换的输入设备。

- 使用数码管显示当前信号灯状态的计时器。

- 使用适当的电阻、电容、继电器等连接单片机和LED、按钮、数码管等。

2. 软件设计:
- 配置51单片机的I/O口,将LED、按钮和数码管连接到正
确的引脚。

- 编写主程序,设置中断或轮询等方式读取按钮状态,并根
据按钮状态切换信号灯状态。

- 通过控制LED引脚的输出电平,实现红黄蓝三个信号灯的
闪烁、亮灭和切换。

- 使用定时器计时,实现信号灯的定时控制。

根据交通规则,红灯、黄灯、绿灯的显示时间可以根据需要设定。

- 使用数码管显示当前信号灯的状态和剩余时间,方便车辆
和行人了解交通灯变化。

3. 功能设计:
- 根据交通规则,设置交通灯的变换顺序和时间,确保道路
的交通流畅和安全。

- 根据需要加入手动触发信号灯切换的功能,允许人工控制,
例如紧急情况下的交通调节。

- 可以考虑加入流量检测、车辆和行人优先等功能,提高交
通效率和安全性。

- 可以通过串口或无线通信模块,实现与其他设备的联动,
例如与车载导航系统、交通监控系统等的数据交换和协同控制。

以上是一个基本的51单片机交通灯设计方案,可以根据具体
需求进行进一步调整和优化。

51单片机红绿灯课程设计报告书

51单片机红绿灯课程设计报告书

51单⽚机红绿灯课程设计报告书1 电源提供⽅案为使模块稳定⼯作,须有可靠电源。

因此考虑了两种电源⽅案:⽅案⼀:采⽤独⽴的稳压电源。

此⽅案的优点是稳定可靠,且有各种成熟电路可供选⽤;缺点是各模块都采⽤独⽴电源,会使系统复杂,且可能影响电路电平。

⽅案⼆:采⽤单⽚机控制模块提供电源。

改⽅案的优点是系统简明扼要,节约成本;缺点是输出功率不⾼。

综上所述,选择⽅案⼆。

2 显⽰界⾯⽅案该系统要求完成倒计时功能。

基于上述原因,我考虑了⼆种⽅案:⽅案⼀:采⽤数码管显⽰。

这种⽅案只显⽰有限的符号和数码字符,简单,⽅便。

⽅案⼆:采⽤点阵式LED 显⽰。

这种⽅案虽然功能强⼤,并可⽅便的显⽰各种英⽂字符,汉字,图形等,但实现复杂,成本较⾼。

综上所述,选择⽅案⼀。

3 输⼊⽅案:设计要求系统能调节灯亮时间,并可处理紧急情况,我研究了两种⽅案:⽅案⼀:采⽤8155扩展I/O ⼝及键盘,显⽰等。

该⽅案的优点是:使⽤灵活可编程,并且有RAM,及计数器。

若⽤该⽅案,可提供较多I/O ⼝,但操作起来稍显复杂。

⽅案⼆:直接在I/O⼝线上接上按键开关。

由于该系统对于交通灯及数码管的控制,只⽤单⽚机本⾝的I/O ⼝就可实现,且本⾝的计数器及RAM已经够⽤。

综上所述,选择⽅案⼆。

3.1单⽚机交通控制系统的通⾏⽅案设计设在⼗字路⼝,分为东西向和南北向,在任⼀时刻只有⼀个⽅向通⾏,另⼀⽅向禁⾏,持续⼀定时间,经过短暂的过渡时间,将通⾏禁⾏⽅向对换。

其具体状态如下图所⽰。

说明:⿊⾊表⽰亮,⽩⾊表⽰灭。

交通状态从状态1开始变换,直⾄状态6然后循环⾄状态1,周⽽复始,即如图2.1所⽰:图1 交通状态本系统采⽤MSC-51系列单⽚机AT89C51作为中⼼器件来设计交通灯控制器。

实现以下功能:初始东西绿灯亮,南北红灯亮,东西路⼝车通⾏,时隔24s,黄灯闪烁6次。

之后,南北绿灯亮,东西红灯亮,⽅向开始通车,时隔24s,南北黄灯闪烁6次,然后⼜切换成东西⽅向通车,如此重复。

51单片机红绿灯设计报告

51单片机红绿灯设计报告

51单片机红绿灯设计报告一、设计目的在交通管理中,红绿灯是一种重要的交通设施,能够有效地控制交通流量,保证道路交通的安全和顺畅。

本设计旨在使用51单片机实现一个红绿灯控制系统,通过控制红绿灯的状态来实现交通信号控制。

二、系统设计1.设计原理红绿灯控制系统分为两种模式:定时模式和交通流量感应模式。

在定时模式下,红绿灯会按照预设的时间间隔循环切换;在交通流量感应模式下,通过传感器检测车辆的流量来实现智能控制。

2.硬件设计本设计采用51单片机作为控制核心,配合电路部件包括红绿灯LED 灯、传感器等。

51单片机通过IO口控制LED灯的状态,同时接收传感器信号用于交通流量感应模式。

3.软件设计软件设计主要包含控制程序和交通流量感应算法。

控制程序通过定时器产生中断来实现定时模式下红绿灯的切换;交通流量感应算法通过读取传感器信号来判断是否有车辆通过,进而控制红绿灯的切换。

三、系统实现1.控制程序控制程序主要实现红绿灯状态的切换,包括定时模式和交通流量感应模式的切换逻辑。

在定时模式下,通过定时器中断来实现红绿灯的周期性切换;在交通流量感应模式下,通过传感器信号来判断车辆的流量,并根据流量大小来调整红绿灯的状态。

2.传感器接口传感器接口用于检测车辆的流量,根据传感器的信号来实现对红绿灯状态的控制。

在系统中,传感器可以是红外传感器、光电传感器等,通过检测车辆通过时的信号变化来判断车辆的流量。

3.LED灯控制LED灯控制通过51单片机的IO口来实现,控制红绿灯的状态。

根据控制程序的逻辑,51单片机可以实现红绿灯的亮灭控制,从而实现交通信号的控制。

四、系统优化1.系统稳定性优化为了提高系统的稳定性,在设计中可以加入硬件看门狗等机制来监测系统的运行状态,确保系统正常运行。

2.智能交通流量控制在交通流量感应模式下,可以通过进一步算法优化,实现更加智能的交通流量控制,提高红绿灯的切换效率。

3.软硬件结合优化软硬件结合优化可以进一步提高系统的性能和稳定性,减少系统的延迟,提高交通信号的控制效率。

交通灯实验报告——单片机

交通灯实验报告——单片机

二、用51单片机设计交通灯、彩灯控制器一、可实现功能:1)通过51单片机,在面包板上模拟交通红绿灯。

分为主干道和支干道,每条道上安装红、绿、黄三种颜色的灯,并用两位八段数码管显示主干道三种灯亮的时间,由程序控制自动循环,红灯40秒,绿灯35秒,黄灯5秒;2)用单片机的外部中断0的产生来控制六路彩灯,此处只设计了四种花型。

二、电路原理图:三、源程序如下:#include "reg51.h"#include <intrins.h>void display(unsigned int digital);void delay(unsigned int time);void colour();unsigned shu[10]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6}; Unsignedled[41]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xff,0xdf,0xcf,0xc7,0xc3,0xc1,0xc0,0xc1,0xc3,0xc7,0xcf,0xdf,0xff, 0xf3,0xe1,0xc0,0xe1,0xf3,0xff,0xde,0xcc,0xc0,0xcc,0xdf,0xff, 0xdb,0xed,0xf6,0xed,0xdb,0xff,0xc0,0xff,0xc0,0xff,0xc0,0xff};sbit a=P2^6;sbit b=P2^7;sbit G=P2^0;sbit Y=P2^1;sbit R=P2^2;sbit g=P2^3;sbit y=P2^4;sbit r=P2^5;int flag=0;//全局变量,当它为1时显示彩灯,当它为0时,显示交通灯#define state_1 G=0;Y=1;R=1;g=1;y=1;r=0//主干道绿,支干道红#define state_2 G=1;Y=0;R=1;g=1;y=1;r=0//主干道黄,支干道红#define state_3 G=1;Y=1;R=0;g=0;y=1;r=1//主干道红,支干道绿#define state_4 G=1;Y=1;R=0;g=1;y=0;r=1//主干道红,支干道红void main(void){unsigned int i;EA=1; //首先开启总中断EX0=1; //开启外部中断 0IT0=1; //设置触发方式为下降沿触发while(1){while(flag==0){state_1;for(i=35;i>0;i--)delay(1);state_2;for(i=5;i>0;i--){delay(i);y1=~y1;}state_3;for(i=20;i>0;i--)delay(i);state_4;for(i=5;i>0;i--){delay(i);y2=~y2;}}while(flag==1) colour();}}//显示子程序,实现用两位数码管显示灯亮的时间void display(unsigned int digital){ unsigned int k;unsigned int ge=digital%10,shi=digital/10;//将十位与个位分离for(k=0;k<30000;k++){ a=1;b=0;P0=shu[ge];P0=0;a=0;b=1;P0=shu[shi];P0=0;}}//实现彩灯控制void colour(){ P1=0xff;P3=0x00;P2=0xff;while(1){ unsigned int j;for(j=0;j<41;j++)//循环程序演示四种花型{ P2=led[j];delay(1);} delay(5);}}//中断函数void key_scan() interrupt 0 //关键字"interrupt" ,这是C语言的中断函数表示法,,单片机有6个中断口,外部中断0的优先级最高,在程序里我们只用外部中断0 {flag++;if(flag==2) flag=0;}//延时程序void delay(unsigned int time) //参数time大小决定延时时间长短{ unsigned int j,k;time=time*5;for(j=0;j<time;j++)for(k=0;k<10000;k++);}四、源程序分析1、在电路设计时我用了共阴极八段数码管来显示时间:unsigned shu[10]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};数组中十个数分别表示0到9十个数;2、在设计彩灯时,我直接利用交通灯的主干道和支干道的六个灯设计彩灯:unsignedled[48]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xff,0xdf,0xcf,0xc7,0xc3,0xc1,0xc0,0xc1,0xc3,0xc7,0xcf,0xdf,0xff,0xf3,0xe1,0xc0,0xe1,0xf3,0xff,0xde,0xcc,0xc0,0xcc,0xdf,0xff,0xdb,0xed,0xf6,0xed,0xdb,0xff,0xc0,0xff,0xc0,0xff,0xc0,0xff};数组中的48个数共演示了四种花型3、void display(unsigned int digital){ unsigned int k;unsigned int ge=digital%10,shi=digital/10;//将十位与个位分离for(k=0;k<30000;k++){ a=1;b=0;P0=shu[ge];P0=0;a=0;b=1;P0=shu[shi];P0=0;}}显示子程序中将时间的十位与个位分离,用a、b来选择数码管将个位与十位分时输出。

51单片机红绿灯设计报告

51单片机红绿灯设计报告

51单片机红绿灯设计报告一、引言红绿灯是城市道路交通管理中非常重要的设备,它能够有效地控制车辆和行人的通行,维护交通秩序,提高交通效率。

本报告将介绍一种基于51单片机的红绿灯设计,利用单片机的强大功能,实现了智能化、自动化的红绿灯控制系统。

二、设计原理1.硬件设计本设计使用了51单片机,通过其IO口控制LED灯的亮灭。

红绿灯的控制通过三个IO口分别连接到红、黄、绿三个LED灯,通过控制这三个IO口的电平,实现红绿灯的切换。

2.软件设计设计中使用了C语言进行程序开发。

程序通过设置IO口的状态和延时函数,控制红绿灯的切换和延时时间。

三、电路设计1.电路图电路图给出了51单片机、LED灯和电流限制电阻之间的连接关系。

单片机的P1口连接到红、黄、绿三个LED灯上,通过改变P1口的电平,控制LED的亮灭。

2.电路元件说明-51单片机:中央处理器,负责控制整个系统的运行和信号的处理。

-LED灯:用于显示红、黄、绿三种不同的状态。

-电流限制电阻:用于限制电流大小,保护51单片机和LED灯。

四、程序设计程序设计中,通过无限循环实现红绿灯系统的连续运行,程序中设置了红绿灯切换的时间间隔和黄灯亮灭的时间间隔。

五、实验结果经过测试,本设计能够正常地实现红绿灯的切换,各种状态都能够正确显示。

红灯亮10秒,黄灯亮3秒,绿灯亮15秒,然后循环重复。

六、总结本设计利用51单片机的强大功能,实现了红绿灯的自动切换。

通过控制IO口的电平和延时函数,能够实现红绿灯的各种状态的切换。

该设计简单、实用、可靠,适用于城市交通管理中的红绿灯设备。

51单片机交通灯设计报告

51单片机交通灯设计报告

课程设计说明书课程名称:《单片机技术》设计题目:交通灯设计学院:电子信息与电气工程学院学生姓名:学号:专业班级:指导教师:2017年4 月20日课程设计任务书交通灯设计摘要:近年来随着科技的发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应该根据具体硬件结构软硬结合,加以完善。

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊,那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。

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

本系统采用51系列单片机ATMEL89C51为核心控制器件来设计交通信号灯控制器,实现亮绿灯通行,亮黄灯闪烁并发声警示,亮红灯禁止通行的功能,并显示通行或禁止通行倒计时,紧急按键信号灯加时和紧急按键南北、东西红绿灯跳变。

本系统使用性强,操作简单,容易实现,扩展功能强,可自行修改程序扩展自己想要实现的功能。

关键词:交通灯,单片机,复位电路目录1. 设计背景 (1)1.1设计原因 (1)1.2个人意义 (1)2.设计方案 (1)2.1总体方案提出 (1)2.2稳压电源方案设计与分析 (1)2.3复位电路方案设计与分析 (2)3. 方案实施 (2)3.1总体设计框图 (2)3.2硬件设计 (3)3.3软件设计 (6)3.4电路仿真 (10)3.5制板子与安装过程 (11)3.6软硬件调试 (11)4. 结果与结论 (12)5 收获与致谢 (12)6. 参考文献 (12)7. 附件 (13)7.1硬件电路图 (13)7.2元器件清单 (14)7.3作品实物图 (15)7.4源程序: (16)1. 设计背景1.1设计原因随着社会的进步,交通的高速发展,红绿灯已经成为了我们生活中不可或缺的一部分,如今,红绿灯已经安装在各个道路的交接口处,已经成为疏导交通车辆最常见和最有效的手段。

单片机交通灯实验报告

单片机交通灯实验报告

单片机交通灯实验报告实验目的:1.熟悉单片机的基本工作原理和编程方法。

2.学习如何使用单片机控制交通灯的运行。

3.加深对电子元器件和电路原理的理解和掌握。

实验器材:1.51系列单片机开发板:包括单片机主控板、显示器板、外部扩展板等。

2.LED灯:红色、黄色、绿色各一颗。

3.电阻:用于限流。

4.连接线:用于连接各个电子元器件。

实验原理:在交通中,红灯代表停止、黄灯代表警告、绿灯代表通行。

在本实验中,我们将使用单片机控制三个LED灯实现交通灯的运行。

具体原理如下:1.使用单片机的IO口控制LED灯的亮灭。

2.根据交通灯的运行状态,通过改变LED灯的亮灭顺序来模拟交通的运行。

实验步骤:1.连接电路:将三个LED灯连接到单片机的IO口,并通过电阻限流。

2.编写程序:使用C语言编写程序,在主函数中设置交通灯的运行状态和亮灭顺序。

3.烧写程序:将编写好的程序烧写到单片机中。

4.运行实验:启动单片机,观察LED灯的亮灭情况,验证交通灯是否能正常工作。

实验结果:经过实验,我们成功地实现了单片机交通灯的控制。

在程序运行过程中,红灯先亮,表示停止;然后黄灯亮,表示警告;最后绿灯亮,表示通行。

整个过程循环不断,符合实际交通灯的运行规律。

实验总结:通过这次实验,我深入了解了单片机的基本工作原理和编程方法,掌握了使用单片机控制交通灯的技巧。

同时,我也加深了对电子元器件和电路原理的理解和掌握。

这些知识将对我今后的学习和工作产生积极影响。

然而,在实验过程中也遇到了一些问题。

比如,如果LED灯连接不正确或程序编写有误,交通灯可能无法正常运行。

因此,在进行单片机实验时,我们需要仔细检查电路连接和程序编写,确保一切正常。

总之,单片机交通灯实验是一次充满趣味和挑战的实践活动。

通过这次实验,我不仅学到了许多知识,而且培养了动手能力和实践能力。

希望将来能有更多这样的实验机会,继续提升自己的电子技术水平。

51单片机c语言交通灯设计报告

51单片机c语言交通灯设计报告

xxxxxxxxx基于AT89S52交通灯设计学院:电子信息工程专业班级: xxxxxxxxxxxxxx姓名: xx xx学号: xxxxxxxxxxx指导老师: xxxxxxxxxx摘要交通灯在我们日常生活中随处可见,它在交通系统中处于至关重要的位置。

交通灯的使用大大减少了交通繁忙路口的事故发生,给行人和车辆提供一个安全的交通环境,人们的生命和财产安全有了保障。

本设计旨在模拟十字路口的交通灯,以AT89S51单片机为基础,结合按键和数码管等元器件设计出一个简单且完全的交通灯系统。

关键词:交通灯 AT89S52 单片机目录一、设计任务 (4)二、AT89S52单片机及其他元器件简介 (4)(1)AT89S52单片机 (4)三、系统硬件电路设计 (6)(1)时钟电路设计 (6)(2)复位电路设计 (6)(3)灯控制电路设计 (7)(4)按键控制电路设计 (7)四、元件清单及实物图 (8)1、程序清单 (8)2、原理图 (9)五、实验心得 (9)附1 源程序代码 (10)附2 原理图 (16)一、设计任务(1)、设计一个十字路口的交通灯控制电路,要求南北方向和东西方向两条交叉道路上的车辆交替运行,每次通行时间都设30秒,时间可设置修改。

(2)、在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道,且黄灯亮时,要求每秒亮一次。

(3)、有紧急车辆要求通过时,系统要能禁止东西和南北两条路上所有的车辆通行。

二、AT89S52单片机及其他元器件简介(1)AT89S52单片机AT89S52是一种低功耗、高性能CMOS8位微控制器。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6位向量2级中断结构,全双工串行口,片内晶振及时钟电路。

基于单片机的交通灯

基于单片机的交通灯
交通灯状态控制程序:根据预设的时序,控制红、 绿、黄三种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单片机综合实验交通灯设计报告

51单片机综合实验交通灯设计报告班级:学生姓名:学号:指导教师:一实验题目交通灯控制系统设计二实验目的1、学会用8051单片机开发简单的计算机控制系统;2、学会用汇编语言和C语言开发系统软件;3、学会8051单片机开发环境wave或Keil uVision3软件的使用;4、学会Proteus软件的使用方法,会用Proteus单片机系统进行仿真;5、学会Protel软件的使用方法,会用Protel绘制电气原理图和印制板图;6、熟悉七位数码管显示的使用方法;7、了解交通灯控制系统的基本组成。

三实验要求交通灯处在十字路口上。

它有红﹑黄﹑绿三种颜色的灯组成。

红灯亮时道路上的车辆停止运行;黄灯是一种过渡用的信号灯,当它亮时,表示道路上的红绿色信号灯即将进行转换。

下面拿东西南北四个方向来说明。

当东西方向允许行车(或者左转)的时候,南北方向就禁止行车,即此时东西方向的绿灯亮红灯灭,而南北方向的绿灯灭红灯亮。

反之当南北方向允许行车(或者左转)的时候,东西方向就禁止行车,即此时南北方向的绿灯亮红灯灭,而东西方向的绿灯灭红灯亮。

交通灯配置示意图如图1所示。

同时当有特殊的情况发生时,能手动控制各个方向的信号灯。

设计任务就是将这一电路用单片机来实现具体的控制。

1 十字路口交通灯配置示意图四设计内容与原理为了在后面的分析中便于说明,将南北方向允许直行命名为状态1,南北方向允许左转命名为状态2,南北方向行车到东西方向行车的转换阶段命名为状态3,将东西方向允许直行命名为状态4,东西方向允许左转命名为状态5,东西方向行车到南北方向方向行车的转换阶段命名为状态6。

假定直行绿灯点亮的时间为25s,左转绿灯点亮的时间为20s,黄灯点亮的时间为5s,则对方红灯的点亮时间为50秒。

黄灯每隔500ms亮一次,之后灭500ms (亮灭一次叫作闪烁一次),一共闪烁5次,持续5s。

各个状态之间的变换情况如下:具体显示周期如下:图2交通信号灯点亮时间图设计电路中每个路口的控制信号灯应有四个,即绿灯两个、黄灯、红灯各一个,同时需要七段数码管一个。

51单片机十字路口交通灯控制系统设计报告

51单片机十字路口交通灯控制系统设计报告

1.设计方案1.1总体设计方案(电子1232刘凌志19)总体设计方案构思采用定时加中断控制的方式进行,对两个方向车辆的通行时间分别计时,可随意进行更改双向的通行时间。

具体要求如下:1).东西方向车辆放行60秒钟。

即东西方向绿灯和南北方向的红灯同时点亮1分钟;2).1分钟后,东西方向的黄灯闪烁5秒钟,以警示车辆将切换红绿灯。

此时南北方向仍维持红灯点亮。

3).东西方向的黄灯闪烁5秒钟后,转为南北方向放行60秒钟。

即东西方向的红灯和南北方向的绿灯同时点亮60秒钟;4) .南北方向放行60秒钟后,转为南北方向的黄灯闪烁5秒钟,以警示将切换红绿灯。

此时东西方向仍维持红灯点亮。

5) .南北方向的黄灯闪烁5秒钟后转为东西方向放行1分钟。

如此循环重复。

程序模块构成1.中断模块2.延时模块3.定时器模块仿真电路构12个LED灯,单片机A T89C51,数码管(说明总体设计方案构思、程序模块构成、仿真电路构成等内容,不少于300字))。

1.2xx 模块程序流程图(电子1232黄俊峰17)1.3xx 模块程序流程图(电子1232黄晓敏29)1.4仿真电路设计(电子1232谌金莉33).2.程序代码#include <reg52.h>#define uchar unsigned char#define unit unsigned intsbit D1=P1^0;sbit D2=P1^1;sbit D3=P1^2;sbit D4=P1^3;sbit D5=P1^4;sbit D6=P1^5;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void display();void delay0(int z);void init1();void init2();void init3();void init4();uchar a,shi,ge,b;void main(){while(1){init1();init2();init3();init4();}}void init1() //第一种{int tim;tim=56;TMOD=0x01;//定时器T0工作于方式1 TH0=0x4c;TL0=0x00;//定时器赋初值EA=1;//开中断ET0=1;//开定时中断TR0=1;//开定时器T0while(1){D1=1;D2=1;D3=0;D4=0;D5=1;D6=1;if(a==20)//定时20*50MS=1S{a=0;//定时完成一次后清0tim--;//变量自减if(tim==0){break;}shi=tim%100/10;//显示十位ge=tim%10;//显示个位}}}void init2() //第二种{int tim;tim=6; //变量赋初值TMOD=0x01;//定时器T0工作于方式1 TH0=0x4c;TL0=0x00;//定时器赋初值EA=1;//开中断ET0=1;//开定时中断TR0=1;//开定时器T0while(1){if(a==20)//定时20*50MS=1S{a=0;//定时完成一次后清0tim--;//变量自减D3=1;D2=~D2;D4=0;if(tim<0){break;}shi=tim%100/10;//显示十位ge=tim%10;//显示个位}display();}}void init3() //第三种{int tim;tim=56;TMOD=0x01;//定时器T0工作于方式1 TH0=0x4c;TL0=0x00;//定时器赋初值EA=1;//开中断ET0=1;//开定时中断TR0=1;//开定时器T0{D1=0;D2=1;D3=1;D4=1;D5=1;D6=0;if(a==20)//定时20*50MS=1S{a=0;//定时完成一次后清0tim--;//变量自减if(tim==0){break;}shi=tim%100/10;//显示十位ge=tim%10;//显示个位}display(); }}void init4() //第四种{int tim;tim=6; //变量赋初值TMOD=0x01;//定时器T0工作于方式1 TH0=0x4c;TL0=0x00;//定时器赋初值EA=1;//开中断ET0=1;//开定时中断TR0=1;//开定时器T0while(1){if(a==20)//定时20*50MS=1S{a=0;//定时完成一次后清0tim--;//变量自减D6=1;D5=~D5;D1=0;if(tim<0){break;}shi=tim%100/10;//显示十位ge=tim%10;//显示个位}display();}}void display(){P0=0xfd;P2=table[shi];//显示十位delay0(5);P0=0xfe;P2=table[ge];//显示个位delay0(5);}/*定时中断子函数*/void xtimer0() interrupt 1{TH0=0x4c;TL0=0x00;a++;}/*延时子函数*/void delay0(int z){int i,j;for(i=0;i<z;i++)for(j=0;j<110;j++);3.调试结果4.设计总结通过本次课程设计,使自己的实践能力有了很大的提高,让我认识到实践的重要性,但同时在实际应用过程当中,也发现理论知识的重要性,没有理论知识的支撑,是不能很好的完成本次课程设计的。

51单片机十字路口红绿灯实验报告

51单片机十字路口红绿灯实验报告

51单片机十字路口红绿灯实验报告引言交通灯是城市交通管理的重要组成部分,而红绿灯是其中最为基本最常见的道路交通信号标志,在现代城市交通系统中得到广泛应用。

那么如何用单片机来设计实现十字路口红绿灯系统呢?本次实验就是为了解决这个问题,实验主要是通过进行对单片机的应用,来探讨单片机在红绿灯系统中的应用。

材料和方法材料:1. 51单片机开发板;2. LED灯,包括3颗红色LED灯、3颗黄色LED灯和3颗绿色LED灯;3. 电阻和跳线;4. 电源适配器。

方法:1. 根据给定的原理图,搭建电路;2. 将单片机与PC机连接,使用Keil和Proteus软件进行编程;3. 连接电源适配器,测试红绿灯系统是否正常工作。

结果与分析本实验通过对给定原理图的电路进行搭建,采用Keil和Proteus软件编程能够将单片机应用于红绿灯系统。

在开发板的数码管和LED灯上,按照预设的顺序可以实现红绿灯的交替亮灭。

当实验中的按钮按下时,系统会从红灯状态切换到绿灯状态,此时绿灯亮起,同时其他颜色的灯都与此时相应的状态相符合。

当绿灯时间到期后,系统会再次切换回红灯状态,并且重新计时。

总的时间是通过函数Delay()语句来实现的。

在实验过程中,我们还修改了程序的部分代码来满足实际道路交通的需求,例如:红绿灯通过倒计时来提示司机剩余时间,同时也可以通过按钮手动操作绿灯实现车道管制等。

该实验在不断的调试过程中得以成功完成。

通过制定的方法和步骤,我们了解了单片机在红绿灯等交通工具中的实际应用,并且得出了相对稳定的实验结果,颇有启示和借鉴意义。

结论在本次实验中,我们成功地将51单片机应用于红绿灯交通系统中,实现了红绿灯状态的正确切换和时间控制。

实验结果表明,通过单片机的编程使红绿灯系统更为灵活和可靠,并且能够满足实际道路交通需求。

将单片机技术应用于红绿灯系统中,将是未来道路交通发展的趋势。

进一步的研究表明,单片机技术的应用将为城市道路交通管理、交通流量控制和空气质量监测等各个方面提供更安全、更快捷、更可靠的解决方案。

单片机交通灯实验报告

单片机交通灯实验报告

引言:随着城市交通的发展,交通灯作为交通管理的重要组成部分,起着至关重要的作用。

为了研究和实践交通灯的基本原理和实现方法,本文进行了单片机交通灯实验。

本实验通过使用单片机来模拟和控制交通灯的运行,以实现交通流畅和安全。

概述:交通灯是城市交通管理的重要组成部分,通过控制交通灯的信号变化,可以实现不同车辆和行人的交通流畅和安全。

单片机作为实验的控制器,可编程控制交通灯的运行,增强交通流畅性。

正文:一、单片机交通灯实验的背景和意义1.单片机交通灯实验的背景交通灯在城市交通管理中具有重要的地位和作用,通过控制交通灯的信号变化,可以实现车辆和行人的有序通行。

单片机交通灯实验为进一步研究交通灯原理和实现方式提供了实践基础。

2.单片机交通灯实验的意义单片机交通灯实验可以帮助学生理解并掌握交通灯的基本原理和控制方式,培养学生的创新思维和动手能力,并为进一步研究和改进交通灯系统提供参考。

二、单片机交通灯实验的设计和实施1.设计交通灯的硬件结构a.硬件元件选择和连接方式b.单片机选择和编程2.实施交通灯的控制逻辑和操作a.基本的交通灯控制逻辑b.交通灯的运行和状态转换三、单片机交通灯实验的分析和评价1.对交通流畅性的影响分析a.不同信号时间间隔对交通流量的影响b.交通灯控制方式对交通流畅性的影响2.对交通安全性的评价a.不同交通灯参数对交通安全的影响b.交通灯设施对行人安全的影响3.对实验结果的分析和总结a.实验数据的收集和处理b.结果的呈现和解释四、单片机交通灯实验的改进和优化方向1.优化交通灯的控制算法a.基于流量的自适应控制算法b.基于信号的智能预测算法2.改进交通灯的硬件设计a.使用更高效的电子元件和材料b.结合无线通信技术和传感器技术进行实时监测和控制五、单片机交通灯实验的应用和展望1.在城市交通管理中的应用前景a.提高交通流畅性和安全性的需求b.单片机交通灯技术的潜在优势2.可能的进一步研究方向a.基于互联网的智能化交通灯系统b.基于算法的全自动交通控制系统总结:通过本次单片机交通灯实验,我们对交通灯的原理和实现方法有了更深入的了解。

基于51单片机的交通信号灯系统_毕业设计

基于51单片机的交通信号灯系统_毕业设计

毕业设计基于单片机的交通信号的灯控制系统一. 综合实训的主要内容 1.设计任务设计一单片机控制的交通信号灯系统,模拟城市十字路口交通信号灯功能。

2.基本功能要求2.1 交通信号控制直行车道红黄绿灯控制、左行车道绿灯控制、人行横道红绿灯控制。

2.2 通行时间显示数码管倒计时显示通行时间。

2.3 时间参数设置存储按键实现通行时间的设置,并存储到EEPROM (24C02)芯片中。

二. 硬件方案设计与论证 1. 显示模块设计1.1倒计时时间显示设计思想:由于该系统要求完成倒计时显示通行时间的功能,且考虑到实际的交通系统中车辆及行人通行时间不会超过一分钟,基于以上原因,我们考虑完全采用数码管显示,四个路口分别采用一个二位共阴极数码管进行显示。

(其实物图见附录1图5.3)图2.1 数码管原理图原理图分析:为了显示数字或字符,必须对数字或字符进行编码。

七段数码管GND abcde fg dp gf ed c ba(a)(a,b,c,d,e,f,g)加上一个小数点(dp),共计8段,构成一个字节,通过对这八段给予高低平使二极管导通或截止,从而显示不同的数字或字符。

系统中所使用的是2位共阴数码管(实物图见附录),其管脚从左上方起顺时针依次为1,a,b,e,d,2,g,f,dp,c。

1.2 状态灯显示设计思想:由于该系统要求完成状态灯显示的功能,我们把各个路口的红灯和黄灯设成直行和左拐两个通行方式所共有,也就是说,一个路口只需四个状态灯,一个直行通行的绿灯,一个左拐通行的绿灯,一个共有的红灯,一个共有的黄灯,人行横道采用红绿灯控制,综上所述,我们共使用16个LED绿灯,12个LED 红灯,4个LED黄灯来完成状态灯显示功能。

2.控制模块设计2.1 设计思想由于本系统结构简单,实现较容易,不需要大量的外围扩展,所以我们采用STC89C51单片机作为主控制器,STC89C51单片机具有体积小,功耗低,控制能力强,价格低、扩展灵活,使用方便等特点,其最小系统由振荡电路、复位电路构成。

MCS-51交通灯设计报告(初稿)--改4

MCS-51交通灯设计报告(初稿)--改4

东南大学仪器科学与工程学院学院课程设计报告课程设计名称:交通信号灯控制器设计小组成员:指导老师:王澄非报告日期: 2013/12/7目录一、设计任务 (3)二、总体方案 (4)三、原理图和硬件电路设计 (6)四、软件&各模块功能实现 (9)五、设计总结 (18)六、参考文献 (19)七、附件材料 (3)一、设计任务1.1 题目要求利用51系列单片机、三原色发光二极管、八段数码管等器件,设计交通信号灯控制器,控制十字路口的交通秩序。

该交通信号灯控制器(开机默认状态下)控制功能如下:(1)南北方向红灯亮,东西方向绿灯亮26s;南北方向红灯亮,东西方向绿灯闪烁2s;南北方向红灯亮,东西方向黄灯亮2s;东西方向红灯亮,南北方向绿灯亮26s;东西方向红灯亮,南北方向绿灯闪烁2s;东西方向红灯亮,南北方向黄灯亮2s;(2)每个方向用2个数码管显示对应亮灯到计时。

(3)每个方向用3个三色发光管显示对应颜色(红色、绿色和黄色)。

(4)设置倒计时时间。

为实现该功能,系统可以设置3个功能键,即:S1—设置键、S2—数值增加、S3—数值减小。

通过对数字键操作,可以设定倒计时时间;通过S1的操作次序确定当前的显示和调整内容,由S2和S3进行调整。

S1可以有4种状态,对应调整内容见下表:(红灯时间为绿灯时间、绿灯闪烁时间及黄灯时间之和)(5) 倒计时时间也可通过串行通信接口来实现。

1.2 设计任务分析本项目主要实现交通灯的六种状态显示及三个控制按键功能。

六种状态红、黄、绿灯之间的交替关系如下表:二、总体方案2.1.设计流程图2.2. 方案选择2.2.1 MCS-51资源分配总体设计可以分为MCU控制模块,数码管倒计时显示模块,LED交通灯模块和按键调整模块。

针对上述4个模块,合理分配I/O引脚资源,这样不仅能简化电路设计,节约资源,而且能缩短软件开发周期。

具体I/O引脚资源分配如下:数码管倒计时显示模块:采用共阴极数码管显示倒计时,使用P0口作为七段数码管的段选信号控制端(使用74HC573进行数据锁存),选用P1^0~P1^2作为4个数码管的位选信号控制端(使用74HC138进行译码)。

基于51单片机的交通灯设计论文报告

基于51单片机的交通灯设计论文报告

基于51单片机的交通灯设计论文报告交通灯(红绿灯)是城市交通系统中非常重要的一部分,它在控制交通流量以及确保道路安全方面发挥着关键作用。

随着科技的不断发展,交通灯的设计也越来越智能化和高效。

本篇论文将以51单片机为基础,设计一种基于51单片机的交通灯系统,包括电路设计、程序编写以及系统的实现。

首先,我们需要设计电路来实现交通灯系统。

基于51单片机的交通灯系统通常由红灯、黄灯和绿灯组成。

电路的设计要求能够控制灯的亮灭以及灯的颜色变换。

我们可以使用三个LED灯作为交通灯的灯泡,通过控制灯泡的亮灭来实现交通灯的变化。

使用适当的电阻和电容来限制电流和滤波。

接下来,我们需要编写程序来控制交通灯的变换。

通过使用51单片机的GPIO引脚,可以直接控制LED灯的亮灭。

在程序中,我们需要设置灯的亮灭时间以及灯的切换时机。

通过使用定时器和中断来实现定时控制,可以让灯在规定的时间内变换。

在系统的实现中,我们需要将电路和程序进行整合。

将电路连接到单片机上相应的引脚上,并通过编写程序来控制引脚的电平变化。

同时,我们还可以加入人体红外传感器等外设来实现智能控制,例如通过检测车流量来调节交通灯变换的时间。

在设计交通灯系统时,还需要考虑到系统的可靠性和稳定性。

我们可以通过电路设计上的合理选择和优化来降低系统的故障率,并确保系统能够长时间稳定运行。

通过基于51单片机的交通灯系统设计与实现,可以有效控制交通流量、提高交通效率,并确保道路的安全性。

同时,该系统还具有灵活性和可扩展性,可以根据实际需要进行调整和升级。

综上所述,本论文基于51单片机设计了一种交通灯系统。

通过电路设计、程序编写以及系统的实现,可以实现交通灯的控制和变换。

该系统具有智能化、高效性和稳定性等特点,有助于提高交通管理水平和道路安全。

51单片机c语言交通灯设计报告

51单片机c语言交通灯设计报告

xxxxxxxxx基于AT89S52交通灯设计学院:电子信息工程专业班级:xxxxxxxxxxxxxx姓名:xx xx学号:xxxxxxxxxxx指导老师:xxxxxxxxxx摘要交通灯在我们日常生活中随处可见,它在交通系统中处于至关重要的位置。

交通灯的使用大大减少了交通繁忙路口的事故发生,给行人和车辆提供一个安全的交通环境,人们的生命和财产安全有了保障。

本设计旨在模拟十字路口的交通灯,以AT89S51单片机为基础,结合按键和数码管等元器件设计出一个简单且完全的交通灯系统。

关键词:交通灯AT89S52 单片机目录一、设计任务 (4)二、AT89S52单片机及其他元器件简介 (4)(1)AT89S52单片机 (4)三、系统硬件电路设计 (6)(1)时钟电路设计 (6)(2)复位电路设计 (6)(3)灯控制电路设计 (7)(4)按键控制电路设计 (7)四、元件清单及实物图 (8)1、程序清单 (8)2、原理图 (9)五、实验心得 (9)附1 源程序代码 (10)附2 原理图 (16)一、设计任务(1)、设计一个十字路口的交通灯控制电路,要求南北方向和东西方向两条交叉道路上的车辆交替运行,每次通行时间都设30秒,时间可设置修改。

(2)、在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道,且黄灯亮时,要求每秒亮一次。

(3)、有紧急车辆要求通过时,系统要能禁止东西和南北两条路上所有的车辆通行。

二、AT89S52单片机及其他元器件简介(1)AT89S52单片机AT89S52是一种低功耗、高性能CMOS8位微控制器。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6位向量2级中断结构,全双工串行口,片内晶振及时钟电路。

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

51单片机综合实验交通灯设计报告班级:学生姓名:学号:指导教师:一实验题目交通灯控制系统设计二实验目的1、学会用8051单片机开发简单的计算机控制系统;2、学会用汇编语言和C语言开发系统软件;3、学会8051单片机开发环境wave或Keil uVision3软件的使用;4、学会Proteus软件的使用方法,会用Proteus单片机系统进行仿真;5、学会Protel软件的使用方法,会用Protel绘制电气原理图和印制板图;6、熟悉七位数码管显示的使用方法;7、了解交通灯控制系统的基本组成。

三实验要求交通灯处在十字路口上。

它有红﹑黄﹑绿三种颜色的灯组成。

红灯亮时道路上的车辆停止运行;黄灯是一种过渡用的信号灯,当它亮时,表示道路上的红绿色信号灯即将进行转换。

下面拿东西南北四个方向来说明。

当东西方向允许行车(或者左转)的时候,南北方向就禁止行车,即此时东西方向的绿灯亮红灯灭,而南北方向的绿灯灭红灯亮。

反之当南北方向允许行车(或者左转)的时候,东西方向就禁止行车,即此时南北方向的绿灯亮红灯灭,而东西方向的绿灯灭红灯亮。

交通灯配置示意图如图1所示。

同时当有特殊的情况发生时,能手动控制各个方向的信号灯。

设计任务就是将这一电路用单片机来实现具体的控制。

1 十字路口交通灯配置示意图四设计容与原理为了在后面的分析中便于说明,将南北方向允许直行命名为状态1,南北方向允许左转命名为状态2,南北方向行车到东西方向行车的转换阶段命名为状态3,将东西方向允许直行命名为状态4,东西方向允许左转命名为状态5,东西方向行车到南北方向方向行车的转换阶段命名为状态6。

假定直行绿灯点亮的时间为25s,左转绿灯点亮的时间为20s,黄灯点亮的时间为5s,则对方红灯的点亮时间为50秒。

黄灯每隔500ms亮一次,之后灭500ms (亮灭一次叫作闪烁一次),一共闪烁5次,持续5s。

各个状态之间的变换情况如下:具体显示周期如下:图2交通信号灯点亮时间图设计电路中每个路口的控制信号灯应有四个,即绿灯两个、黄灯、红灯各一个,同时需要七段数码管一个。

因此,本电路的设计中应用到绿灯八个,黄灯四个,红灯四个,七段数码管两个(东西方向相同,南北方向相同,为节省空间可省略一对)。

五电路设计分析根据前面的设计容与原理分析,电路设计中应有控制模块(单片机电路)、显示模块(十六个信号灯和两个七段数码管)本电路的设计,将发光二极管作为16个信号灯的材料。

电源将采用5V的直流电源。

东西两个方向的绿灯是同时亮的,为了简化电路可以让这两个灯接同一个引脚。

同理,东西方向的黄灯、红灯也可以分别接同一个引脚。

南北方向同上。

这样我们可以用一个8位口控制16盏信号灯。

各信号灯均是共阴极接法,LED负极均接地,正极通过保护电阻接单片机P1口。

这样单片机引脚的输出一个高电平时,相应的信号灯就被点亮。

七段数码管经过8位排阻RESPACK-8连接。

单片机中应包括复位电路和晶振电路。

本设计中,采用上电复位形式,由于本系统应用的机器周期为lms,所以晶振选择为12MHz,根据调试电容选择30pF.图3:复位电路图4:晶振电路六硬件原理图七程序流程本程序的程序流程图如图所示八心得体会这次系统实验历时一个月的时间,在这实验过程里我们巩固了从编程、软件使用到调试的专业知识,逻辑思维和动手能力都得到了很大的提高。

要解决的主要问题就是程序的设计和仿真,虽然初期在设计和布局、编程时思路比较清晰,但是到了细节处,也出了不少问题,而且很难被检查出来,如在定时器使用方面出了一些错误。

但是最后经过不断努力,还是写出来正确的代码。

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

附录程序代码:#define uchar unsigned char#define uint unsigned int#include <reg52.h>/*****定义控制位**********************/sbit EW_LED2=P2^3; //东西数码管个位sbit EW_LED1=P2^2; //东西数码管十位sbit SN_LED2=P2^1; //南北数码管个位sbit SN_LED1=P2^0; //南北数码管十位_sbit SN_Yellow=P1^6;//南北黄灯sbit EW_Yellow=P1^2;//东西黄灯sbit EW_Red=P1^3;//东西红灯sbit SN_Red=P1^7;//南北红灯sbit Busy_Btton=P3^4;bit Flag_SN_Yellow; //南北黄灯标志位bit Flag_EW_Yellow;//东西黄灯标志位char Time_EW;//东西方向倒计时单元char Time_SN;//南北方向倒计时单元uchar EW=50,SN=25,EWL=20,SNL=20; //程序初始化赋值uchar EW1=50,SN1=25,EWL1=20,SNL1=20;//用于存放修改值的变量1-9段选码ucharcode table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 }; uchar code S[8]={0X28,0X48,0X18,0X48,0X82,0X84,0X81,0X84};//交通信号灯控制代码/**********************延时子程序************************/void Delay(uchar a){uchar i;i=a;while(i--){;}}/*****************显示子函数**************************/void Display(void){char h,l;h=Time_EW/10;l=Time_EW%10;P0=table[l];EW_LED2=1;Delay(200);EW_LED2=0;P0=table[h];EW_LED1=1;Delay(200);EW_LED1=0;h=Time_SN/10;l=Time_SN%10;P0=table[l];SN_LED2=1;Delay(200);SN_LED2=0;P0=table[h];SN_LED1=1;Delay(200);SN_LED1=0;}/**********************T0中断服务程序*******************/ void timer0(void)interrupt 1 using 1{static uchar count;TH0=(65536-50000)/256;TL0=(65536-50000)%256;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){Time_EW--;Time_SN--;if(Flag_SN_Yellow==1)//南北黄灯标志位{ Time_SN=Time_EW;{SN_Yellow=~SN_Yellow;}}if(Flag_EW_Yellow==1)//东西黄灯标志位{ Time_EW=Time_SN;{EW_Yellow=~EW_Yellow;}}count=0;}}void main(void){IT0=1; //INT0负跳变触发TMOD=0x01;//定时器工作于方式1TH0=(65536-50000)/256;//定时器赋初值TL0=(65536-50000)%256;EA=1; //开中断总允许ET0=1;//开定时中断EX0=1;//开外部INTO中断TR0=1;//启动定时while(1){ /*******状态1**********/Flag_EW_Yellow=0; //EW关黄灯显示信号Time_EW=EW;Time_SN=SN;while(Time_SN>0){P1=S[0]; //SN通行,EW红灯Display();}/*******状态2**********/Flag_SN_Yellow=0; //SN关黄灯显示信号Time_SN=SNL;while(Time_SN>0){P1=S[2];//SN左拐绿灯亮,EW红灯Display();}/*******状态3**********/P1=0x00;while(Time_EW>0){Flag_SN_Yellow=1; //SN开黄灯信号位EW_Red=1; //SN黄灯亮,等待停止信号,EW红灯 //SN_LED1=EW_LED1;//SN_LED2=EW_LED2;Display();. .页脚}/***********赋值**********/EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1;/*******状态4**********/Flag_SN_Yellow=0; //SN关黄灯显示信号Time_EW=SN;Time_SN=EW;while(Time_EW>0){P1=S[4]; //EW通行,SN红灯Display();}/*******状态5**********/Flag_EW_Yellow=0; //EW关黄灯显示信号Time_EW=EWL;while(Time_EW>0){P1=S[6];//EW左拐绿灯亮,SN红灯Display();}/*******状态6**********/P1=0X00;while(Time_SN>0){Flag_EW_Yellow=1; //EN开黄灯信号位SN_Red=1;//EW黄灯亮,等待停止信号,SN红灯Display();}/***********赋值**********/EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1;}}。

相关文档
最新文档