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

合集下载

基于51单片机控制交通灯课程设计报告

基于51单片机控制交通灯课程设计报告

基于51单片机控制交通灯课程设计报告本设计课程使用STC89c52型号的芯片及相关元器件自己组装单片机最小系统,并编写程序用于控制交通信号灯。

1.STC89c52的芯片元器件的说明:STC89c52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。

此外,STC89c52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。

在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。

掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能,STC89c52在众多嵌入式控制应用系统中得到广泛应用。

2.STC89c52的功能是:·标准MCS-51内核和指令系统·片内8kROM(可扩充64kB外部存储器)· 32个双向I/O口· 256x8bit内部RAM(可扩充64kB外部存储器)· 3个16位可编程定时/计数器·时钟频率3.5-12/24/33MHz·向上或向下定时计数器·改进型快速编程脉冲算法· 6个中断源· 5.0V工作电压·全双工串行通信口·布尔处理器—帧错误侦测· 4层优先级中断结构—自动地址识别·兼容TTL和CMOS逻辑电平·空闲和掉电节省模式· PDIP(40)和PLCC(44)封装形式3.管脚说明VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

基于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单片机交通灯工程实践方案报告书

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

二,重点解决问题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)东西方向为主干道;南北为辅干道。

51单片机红绿灯设计报告

51单片机红绿灯设计报告
3.硬件设计 .................................................................................................................................2 3.1 硬件选型.....................................................................................................................2 3.2 系统硬件电路原理详图 .............................................................................................4 3.3 实际连线详图 .............................................................................................................5 3.3.1 共阴极数码管原理图以及四位数码管引脚图 ...............................................5 3.3.2 红绿灯模拟仿真电路 .......................................................................................5 3.3.3 51 单片机主控实物图以及原理图 ..................................................................5
1.1 课程设计制作题目及要求

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

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设计原因随着社会的进步,交通的高速发展,红绿灯已经成为了我们生活中不可或缺的一部分,如今,红绿灯已经安装在各个道路的交接口处,已经成为疏导交通车辆最常见和最有效的手段。

基于51单片机的模拟交通灯课程设计报告

基于51单片机的模拟交通灯课程设计报告

模拟交通灯控制系统的设计一、功能要求利用红、绿、黄三种不同颜色的LED显示不同的通行情况,利用2个数码管进行1秒倒计时显示,最大定时时间为90秒;要求LED点亮时间和倒计时时间准确;完成单片机最小系统及其扩展设计,焊接电路板,组成功能完整的样机。

模拟实际交通灯控制系统功能,完成控制软件的编写与调试。

二、方案论证采用标准AT89C51单片机作为控制器;东、西、南、北各方向通行倒计时显示采用2位LED数码管,LED显示采用直接驱动方式;模拟交通信号灯采用直径为ψ5mm的圆形发光二极管;紧急车辆通行采用实时中断完成;通过蜂鸣器实现盲人提示功能。

按以上系统构架设计,单片机端口资源刚好满足要求,该系统设计方便,电路简单。

三、系统硬件电路的设计整套电路系统由控制系统模块、通行灯控制显示模块、时间显示模块、特种车辆通行控制模块和盲人提示电路模块等组成。

1、主控制系统主控制器采用AT89C51单片机的P1.0~P1.5脚用于控制东西及南北方向的通行灯,P1.6脚用于控制盲人提示电路;P0口及P2 口用于4组2位LED计时器的控制;特种车辆通过时使用外部中断0口(P3.2).5、盲人提示电路模块道口控制系统设计中也考虑到了方便盲人过人行道的声音提示电路,采用蜂鸣器作为声括信号灯提示、数码管倒计时显示、盲人提示功能和紧急车辆通行功能等)。

1、初始化程序初始化程序主要包括声明IO口的连接对象、声明7段LED数码管驱动信号数组、声明基本变量、定义无返回函数(延时函数)。

