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

基于51单片机的智能交通灯课程设计报告书

基于51单片机的智能交通灯课程设计报告书

基于51单⽚机的智能交通灯课程设计报告书简易智能交通灯设计1、设计背景⾃从1886两个德国⼈发明了第⼀辆汽车交通灯改变了交通路况,交通问题也渐渐被⼈们所重视。

从英国伦敦街头的第⼀个以燃煤⽓为光源的红,蓝两⾊的机械扳⼿式信号灯,到现在以电为光源的红黄绿三⾊交通灯,不知不觉中交通信号灯在⼈们⽇常⽣活中占据了重要地位。

随着⼈们社会活动⽇益增加,经济发展,汽车数量急剧增加,城市道路⽇渐拥挤,交通灯更加显⽰出了它的功能,使得交通得到有效管制,对于交通疏导,提⾼道路导通能⼒,减少交通事故有显著的效果。

近年来,随着科技的飞速发展,电⼦器件也随之⼴泛应⽤,其中单⽚机也不断深⼊⼈民的⽣活当中。

本次课程设计以模拟交通灯系统利⽤单⽚机AT89C51作为核⼼元件,实现了通过信号灯对路⾯状况的智能控制。

在⼀定程度上解决了交通路⼝堵塞、车辆停车,特殊情况的交通灯等待时间不合理、急车强通等问题。

在该次的设计系统具有结构简单、可靠性⾼、成本低、实时性好、安装维护⽅便等优点,有⼴泛的应⽤前景。

本模拟系统由单⽚机软件系统,两位8段数码管和LED灯显⽰系统。

和复位电路控制电路等组成,较好的模拟了对交通路⾯的控制。

1.1 设计思路(1)分析⽬前交通路⼝的基本控制技术以及各种通⾏⽅案,并以此为基础提出⾃⼰的交通控制的初步⽅案。

(2)确定系统交通控制的总体设计,包括,⼗字路⼝具体的通⾏禁⾏⽅案设计以及系统应拥有的各项功能,在这⾥,本设计除了有信号灯状态控制能实现基本的交通功能,还增加了倒计时显⽰提⽰,并基于实际情况,⼜增加了紧急状况处理和通⾏时间可调这两项特特殊功能。

(3)进⾏倒计时显⽰电路,灯状态电路,特殊情况按键电路的设计和对各器件的选择及连接,⼤体分配各个器件及模块的基本功能要求。

(4)进⾏软件系统的设计和仿真中,程序在KEIL软件中⽤单⽚机c语⾔编写,电路的搭建和仿真实现是在proteus软件中实现的。

在本次课程设计中通过对单⽚机内部结构和⼯作情况做了⼀定的研究,充分了解定时器,中断以及延时原理,为本次智能交通灯的设计提供了理论基础。

基于51单片机交通灯工程实践方案报告书

基于51单片机交通灯工程实践方案报告书

《工程实践》设计方案报告基于单片机的交通灯控制系统设计题目主要研究思路和方法:一,研究方案本项目计划实现的基本目标是:利用单片机作为主要控制系统,模拟出东西方向为主干道十字路口交通灯控制系统。

二,重点解决问题1. 本项目要求可实现可手动设定交通灯亮灭交换所需时长,并且该灯亮时间倒计时用数码管显示。

2. 模拟遭遇突发情况的时候,可手动实现红灯全亮,禁行任何方向的车辆。

3. 由于本项目是模拟东西主干道的十字路口交通灯系统,故要求须包含左转灯,并且可实现右转灯长绿灯。

三. 技术路线1. 本项目由于是单片机作为主控系统,故要求我们熟练掌握单片机编程知识。

2. 本系统由显示电路(包含LED灯倒计时及发光二极管模拟交通灯),单片机主控制电路,按键和电源电路组成,需熟悉自动控制原理。

3. 将紧急情况红灯全亮写成程序编入单片机。

4. 该系统采用+5V直流稳压电源供电工作。

5.显示界面4个路口采用8个共阴极数码管,采用74LS48芯片驱动电路驱动LED晶体管显示部分。