2、主程序主程序主要负责总体程序管理功能,实现信号灯显示与数码管倒计时显示,以及蜂鸣器提示和特种车通行提示。

主程序流程图如下子程序流程图如下状态1状态2状态4 状态5五、调试及性能分析1、硬件部分首先应用Proteus软件对电路原理图进行检查,检查无误后进行焊接,焊接结束后利用万用表检查线路是否为通路。

2、软件部分首先应用keil u4软件对程序进行编译和调试,调试成功后,利用Proteus 软件进行在线仿真,经过对程序多次地修改后,仿真效果达到了预期的要求。

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

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

目录摘要 01 系统硬件设计 (1)1.1 80C51单片机引脚图及引脚功能介绍 (1)1.2 74LS245引脚图及功能 (3)1.3 八段LED数码管 (4)1.4 硬件系统总控制电路 (5)1.5各模块控制电路 (7)1.5.1 交通灯控制电路 (7)1.5.2 倒计时显示电路 (8)1.5.3 紧急通行电路 (11)1.5.4 声音警示装置 (12)2 系统程序设计 (13)2.1 主程序流程图 (13)2.2 显示子程序流程图 (14)3 心得体会 (15)参考文献 (16)附录源程序 (17)摘要近年来随着科技的飞速发展,一个以微电子技术、计算机技术和通信技术为先导的信息革命正在蓬勃发展。

计算机技术作为三者之一,怎样与实际应用更有效的结合并发挥其作用。

单片机作为计算机技术的一个分支,正在不断的应用到实际生活中,同时带动传统控制检测的更新。

在实时检测和自动控制的应用系统中,单片机往往是作为一个核心部件使用,针对具体应用对象的特点,配以其它器件来加以完善。

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。

那么靠什么来实现交通的井然秩序呢?靠的是交通信号灯的自动指挥系统,来实现交通的井然有序。

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

本系统采用美国ATMEL公司生产的单片机AT80S51,以及其它芯片来设计交通灯控制。

实现了通过AT89S51芯片的P1口设置红、绿灯点亮的功能,输出设置显示时间。

交通灯的点亮采用发光二极管实现,时间的显示采用七段数码管实现。

单片机系统采用的直流供电。

关键词:AT89S51单片机;智能交通灯控制系统;基于51单片机智能交通灯设计1 系统硬件设计1.1 80C51单片机引脚图及引脚功能介绍80C51系列中,用CHMOS工艺制造的单片机都采用双列直插式(DIP)40脚封装,引脚信号完全相同。

图1-1为引脚图图1-1 80C51引脚图这40根引脚大致可分为:电源(V CC、V SS、V PP、V PD)、时钟(XTAL1、XTAL2)、I/O口(P0~P3)、地址总线(P0口、P2口)和控制总线(ALE、RST、、、)等几部分。

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单片机应用于红绿灯交通系统中,实现了红绿灯状态的正确切换和时间控制。

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

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

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

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

基于51单片机的交通灯(红绿灯)设计论文报告
3.设计原理:
利用“自动控制”控制交通灯的方法。将事先编制好的程序输入单片机,利用单片机的定时、查询、中断功能;能够根据十字路口两个方向上车辆动态状况,采用查询的方式,根据具体情况,自动给予时间通行,其中利用中断方式来处理特殊情况。这样既方便驾驶员、路人,同时还可以紧急处理一些紧急实况。同样具有红、黄、绿灯的显示功能,为驾驶员、路人“照明”。
电阻
470Ω
8
数码管电路
电阻
1K
7
数码管驱动、按键电路
数码管
GC-3461BS
1
显示电路
微动开关
3
按键电路
三级管PNP
8550
4
数码管驱动电路
表1-1
2)2位8段数码管工作原理:
2位8段数码管电路采用“共阴”连接,阴极公共端(COM)由晶体管推动。如图4-3所示:
段码和位码,段码即段选信号 SEG,它负责数码管显示的内容,图中 a~g、dp组成的数据(a 为最低位,dp 为最高位)就是段码。位码即位选信号 DIG,它决定哪个数码管工作,哪个数码管不工作。当需要某一位数码管显示数字时,只需要先选中这位数码管的位信号,再给显示数字的段码。
IE0 = 1;//启动外部中断0
PX0 = 1;
EX1=1;
IE1=1;
EA = 1; //开总中断
}
void int0(void) interrupt 0//外中断0
{
flag = 0;
led_data_temp = P0;
t0 = 20;
if(!int0_key)
{
delayms(10);
if(!int0_key)
4、交通灯输出控制模块
道口交通灯指示采用高亮度红、黄、绿发光二极管进行提示。

单片机红绿灯的设计实验报告

单片机红绿灯的设计实验报告

单片机红绿灯的设计实验报告一、实验目的1.了解单片机的基本功能与使用方法;2.学习使用Keil C51 编译器和Proteus仿真软件;3.掌握单片机编程语言C语言的基本语法和直接控制IO口的方法;4.通过设计红绿灯控制系统,加深对单片机的理解并培养自己的创新意识。

二、实验基本原理1.单片机的基本组成①微处理器是主要控制计算机系统工作的核心部件,包括指令寄存器、程序计数器、通用寄存器、测试和调试功能等。

②存储器存储程序和数据,常见的有ROM、EPROM、RAM等。

③输入输出端口把微处理器与外部器件相连,常见的有通用输入输出口I/O口、定时器/计数器、串行通信口等。

2.单片机的编程基础C语言是单片机编程最常用的编程语言之一,其基本语法与PC编程语言相同,但要了解单片机IO口的使用和编程方法。

3.红绿灯系统的设计本系统采用双向流量控制时相同步控制灯光,主要由四个模块组成:(1)计数器模块计数器模块是用来设置红绿灯系统时间的基本模块,通过定时器,定时器溢出时计数器加1,灯开始切换。

(2)红灯亮模块红灯亮模块是用来控制红灯亮起的模块,主要是通过配置P1.0口来实现,当P1.0输出1时亮红灯,P1.0输出0时灯灭。

(3)绿灯亮模块绿灯亮模块是用来控制绿灯亮起的模块,主要是通过配置P1.1口来实现,当P1.1输出1时亮绿灯,P1.1输出0时灯灭。

(4)黄灯亮模块黄灯亮模块是用来控制黄灯亮起的模块,主要是通过配置P1.2口来实现,当P1.2输出1时亮黄灯,P1.2输出0时灯灭。

三、实验步骤1. 确定系统方案,设计电路图;2. 编写程序代码;3. 进行仿真并调试代码;4. 进行实际验收,验收并记录实验结果。

四、实验步骤详解1.系统电路图设计本次实验采用晶振频率为12MHz的AT89S52单片机来控制红绿灯顺序切换。

其电路原理图如下所示:其中,SW1、SW2分别连接到P2.0、P2.1口,模拟车辆通过;LED1、LED2、LED3接到P1.0、P1.1、P1.2口,表示红灯、黄灯、绿灯。

红绿灯单片机课程设计实验报告

红绿灯单片机课程设计实验报告

红绿灯单片机课程设计实验报告引言红绿灯是交通工具行驶安全的重要标志之一,它在城市交通中起着至关重要的作用。

为了深入理解红绿灯的工作原理以及掌握单片机的编程技术,本实验设计了一个红绿灯控制系统,通过单片机来实现红绿灯的自动控制。

设计目的本实验的设计目的是通过使用单片机和相关的电路设计,实现一个能够自动控制红绿灯的系统,并能够按照交通规则进行正常的红绿灯切换。

实验内容本实验的主要内容如下:1.设计一个可以自动控制红绿灯的单片机电路。

2.编写单片机程序,实现红绿灯状态的切换。

3.进行实验验证,观察红绿灯的工作状态。

实验原理红绿灯的控制原理是通过利用单片机的IO口输出控制信号,来控制相应的LED灯的亮灭。

通过控制LED灯的亮灭顺序和时间,就可以实现红绿灯的自动控制。

本实验设计的红绿灯控制系统采用了一个三色LED灯和一个单片机。

单片机通过IO口输出不同的电平信号控制LED的亮灭,并根据一定的时间间隔进行切换。

设计步骤步骤一:搭建电路首先,需要准备一个三色LED灯和一个单片机。

将LED的三个引脚分别连接到单片机的三个IO口上。

在连接过程中,需要注意引脚的方向和连接的正确性。

步骤二:编写程序在编写程序之前,需要明确红绿灯的状态切换规则。

通常情况下,红灯亮的时间应该比绿灯亮的时间长,黄灯亮的时间则要比红灯和绿灯的时间都短。

根据这个规则,可以设计一个合适的时间间隔来控制红绿灯的切换。

接下来,使用合适的编程语言(如C语言)编写程序,通过控制单片机的IO 口输出信号来实现红绿灯的切换。

程序的核心逻辑是根据一定的时间间隔,依次将红、黄、绿三个LED灯控制引脚的电平信号进行切换。

步骤三:实验验证在编写程序后,将单片机烧录到实验板上,并连接好电路。

接通电源后,观察LED灯的状态切换情况,验证红绿灯的自动控制是否正常工作。

通过观察LED灯的亮灭情况和时间间隔,可以判断红绿灯控制系统是否按照预期工作。

实验结果经过实验验证,我们发现红绿灯控制系统能够按照一定的时间间隔进行红绿灯的切换。

基于51单片机交通信号灯课程设计

基于51单片机交通信号灯课程设计

《电子系统设计》课程设计报告题目:交通信号灯控制器姓名:院系:电力学院专业:学号:指导教师:完成时间:年月日目录一、任务与目得二、总体设计三、硬件设计:原理图(接线图)及简要说明四、程序框图与清单五、实验结果与体会目得与要求本次课程设计得目得就是设计一个交通信号灯控制器,使其拥有以下功能:1.在十字路口每个入口处设置一个红绿灯,并且有数码管显示通行时间.2.主干道通行得时候支路禁止通行,支路通行时主干道禁止通行。

3.主干道通行时间为45S,支路通行时间为25S,中间有5S黄灯过渡。

4.在支路设有传感器,当检测不到有支路有车时,主干道将一直通行.总体设计核心为AT89C51单片机,输出计时秒表采用单片机程序输出BCD码再由74LS47译码至共阳数码管上.红绿灯输出则使用74LS160计数器得前四位进行循环译码至红绿灯,并且使用单片机程序控制输出固定脉冲至计数器CLK端使计数器按红绿灯计时跳变输出。

检测支路就是否来汽车可由在马路内放置压力传感器,当有汽车停靠在白线内等待红灯时,传感器向单片机某端口输入低电平使其被检测到。

硬件设计红绿灯电路首先分析十字路口红绿灯总用会有多少种可能,如下表:00 1 00 00 101 1 0 0 0 1 010 0 0 1 1 0 011 0 10 1 0 0我们不难从表中瞧出,十字路口得红绿灯状态最多分为4中.所以我们可以取74LS160计数器得低2位进行编码。

然后将每一位对应相应得显示规则,电路原理图如下:当74LS160输出为00时,4条译码规则中中只有NAND4这一条输出为高电平,此时对应状态为主干道绿灯亮,支路红灯亮.当74LS160输出为01时,对应主干道黄灯亮,支路红灯亮。

当74LS160输出为10时,主干道红灯亮,支路绿灯亮.当74LS160输出为11时,主干道红灯亮,支路黄灯亮。

当74LS160输出跳变至100时,Q2端向74LS160返回复位信号,重归00状态。

基于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)。

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次,然后又切换成东西方向通车,如此重复。

当发生交通意外(中断产生)时,全部亮红灯,进行交通事故的处理。

当事故处理完毕(再次按中断键),重新按上述方式工作。

当南北路口的流量大时,可以增加南北路口亮绿灯的时间,当东西路口的流量大时,可以增加东西路口亮绿灯的时间,结束后调回正常状态。

下面我们可以用图表表示灯状态和行止状态的关系如下东西南北四个路口均有红绿黄3灯和数码显示管2个,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。

状态及红绿灯状态如表1所示。

说明:0表示灭,1表示亮。

3.3单片机智能交通灯控制系统的基本构成及原理单片机设计智能交通灯控制系统,可用单片机直接控制交通信号灯的状态变化,实现倒计时、紧急情况处理与时间调整等功能。

据此,本设计系统以单片机为控制核心,连接成最小系统,由按键设置模块产生输入,信号灯状态模块、LED倒计时模块接受输出。

系统的总体框图如上所示。

单片机上电后,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。

在此过程中随时通过键盘调用急停按键和时间调节中断。

交通灯系统硬件设计此设计采用的是AT89C51单片机为部控制芯片,外部接有按键中断电路以及复位电路以外,还有4个两位数码管,用以倒计时和4个路口的灯,共12个LED灯。

信息职业技术学院毕业设计说明书(论文)第页 5第二章交通灯系统硬件设计此设计采用的是AT89C51单片机为部控制芯片,外部接有按键中断电路以及复位电路以外,还有4个两位数码管,用以倒计时和4个路口的灯,共12个LED灯。

2.1 系统框架图电路板一块,AT89S51单片机一片,八段LED数码管四个。

发光二极管12个(4个绿的,4个红,4个黄的),8个电阻,2个电容,1个晶振,1个电解电容,1个按键开关。

(系统结构框图:图2.1)2.3.1 MSC-51芯片简介MCS-51单片机部结构8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。

8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:·中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

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

2.3.2 LED显示数码管八段LED显示器由八个发光二极管组成。

其中7个长条形的发光管排列成“日”字形,另一个圆点形的放光管在显示器的右下角作为显示小数点用,它能显示各种数字及部分英文字母。

LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称为共阳极LED显示器如图2-2所示;另一种是8个发光二极管的阴极都连在一起的,称为共阴极LED显示器3.3 晶体振荡器石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整,作用是为系统提供基本的时钟信号。

我们在晶体某一方向加一电场,从而在与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产生电场,从而使机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限制时,才达到最后稳定,这种压电谐振的频率即为晶体振荡器的固有频率。

附录原程序代码#include<reg51.h>#define uint unsigned int//宏定义#define uchar unsigned char//宏定义uchar aa,cc,NBshi,NBge,DXshi,DXge,NBtemp,DXtemp;//定义变量sbit NBR=P3^0;//南北红灯sbit NBY=P3^1;//南北黄灯sbit NBG=P3^4;//南北绿灯sbit DXY=P3^5;//东西黄灯sbit DXG=P3^6;//东西绿灯sbit DXR=P3^7;//东西红灯uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数字的代码从0-9//数字的代码从0-9void init();//初始化子程序的申明void displayNB(uchar NBshi,uchar NBge);//显示子程序的申明void delay(uint z);//延时子程序的申明void fenjieNB();//南北数码管显示数字的分解函数void fenjieDX();//东西数码管显示数字的分解函数void main()void init();//初始化子程序的申明void displayNB(uchar NBshi,uchar NBge);//显示子程序的申明void delay(uint z);//延时子程序的申明void fenjieNB();//南北数码管显示数字的分解函数void fenjieDX();//东西数码管显示数字的分解函数void main(){init();//初始化子程序while(1) {if(cc==82)//循环一次结束{ cc=0;//从新进行下一次循环}}void delay(uint z)//带参数的延时函数void delay(uint z)//带参数的延时函数{ uchar x,y;//定义两个变量for(x=z;x>0;x--)//循环延时for(y=110;y>0;y--);//循环延时}void init()//初始化子程序{ EA=1;//开总中断ET0=1;//允许定时器0中断EX0=1;//允许外部中断0中断TR0=1;//启动定时器0TMOD=0x01;//设置定时器0工作方式1TH0=(65536-50000)/256;//给定时器的高8为赋初值TL0=(65536-50000)%256;//给定时器的低8为赋初值}void fenjieNB()//南北数码管显示数字的分解函数{ NBshi=NBtemp/10;//将要显示的时间的十位赋给变量NBge=NBtemp%10;//将要显示的时间的个位赋给变量NBtemp--;}void fenjieDX()//东西数码管显示数字的分解函数{ DXshi=DXtemp/10; DXge=DXtemp%10; DXtemp--;}void displayNB(uchar NBshi,uchar NBge)//带参数的数码管显示函数{//显示南北十位P2=0xfe;P0=table[NBshi];delay(5);//显示南北个位P2=0xfd;P0=table[NBge];delay(15);}void displayDX(uchar DXshi,uchar DXge) {//东西十位P2=0xfb;P1=table[DXshi];delay(5);//东西个位P2=0xf7;P1=table[DXge];delay(5);}void timer0() interrupt 1//定时器0的中断函数{TH0=(65536-50000)/256;//重装计数初值TL0=(65536-50000)%256;//重装计数初值aa++;if(aa==20)//判断定时1分钟是否到{aa=0;//计数次数清0if(cc==0)//南北亮红灯40秒,东西亮黄灯5秒{DXY=0;//东西的黄灯亮DXG=1;//东西的绿灯不亮DXR=1;//东西的红灯不亮NBY=1;//南北的黄灯不亮NBG=1;//南北的绿灯不亮NBR=0;//南北的红灯亮DXtemp=5;//东西的黄灯亮5秒NBtemp=40;//南北的红灯亮40秒}else if(cc==6)//南北继续亮红灯40秒,东西亮绿灯34秒{DXG=0;//东西的绿灯亮DXR=1;//东西的红灯不亮NBY=1;//南北的黄灯不亮NBG=1;//南北的绿灯不亮NBR=0;//南北的红灯亮DXtemp=34;//东西的绿灯亮34秒}else if(cc==41)//南北亮黄灯5秒,东西亮红灯40秒{DXY=1;//东西的黄灯不亮DXG=1;//东西的绿灯不亮DXR=0;//东西的红灯亮NBY=0;//南北的黄灯亮NBG=1;//南北的绿灯不亮NBR=1;//南北的红灯不亮NBtemp=5;//南北的黄灯亮5秒DXtemp=40;//东西的红灯亮40秒}else if(cc==47)//南北亮绿灯34秒,东西继续亮红灯40秒{DXG=1;//东西的绿灯不亮DXR=0;//东西的红灯亮NBY=1;//南北的黄灯不亮NBG=0;//南北的绿灯亮NBR=1;//南北的红灯不亮NBtemp=34;//南北的绿灯亮34秒DXtemp=34;//东西的红灯亮40秒}fenjieNB();//调用南北分解函数fenjieDX();//调用东西分解函数cc++;//判断亮灯的变量自加1}displayNB(NBshi,NBge);//调用NB红灯40秒的显示程序displayDX(DXshi,DXge);//调用DX黄灯5秒的显示程序}void JJZD() interrupt 0 //紧急中断程序,南北东西都亮红灯{DXY=1;//东西的黄灯不亮DXG=1;//东西的绿灯不亮DXR=0;//东西的红灯亮NBY=1;//南北的黄灯不亮NBG=1;//南北的绿灯不亮NBR=0;//南北的红灯亮displayNB(0,0);//南北数码管都显示0 displayDX(0,0);//东西数码管都显示0 cc=0;//重最开始显示}。

相关文档
最新文档