系统原理框图和工作原理:具体:先东西双向直行和左转都是红灯,直行红灯长亮45秒,红灯亮时开始倒计时,剩5秒时开始闪烁(共计红灯亮50秒);接着左转还是红灯,东西双向直行灯长亮绿灯57秒,绿灯亮时倒计时,剩3秒时闪烁(共计绿灯亮60秒,在此期间其余全部红灯);然后5秒黄灯倒计时(不闪烁);然后东西左转绿灯亮时开始倒计时,剩3秒时闪烁(共计13秒),接着黄灯5秒倒计时(不闪烁),直行灯亮红色。

然后东西双向直行与左转又是红灯依次循环(灯亮情况南北直行方向与东西直行方向相反)。

具体对应情况如下主干道亮灭情况及时长:东西 南北左转灯 直行灯 左转灯 直行灯1.红 红(35) 1.红 绿(27)2. 红 绿闪(3)红 黄(5)3.红 红(7) 3.绿(7) 红4.红 红(3) 4.绿闪(3) 红5.红 红(5) 5.黄(5) 红6.红 绿(57) 6.红 红(65)7.红 绿闪(3)8.红 黄(5)9.绿(7) 红 9.红 红(10)10.绿闪(3)红 10.红 红(5)11.黄(5) 红12.红 红(35) 12.红 绿(32)东西方向为主干道;南北为辅干道。

单片机交通灯实习报告

单片机交通灯实习报告

一、实习背景随着我国城市化进程的加快,城市交通压力日益增大,交通拥堵问题日益突出。

为了提高交通效率,保障交通安全,交通信号灯控制系统的设计与研究显得尤为重要。

本实习项目旨在通过单片机技术,实现对交通灯的智能控制,提高交通路口的通行效率和安全性。

二、实习目的1. 熟悉单片机的基本原理和编程方法;2. 掌握交通信号灯控制系统的设计方法;3. 提高实际动手能力和问题解决能力;4. 培养团队协作精神和创新意识。

三、实习内容1. 硬件设计(1)单片机选型:选用STC89C51单片机作为核心控制器;(2)传感器选型:选用红外传感器检测车辆和行人流量;(3)显示屏选型:选用LCD显示屏显示交通灯状态和时间;(4)交通灯模块:采用LED灯实现红、黄、绿灯的显示;(5)按键模块:采用按键实现功能切换和参数设置。

2. 软件设计(1)系统初始化:单片机上电后,进行系统初始化,包括设置定时器、初始化I/O端口等;(2)数据采集:通过红外传感器采集交通流量数据,并进行处理;(3)数据处理与决策:根据采集到的交通流量数据,结合预设的算法和规则,计算出当前交通灯的信号配时;(4)信号控制:根据计算出的信号配时,控制交通灯的信号状态;(5)人机交互:通过按键实现功能切换和参数设置,并通过LCD显示屏显示交通灯状态和时间。

3. 系统测试与调试(1)硬件测试:检查电路连接是否正确,电源是否稳定,传感器、显示屏、交通灯模块是否正常工作;(2)软件测试:通过编写测试程序,验证系统功能是否满足设计要求;(3)调试:根据测试结果,对系统进行调试,确保系统稳定可靠地运行。

四、实习成果1. 设计并实现了基于单片机的交通信号灯控制系统;2. 系统能够根据实时交通流量自动调整红绿灯的切换时间,提高交通效率;3. 系统具有故障自诊断、手动/自动切换等功能,提高了系统的可靠性和实用性。

五、实习总结通过本次单片机交通灯实习,我掌握了单片机的基本原理和编程方法,熟悉了交通信号灯控制系统的设计方法,提高了实际动手能力和问题解决能力。

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单片机交通灯设计报告

51单⽚机交通灯设计报告课程设计说明书课程名称:《单⽚机技术》设计题⽬:交通灯设计学院:电⼦信息与电⽓⼯程学院学⽣姓名:学号:专业班级:指导教师:课程设计任务书交通灯设计摘要:近年来随着科技的发展,单⽚机的应⽤正在不断深⼊,同时带动传统控制检测技术⽇益更新。

在实时检测和⾃动控制的单⽚机应⽤系统中,单⽚机往往作为⼀个核⼼部件来使⽤,仅单⽚机⽅⾯的知识是不够的,还应该根据具体硬件结构软硬结合,加以完善。

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

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

本系统采⽤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. 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连接。

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

本设计中,采用上电复位形式,由于本系统应用的机器周期为l s,所以晶振选择为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;}}。

相关文档
最新文档