利用单片机实现对交通灯的模拟控制

合集下载

利用单片机实现对交通灯的模拟控制

利用单片机实现对交通灯的模拟控制

利用单片机实现对交通灯的模拟控制作者:刘静来源:《计算机光盘软件与应用》2013年第08期摘要:本文主要介绍了利用单片机LY-51SV2.3开发板实现对交通灯的模拟控制,通过本实例的设计与制作,使我们对单片机的学习有一个更深入的理解与掌握,并加强C语言的编程能力。

希望通过本实例的学习,对以后进一步学习单片机提供一个良好的基础。

关键词:单片机;交通灯;C语言中图分类号:TP319目前,交通信号灯可以说随处可见,只要有交通的地方的就有交通控制灯,我们在街道随处可以见到红、黄、绿三色信号灯,交通灯在生活中是至关重要的,没有交通灯,交通就会陷入瘫痪,人们的出行就会受到影响,所以本文利用LY-51SV2.3开发板,通过C语言编程模拟实现对交通灯的简单控制,使初学者对LY-51SV2.3开发板有一个基本的了解与掌握,对C语言编程有个基本的掌握,为以后的进一步学习提供基础。

1设计要求双干线十字路口交通灯控制规则如下:A:放行线:绿灯亮放行25秒,黄灯亮警告5秒,然后红灯禁行;B:禁行线:红灯亮30秒禁止通行,绿灯亮放行。

设计能控制东、南、西、北四个路口的红、黄、绿信号灯正常工作;当东西方向放行时,南北方向禁行,反之亦然;利用P1口控制LED灯实现;用数码管显示时间2接线根据设计要求,连接开发板线路端口。

3函数与端口说明主函数voidmain(void)定时器中断程序(LED显示)voidtimer0()interrupt1共阴数码管显示函数voidDisplay(unsignedcharFirstBit,unsignedcharNum);延时函数voidDelayMs(unsignedchart);注:LED显示采用多分支选择语句sbitRED_A=P1^0;//南北sbitYELLOW_A=P1^1;sbitGREEN_A=P1^2;sbitRED_B=P1^3;//东西sbitYELLOW_B=P1^4;sbitGREEN_B=P1^5;unsignedchartime_A,time_B;unsignedcharoperation_type=1;unsignedcharms;#defineDataPortP0//定义数据端口程序中遇到DataPort则用P0替换sbitLATCH1=P2^2;//定义锁存使能端口段锁存sbitLATCH2=P2^3;//位锁存unsignedcharcodedofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedcharcodedofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7funsignedcharTempData[8];//存储显示值的全局变量voidDelayUs2x(unsignedchart);voidDelayMs(unsignedchart);voidDisplay(unsignedcharFirstBit,unsignedcharNum);4实现过程voidmain(void){ TMOD=0x01; //使用模式1,16位定时器TH0=(65536-50000)/256; //给定初值TL0=(65536-50000)%256;EA=1; ET0=1; TR0=1;time_A=25;time_B=30;while(1)//主循环{TempData[0]=dofly_DuanMa[time_A/10];TempData[1]=dofly_DuanMa[time_A%10];TempData[2]=dofly_DuanMa[time_B%10];TempData[3]=dofly_DuanMa[time_B%10];Display(0,4); }}voidDelayUs2x(unsignedchart){while(--t);}voidDelayMs(unsignedchart){while(t--){DelayUs2x(245); DelayUs2x(245);}} voidDisplay(unsignedcharFirstBit,unsignedcharNum) {unsignedchari; for(i=0;i{DataPort=0;//清空数据,防止有交替重影LATCH1=1;LATCH1=0;DataPort=dofly_WeiMa[i+FirstBit];//取位码LATCH2=1;LATCH2=0;DataPort=TempData[i];//取显示数据,段码LATCH1=1;LATCH1=0;DelayMs(2);//扫描间隙延时,时间太长会闪烁,太短会造成重影}} voidtimer0()interrupt1{ TH0=(65536-50000)/256;TL0=(65536-50000)%256;ms++; if(ms==20){ms=0;time_A--; time_B--;}switch(operation_type){ case1:RED_A=1;YELLOW_A=1;GREEN_A=0; //南北绿灯 25S RED_B=0;YELLOW_B=1;GREEN_B=1; //东西红灯 30Sif(time_A!=0)return; //25S时间到time_A=5;operation_type=2; break;case2:YELLOW_A=0;GREEN_A=1; //南北黄灯5Sif(time_A!=0)return; //5S时间到time_A=30;time_B=25; //南北30S,东西25Soperation_type=3; break;case3:RED_A=0;YELLOW_A=1;GREEN_A=1; //南北红灯30S RED_B=1;YELLOW_B=1;GREEN_B=0; //东西绿灯25Sif(time_B!=0)return; //25S时间到time_B=5; //5Soperation_type=4;break;case4:YELLOW_B=0;GREEN_B=1; //东西黄灯5Sif(time_B!=0)return; //5S时间到time_A=25;time_B=30; //东西25S,南北30Soperation_type=1; break; }5总结到此,我们通过对设计要求的理解,对开发板的线路端口的正确连接以及C语言编程,我们对整个实例就完成了,虽然本实例有很多不完善的地方,但是希望通过本实例的设计与制作,使我们对使用单片机开发模拟控制交通灯有个简单的理解与掌握,也希望通过进一步的学习,能设计制作出更优秀的作品来。

单片机课程报告设计--交通信号灯模拟控制系统设计

单片机课程报告设计--交通信号灯模拟控制系统设计

单片机课程报告设计题目:交通信号灯模拟控制系统设计专业:电子信息科学与技术班级:学号:姓名:指导老师:年月日※※※※※※前言※※※※※※本课程设计的目的和意义本课程设计是在学完单片机原理及课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现。

该课程设计的主要任务是通过解决一、两个实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。

*******目录*******一、设计要求二、设计内容三、交通信号灯模拟控制系统设计程序流程图四、交通信号灯模拟控制系统原理图五、交通信号灯模拟控制系统主程序六、运行步骤七、检测与调试八、课程设计体会九、参考文献十、说明一、设计要求:交通信号灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并且用LED数码管显示时间。

用8051做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。

二、设计内容:因为本课程设计是交通灯的控制设计,所以要了解实际交通灯的变化情况和规律。

假设一个十字路口为东西南北走向。

初始状态0为东西红灯,南北红灯。

然后转状态1东西红灯,南北绿灯通车,。

过一段时间转状态2南北绿灯灭,黄灯闪烁几次,东西仍然红灯。

再转状态3,东西绿灯通车,南北红灯。

过一段时间转状态4,东西绿灯灭,闪几次黄灯,南北仍然红灯。

最后循环至状态1。

注意:.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。

当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。

三、交通信号灯模拟控制系统设计程序流程图四、交通信号灯模拟控制系统主程序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,0e0hDB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8ehEND五、交通信号灯模拟控制系统原理图设计的连线图提示:(1) 完整的DVCC实验箱面板(2)硬件电路连接说明六、运行步骤:①8051 P1.0—P1.7、P3.2—P3.5依次接发光二极管L1—L12。

at89c51单片机_交通灯控制系统(含源码及仿真图).

at89c51单片机_交通灯控制系统(含源码及仿真图).

模拟交通灯设计报告题目交通信号灯控制系统团队研发区第二组完成时间2011-11-31贵州民族学院开放实验室`目录一、项目名称 (1)二、选题背景 (1)2.1 课题背景 (1)2.2 交通灯的历史 (1)三、单片机简介 (2)3.1 单片机的发展历程 (2)3.2 单片机的特点: (3)3.3 AT89C52单片机简介 (4)四、设计基本要求和步骤 (5)4.1 基本要求 (5)4.2 设计步骤 (6)五、硬件和软件设计 (6)5.1 硬件电路图 (6)5.2 程序流程图 (8)主程序 (8)运行过程 (9)LED显示程序 (10)T0中断 (11)INT0中断 (11)5.3 P0、P1口显示状态编码表 (12)5.4 程序源代码 (12)5.5 程序运行效果图 (21)六、心得体会 (22)七、参考文献................................................................................. 错误!未定义书签。

模拟交通灯设计报告一、项目名称十字路口交通信号灯控制系统二、选题背景2.1 课题背景由于我国经济的快速发展从而导致了汽车数量的猛增,大中型城市的城市交通,正面临着严峻的考验,从而导致交通问题日益严重,其主要表现如下:交通事故频发,对人类生命安全造成极大威胁;交通拥堵严重,导致出行时间增加,能源消耗加大;空气污染和噪声污染程度日益加深等。

日常的交通堵塞成为人们司空见惯而又不得不忍受的问题,在这种背景下,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统已经成为当前的主要任务。

随着电子技术的发展,利用单片机技术对交通灯进行智能化管理,已成为目前广泛采用的方法。

2.2 交通灯的历史1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德·哈特设计、制造的灯柱高7米,身上挂着一盏红、绿两色的提灯--煤气交通信号灯,这是城市街道的第一盏信号灯。

51单片机设计交通灯仿真图

51单片机设计交通灯仿真图
}
}
void init1()//第一个状态:主干道、支干道均亮红灯5S
{
uint temp;
temp=6;//变量赋初值
TMOD=0x01;//定时器0工作于方式1
TH0=0x4c;
TL0=0x00;//定时器赋初值
EA=1;//开外部中断
ET0=1;//开定时中断
TR0=1;//开定时器0
while(1)
#define uchar unsigned char//宏定义
#define uint unsigned int//宏定义
sbit RED_ZHU = P1^0;
sbit YELLOW_ZHU = P1^1;
sbit GREEN_ZHU = P1^2;
sbit RED_ZHI = P1^3;
sbit YELLOW_ZHI = P1^4;
delay0(5);
}
void xint0() interrupt 0 //外部中断0,这里用2是INT1的优先级为0
{
LED_ON();
}
void LED_ON()//外部中断0显示子程序
{
RED_ZHI=0;
RED_ZHU=0;
GREEN_ZHI=1;
GREEN_ZHU=1;
YELLOW_ZHI=1;
}
/*********************************************************
500ms延时函数
晶振:11.0592MHz
*********************************************************/
void delay(unsigned char j)

基于AT89C51单片机的交通灯模拟控制系统

基于AT89C51单片机的交通灯模拟控制系统

基于AT89C51单片机的交通灯模拟控制系统一、概述随着城市化进程的加速,交通问题日益凸显,而交通灯作为城市交通的重要组成部分,其控制系统的设计和优化显得尤为重要。

基于AT89C51单片机的交通灯模拟控制系统,作为一种智能化、高效化的解决方案,正逐渐受到广泛关注和应用。

本系统以AT89C51单片机为核心控制器,结合外围电路和编程技术,实现对交通灯信号的有效控制。

AT89C51单片机以其高性能、低功耗、易编程等特点,在交通灯控制领域具有广泛的应用前景。

通过本系统的设计与实现,不仅能够模拟真实交通场景下的交通灯控制过程,还能够为实际交通灯控制系统的优化提供有益的参考和借鉴。

我们简要介绍了基于AT89C51单片机的交通灯模拟控制系统的研究背景和意义,以及系统的主要特点和优势。

本文将详细阐述系统的硬件设计、软件编程、功能实现以及性能优化等方面的内容,以期为相关领域的研究和实践提供有益的参考和启示。

1. 交通灯控制系统的重要性交通灯控制系统在现代城市生活中扮演着至关重要的角色。

随着城市化进程的加速和汽车保有量的不断增加,道路交通压力日益增大,交通拥堵和交通事故频发成为制约城市发展的重要因素。

一个高效、稳定的交通灯控制系统对于提高道路交通效率、减少交通事故发生率具有不可忽视的意义。

交通灯控制系统能够规范交通秩序,确保车辆和行人有序通行。

通过合理设置红绿灯的时长和顺序,交通灯控制系统能够实现对交通流的精确控制,避免车辆和行人之间的冲突,减少交通拥堵和混乱现象的发生。

交通灯控制系统能够提高道路通行能力,缓解交通压力。

通过优化交通灯的控制策略,可以减少车辆在交叉口等待的时间和次数,提高道路的通行效率。

这不仅可以缓解城市交通拥堵问题,还可以减少车辆尾气排放,有利于改善城市环境质量。

交通灯控制系统还具有一定的智能化和自适应能力。

随着物联网、大数据等技术的不断发展,交通灯控制系统可以实现对交通流量的实时监测和预测,并根据实际情况自动调整控制策略,以适应不同时间段和交通状况的需求。

单片机红绿灯程序完整版2篇

单片机红绿灯程序完整版2篇

单片机红绿灯程序完整版2篇第一篇:单片机红绿灯程序完整版(上)单片机红绿灯是一个经典的实验案例,它展示了单片机在控制和管理车辆行驶过程中的应用。

通过编写程序,我们可以模拟交通信号灯的运行,实现流畅和安全的交通流。

在这篇文章中,我将详细介绍单片机红绿灯程序的完整版,并向读者提供逐步实现该程序的指南。

我将从前期准备开始,包括所需材料和工具的概述,然后进入程序编写和单片机烧录的具体步骤。

最后,我将展示运行红绿灯程序的效果。

首先,让我们看一下所需的材料和工具。

为了完成这个项目,你将需要一块单片机开发板(如Arduino Uno),几个LED灯(红色、黄色和绿色),杜邦线,以及一台电脑。

需要特别注意的是,开发板和电脑之间需要通过USB线连接,以便将程序烧录到开发板中。

在准备好所有材料后,我们可以开始编写红绿灯程序。

我们将使用C语言来编写程序,并使用Arduino IDE作为代码编辑器。

首先,打开IDE并创建一个新的工程。

然后在代码编辑窗口中输入相关代码。

程序的主要逻辑是模拟交通信号灯的运行。

我们将交替点亮红、黄、绿三个LED灯,并设置不同的时间间隔来模拟红绿灯的变化。

例如,可以将红灯亮5秒钟,黄灯亮2秒钟,绿灯亮5秒钟。

然后,程序将循环执行这个过程,以实现连续的红绿灯变化。

在编写完程序后,我们需要将其烧录到单片机开发板中。

首先,通过USB线将开发板与电脑连接。

然后,在IDE中选择正确的开发板和端口,并点击“上传”按钮。

IDE将自动编译和烧录程序到开发板中。

一旦程序烧录完成,我们可以断开USB线,将开发板连接到电源,然后观察红绿灯的变化。

通过实验,我们可以看到红绿灯不断地在变化。

这个程序模拟了真实的交通信号灯,给我们提供了一个清晰的视觉指示,用于控制和管理车辆的行驶过程。

这个实验不仅展示了单片机的应用能力,还培养了我们对交通规则和安全的意识。

在红色、黄色和绿色的灯光交替运行中,我们可以思考如何实现更多的功能和效果。

具有倒计时功能的单片机交通灯模拟控制系统设计

具有倒计时功能的单片机交通灯模拟控制系统设计

具有倒计时功能的单片机交通灯模拟控制系统设计作者:吕宁来源:《职业·中旬》2010年第10期马路上十字路口人来车往、有条不紊的秩序靠的是交通信号灯的自动指挥系统来实现的。

交通信号灯控制方式很多,本文采用AT89C51为核心器件来设计交通灯模拟控制系统,应用单片机的定时器/计数器、中断和动态显示技术,实现了正常情况下东西与南北两个方向轮流点亮红、绿信号灯,每次持续时间60s,中间有2s的黄灯过渡。

特殊情况时,可以拨动东西或南北方向的紧急开关,使该方向紧急切换为绿灯,以利于特种车辆通过。

当车辆稀少时,还可以通过拨动开关,使东西、南北两个方向的交通灯均置为闪烁黄灯,闪烁周期为2s。

另外还设计了用LED数码管动态显示已点亮灯的剩余时间的功能。

系统设计方框图如图1所示。

图中红绿灯由3种颜色的发光二极管代替,单片机P1口输出的控制信号,驱动发光二极管亮灭。

LED数码管(共阴)由两片具有译码与驱动双重功能的芯片CD4511驱动,CD4511的输入信号为来自P2口的4位BCD码。

紧急切换和车辆稀少时可采用查询P0.0、P0.1和P0.2(连接拨动开关)是否为低电平的方法确定。

程序设计思路:使用单片机内部定时器1产生中断,每50ms中断一次。

在中断服务程序中,对中断的次数进行计数,50ms 计数20次,就是1s。

交通灯的控制信号由P2.7~P2.5和P2.3~P2.1口输出,其中,P2.7低电平对应南、北红灯,P2.6低电平对应南北绿灯,P2.5低电平对应南北黄灯,P2.3低电平对应东西红灯,P2.2低电平对应东西绿灯,P2.1低电平对应东西黄灯。

为了显示亮灯的剩余秒数,进行倒计时显示,程序中安排了十进制转换程序。

剩余秒数的BCD码由P1口输出,通过2个CD4511驱动2个LED,实现动态显示。

紧急切换拨动开关1和2分别接在P0.0、P0.1上,为东西、南北两个方向的紧急切换拨动开关,某方向拨动开关按下(接地)时,该方向紧急切换为绿灯,以利于特种车辆通过。

单片机模拟交通灯综合实训

单片机模拟交通灯综合实训

C51单片机模拟交通灯综合实训背景:设计模拟交通灯,东南西北各有红绿黄3只led灯。

工作状态:初始化全部灯亮,并闪烁三次;东西绿灯亮20s(南北红灯亮),黄灯亮并闪烁3次(每次0.5s),然后红灯亮,切换到南北绿灯亮,时间与点亮规律同东西方向,循环重复上述过程。

任务:1设计流程说明。

2系统框图设计。

3硬件电路设计。

4 软件设计及调试。

P1、简要说明设计流程及各环节的工作内容和目的。

1、确定任务:对任务进行分析,确定功能、性能要求,制定总体方案2、总体设计:系统功能分配,确定软件硬件功能关系,拟定调试方案3、硬件设计:绘制硬件原理图,绘制印制板图,配置元器件,硬件功能分配4、软件设计:确定算法与数据结构,程序模块划分,绘制程序流程图,程序编写与仿真调试5、系统调试:包括硬件调试和软件调试P2、根据系统需求,设计并画出系统功能模块框图,说明产品总体工作原理和各模块的功能。

交通灯模块工作原理是通过单片机控制实现灯的亮灭功能是实现东西南北的红、黄、绿灯的亮灭情况数码管模块工作原理是从单片机I/O口接出,实现数字显示功能是实现计时20S倒数和3秒倒数P3、根据系统框图,设计单片机应用系统和接口驱动电路图,标注电路中元器件型号和参数。

电路图用到得元器件如下表设计单片机应用系统和接口驱动电路图P4、编写软件代码,仿真、下载运行验证,实现要求的功能1.软件代码#include <reg51.h>unsigned char second=20, time0 =100 ,time1=50,county=6;unsigned char seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsigned char con[]={0xfd,0xfe};sbit NB_G=P1^0;sbit NB_Y=P1^1;sbit NB_R=P1^2;sbit DX_G=P1^3;sbit DX_Y=P1^4;sbit DX_R=P1^5;bit DXT=1;unsigned int i,j;void showtime();main(){for(j=6;j>=1;j--){P0=~P0;for(i=50000;i>0;i--);}P0=0xFF;for(i=50000;i>0;i--);NB_R=0;DX_G=0;showtime();TMOD=0X11;TL0=-10000;TH0=-10000>>8; TL1=-10000;TH1=-10000>>8;EA=1;ET0=1;ET1=1;TR0=1;while(1);}void isr_time0() interrupt 1{ showtime();TL0=-10000;TH0=-10000>>8; time0--; showtime(); if (time0==0){time0=100;second--;if (second==0){TR0=0; TR1=1;second=3;showtime();if (DXT){ DX_G=1;DX_Y=0; }else { NB_G=1;NB_Y=0; } }}}void isr_time1()interrupt 3{TL1=-10000;TH1=-10000>>8;time1--;showtime();if(time1==0){time1=50;if (county%2!= 0){second--;}county--;if(county){if(DXT) DX_Y=~DX_Y;else NB_Y=~NB_Y; }else{county=6;if (DXT){ DX_Y=1;DX_R=0; NB_R=1;NB_G=0;} else{DX_R=1 ;DX_G=0; NB_Y=1;NB_R=0;}TR1=0;TR0=1;DXT=~DXT;second=20;showtime();}}}void showtime(){unsigned int i,j;unsigned char time[2];time[0]=second/10;time[1]=second%10;P2=con[0];P0=seg[time[0]];for(j=100;j>0;j--);P2=con[1];P0=seg[time[1]];}2.仿真电路如图所示M1、分析并列出软件设计中需用到的单片机特殊功能寄存器(SFR)及其功能设置。

基于51单片机的交通信号灯模拟控制系统

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

模拟交通灯实验报告

模拟交通灯实验报告

单片机综合实验报告题目: 模拟真实交通灯班级:姓名:学号:指导老师:时间:一、实验内容:用8255芯片的PA、PB口低四位做输出口,控制十二个发光二极管燃灭,模拟十字路口交通灯管理,并利用数码显示器进行倒计时显示(采用单片机内部定时器定时)。

通过外部中断能使交通灯暂停运行,并点亮4个红灯。

通过16*16点阵中的图形模拟控制行人过马路的人形“走”、“停”指示灯,可参考下图所示。

选做增加项目:在交通灯开始之前可通过开关对红绿灯亮灭时间的初始值进行增、减设定或者交通灯暂停时加上乐曲报警。

二、实验电路及功能说明电路:74LS138译码器电路8255与发光二极管连线图数码LED显示器电路(不需接线)16×16LED点阵显示电要求:交通灯亮灭过程同“8255控制交通灯实验”,倒计时显示只需两位数(0~99),用定时器定时进行倒计时,每秒钟减1。

在16*16点阵中显示的人形“走”、“停”标志可自定义,由专门软件可转换为相应显示代码,不需自己推理。

三、实验程序流程图:主程序:子程序:详细程序请参考程序清单。

四、实验结果分析对程序进行仿真可以观察到:点阵中交替显示如图(a)、(b)所示图像,且交替显示时间为30秒。

当显示图像为(a)时,表示可以容行人通过,限时30秒;当显示图像为(b)时,表示不容行人通过,也限时30秒。

如此,在十字路口各置一对点阵即可模拟实景。

五、心得体会通过此次实验,对单片机的I/O口的使用的条件有了更深的理解,对单片机的各个管脚功能的理解也加深了,以及在常用编程设计思路技巧的掌握方面也向前迈了一大步。

这次的课程设计让我把单片机的理论知识应用在实践中,实现了理论和实践相结合,从中更懂得理论是实践的基础,实践有助于检验理论的正确性的道理,对我以后参加工作或者继续学习深造将产生巨大的帮助和影响。

六、程序清单#include <reg51.h>#include <absacc.h>#define uchar unsigned char#define uint unsigned int#define ROW1 XBYTE[0XFFE3]#define ROW2 XBYTE[0XFFE0]#define COL1 XBYTE[0XFFE2]#define COL2 XBYTE[0XFFE1]#define PA XBYTE[0xffd8]#define PB XBYTE[0xffd9]#define CTL XBYTE[0xffdb]#define SEG XBYTE[0xffdc]#define BIT XBYTE[0xffdd]#define allredend 10#define ewredend 2*ewstarter+allredend#define snyellowend ewredend+10#define snredend snyellowend+2*snstarter#define ewyellowend snredend+10sbit KEY1=P1^0;sbit KEY2=P1^1;sbit KEY3=P1^2;sbit P32=P3^2;uchar tongBu;uchar code ewTable[]={0xb6,0x75,0xf3,0xf7,0xae,0x9e,0xbe};uchar code nsTable[]={0xd,0xd,0xc,0xd,0xb,0x7,0xf};//uchar tempa,tempb;int time=1,cnt,change,intflag,inttime=1,ewstarter=10,snstarter=15;int tempseg;uchar key1=0;uchar buffer[]={0,0,0,0,0,0};uchar table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};/*-- 行走--*//*-- 宽度x高度=16x16 --*/uchar code led1[]={0x01,0x80,0x02,0x40,0x02,0x40,0x01,0x80,0x03,0xC0,0x06,0x60,0x0A,0x50,0x0A,0x5 0,0x0B,0xD0,0x12,0x48,0x02,0x40,0x02,0x60,0x04,0x20,0x04,0x20,0x08,0x20,0x18,0x60};/*-- 停止--*//*-- 宽度x高度=16x16 --*/uchar code led2[]={0x01,0x80,0x02,0x40,0x02,0x40,0x01,0x80,0x07,0xE0,0x7E,0x7E,0x02,0x40,0x02,0x40 ,0x03,0xC0,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x03,0xC0};/*-- 文字: 高--*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --uchar code led2[]={0x02,0x00,0x01,0x00,0xFF,0xFE,0x00,0x00,0x0F,0xE0,0x08,0x20,0x0F,0xE0,0x00,0x0 0,0x7F,0xFC,0x40,0x04,0x4F,0xE4,0x48,0x24,0x48,0x24,0x4F,0xE4,0x40,0x14,0x40,0x08};*/ void delayshort(){char n;for(n=50;n>0;n--);}uchar changeleft(uchar led){uchar temp;temp=0;temp|=(led<<7)&0x80;temp|=(led<<5)&0x40;temp|=(led<<3)&0x20;temp|=(led<<1)&0x10;temp|=(led>>1)&0x08;temp|=(led>>3)&0x04;temp|=(led>>5)&0x02;temp|=(led>>7)&0x01;return(temp);}void led16_16display(uchar *table,uchar length){uchar i=length/2,scan1=0x1,scan2=0x1;for(i=0;i<16;i++){if(i<8){ROW1=0;ROW2=0;COL1=scan1;COL2=0;ROW1=changeleft(table[2*i]);ROW2=table[2*i+1];COL1=scan1;COL2=0;delayshort();scan1<<=1;}else{ROW1=0;ROW2=0;COL1=0;COL2=scan2;ROW1=changeleft(table[2*i]);ROW2=table[2*i+1];COL1=0;COL2=scan2;delayshort();scan2<<=1;}}}void changeseg(){if(key1==0){buffer[3]=10;buffer[0]=10;buffer[5]=tempseg%10;buffer[4]=tempseg/10;buffer[2]=tempseg%10;buffer[1]=tempseg/10;}else if(key1==1){buffer[3]=10;buffer[0]=10;buffer[5]=ewstarter%10;buffer[4]=ewstarter/10;buffer[2]=ewstarter%10;buffer[1]=ewstarter/10;}else{buffer[3]=10;buffer[0]=10;buffer[5]=snstarter%10;buffer[4]=snstarter/10;buffer[2]=snstarter%10;buffer[1]=snstarter/10;}}void timer1()interrupt 3{static uchar temp=0x20,cnt1;TH1=(65536-1000)/256;TL1=(65536-1000)%256;changeseg();SEG=0xff;SEG=table[buffer[cnt1]];cnt1++;if(cnt1==6)cnt1=0;BIT=temp;temp>>=1;if(temp==0)temp=0x20;}void int_0()interrupt 0{delayshort();if(P32==0){PA=0xB6;PB=0xd;PT0=1;PT1=1;intflag=1;while(inttime<=20)led16_16display(led2,32);inttime=1;intflag=0;PT0=0;PT1=0;PA=ewTable[tongBu];PB=nsTable[tongBu];}}void timer0()interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;cnt++;if(cnt==5){cnt=0;if(intflag==1){inttime++;tempseg=10-inttime/2;}else{time++;if(time<=allredend){tongBu=0;PA=ewTable[tongBu];PB=nsTable[tongBu];tempseg=allredend/2-(time+1)/2;}else if((time>allredend)&&(time<=ewredend)){tongBu=1;PA=ewTable[tongBu];PB=nsTable[tongBu];tempseg=ewstarter+allredend/2-(time+1)/2;}else if((time>ewredend)&&(time<=snyellowend)){if(change==0){tongBu=2;PA=ewTable[tongBu];PB=nsTable[tongBu];change=1;}else{tongBu=3;PA=ewTable[tongBu];PB=nsTable[tongBu];change=0;}tempseg=ewstarter+allredend/2+5-(time+1)/2;}else if((time>snyellowend)&&(time<=snredend)){tongBu=4;PA=ewTable[tongBu];PB=nsTable[tongBu];tempseg=ewstarter+allredend/2+5+snstarter-(time+1)/2;}else if((time>snredend)&&(time<=ewyellowend)){if(change==0){tongBu=5;PA=ewTable[tongBu];PB=nsTable[tongBu];change=1;}else{tongBu=6;PA=ewTable[tongBu];PB=nsTable[tongBu];change=0;}tempseg=ewstarter+10+allredend/2+snstarter-(time+1)/2;}else{tongBu=1;time=allredend+1;PA=ewTable[tongBu];PB=nsTable[tongBu];tempseg=ewstarter+allredend/2-(time+1)/2;}}}}void key(){uchar keynum;keynum=~(P1|0XF8);switch(keynum){case 0x1:while(KEY1==0)led16_16display(led2,32);key1++;TR0=0;if(key1==3){key1=0;TR0=1;}break;case 0x2:while(KEY2==0)led16_16display(led2,32);if(key1==1){ewstarter++;if(ewstarter==100)ewstarter=0;}if(key1==2){snstarter++;if(snstarter==100)snstarter=0;}break;case 0x4:while(KEY3==0)led16_16display(led2,32);if(key1==1){ewstarter--;if(ewstarter==-1)ewstarter=99;}if(key1==2){snstarter--;if(snstarter==-1)snstarter=99;}break;default:break;}}void main(){IE=0x8b;IT0=1;TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-1000)/256;TL1=(65536-1000)%256;CTL=0x80;tongBu=0;TR1=1;PA=ewTable[tongBu];PB=nsTable[tongBu];tempseg=allredend/2-(time+1)/2;TR0=1;while(1){key();if(intflag==0){if(key1==0){if(time<=allredend)led16_16display(led2,32);else if(time>allredend&&time<=snyellowend)led16_16display(led1,32);else if(time>snyellowend&&time<=ewyellowend)led16_16display(led2,32);}elseled16_16display(led2,32);}}}。

51单片机控制的交通灯系统实验报告

51单片机控制的交通灯系统实验报告

系统实验报告——基于51单片机的交通灯设计专业:XX学生姓名:xx XX学号:***********指导教师:wwwwwwwwwww2000年x月x日目录1 设计任务和性能指标 (1)1.1设计任务 (1)1.2性能指标 (1)2 设计方案 (2)2.1任务分析 (2)2.2方案设计 (2)3 系统硬件设计 (3)3.1单片机的最小系统 (3)3.2电源电路 (4)3.3数码管显示时间电路设计 (4)3.4信号灯控制电路设计 (5)4 系统软件设计 (5)4.1主程序设计 (5)5 调试及性能分析 (6)5.1调试分析 (6)5.1.1 软件调试 (6)5.1.2 硬件调试 (6)5.1.3 系统功能调试 (6)6 心得体会 (6)参考文献 (8)附录1 系统原理图 (9)附录3 程序清单 (10)附录3元器件清单 (14)1 设计任务和性能指标1.1设计任务利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。

用红、绿、黄发光二极管作信号灯。

如图上图所示。

设东西向为主干道,南北为支干道。

1.2性能指标1. 状态1:仅亮灯,数码管不工作。

按下键4,红/黄/绿三色灯交替亮:红—〉(20秒)黄(闪烁)—〉(5秒)绿—〉(20秒) 黄(闪烁)—〉(5秒)红2. 状态2:灯和数码管相结合,模拟十字路口的交通灯 在以上功能的基础上数码管倒计时显示时间。

南东2 设计方案2.1任务分析模拟交通灯控制器就是使用单片机来控制一些LED 和数码管,模拟真实交通灯的功能。

红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字路口的车辆及行人交通,计时牌显示路口通行转换剩余时间等2.2方案设计根据设计的要求可知,系统的硬件原理框图如下图所示。

单片机键盘LED 显示三色指示灯系统硬件框图单片机选用A T89S52,它与8051系列单片机全兼容,但其内部带有4KB 的FLASH R OM ,设计时无需外接程序存储器,为设计和调试带来极大的方便。

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

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

单片机交通灯综合实验报告河北工业大学实验报告学院:专业:班级:姓名:学号:实验课程:单片机应用系统设计开发入门指导教师:实验名称:交通信号灯控制实验实验时间:2021 年5月23 日2021 年5 月23 日一实验要求1实验目的及实验内容要求实验目的:1.熟悉外部中断源的扩展方法。

2.初步掌握单片机综合应用系统设计。

3.掌握用Proteus 调试汇编源程序的方法。

实验内容要求:用发光二极管模拟交通信号灯,用逻辑电平开关模拟控制开关,设计一个交通信号灯控制系统。

设计要求如下:(1) A 车道与B 车道交叉组成十字路口,A 是主道,B 是支道;正常情况下,A、B 两车道轮流放行。

具体放行时间和要求如下:(2) A 车道放行50s,其中绿灯常亮44s,绿灯闪烁3s(用于警告),黄灯常亮3s(用于警告)。

(3) B 车道放行30s,其中绿灯常亮24s,绿灯闪烁3s(用于警告),黄灯常亮3s(用于警告)。

在交通繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯的状态,以缓解交通拥挤状况。

控制要求如下:(1) 在B 车道放行期间,若A 车道有车而B 车道无车,按下开关使A 车道放行15s。

(2) 在A 车道放行期间,若B 车道有车而A 车道无车,按下开关使B 车道放行15s。

(3) 有紧急车辆通过时,按下开关使A、B 车道均为红灯,禁行15s。

2实验设备或运行软件平台完成本实验需要使用到单片机仿真软件Proteus8,该软件是英国Lab Center Electronics 公司出版的EDA 工具软件,是目前比较好的仿真单片机及外围器件的工具。

从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB 设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台。

在编译方面,它也支持IAR、Keil、MATLAB 等多种编译器。

其具有的基本功能特点为:1.原理布图。

单片机 交通灯实验

单片机 交通灯实验
东西黄灯、南北红灯,P0=11111101=0xfd,P1=01110101=0x75;
P0.3
P0.2
P0.1
P0.0
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
北G
北Y
北R
西G
西Y
西R
南G
南Y
南R
东G
东Y
东R
1
1
0
1
0
1
1
1
0
1
0
1
设置一个秒计数单元SEC每秒+1,设置两个控制值变量a,b。
采用断处理按键的方式,其优点是按键后处理程序能立即响应和处理,响应的速度也是最快最及时的。本实验可以不采用中断处理按键,在主程序中利用查询键盘的方式判断按键然后进行相对应的程序处理即可。
六、总结
通过本次实验,我已熟练掌握C51对单片机的外部中断及定时器中断的编程,对编译错误的查错能力也有了提升。在处理交通灯闪烁问题时,由于当时定义的ESC变量是整型的,不能为小数,于是想到把ESC代表的秒数翻倍,两个单位作为一秒但是感觉不太好,后来把ESC变量改为了float型,采用强制转换成int型然后和原值相减的方式((int)ESC-ESC!=0)达到了目的。
图42K1键按下保持南北通行状态
3、K2键按下保持东西通行状态,暂停原来的交通灯状态(如图4-3)
图43K2键按下保持东西通行状态
4、K3键按下恢复原来的交通灯状态并正常运行(如图4-4)
图44K3键按下恢复原来的交通灯状态并正常运行
5、K4键按下恢复正常交通灯运行并复位(如图4-5)
图45K4键按下恢复正常交通灯运行并复位

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

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

基于单片机的智能交通灯控制系统设计一、本文概述随着城市化进程的加快,交通问题日益严重,如何有效地管理交通流、提高交通效率并保障行车安全成为了亟待解决的问题。

智能交通灯控制系统作为一种重要的交通管理手段,具有实时响应、灵活调控、节能环保等优点,受到了广泛关注。

本文旨在设计一种基于单片机的智能交通灯控制系统,旨在通过智能化、自动化的方式优化交通管理,提升城市交通的效率和安全性。

本文将首先介绍交通灯控制系统的发展历程和现状,分析现有系统存在的问题和不足。

随后,将详细介绍基于单片机的智能交通灯控制系统的设计思路、系统架构和功能模块。

在设计过程中,我们将重点关注系统的实时性、稳定性和可扩展性,并采用先进的控制算法和通信技术,确保系统能够在复杂的交通环境下稳定运行。

本文还将对系统实现过程中的关键技术和难点进行深入探讨,如单片机的选型、传感器数据的采集与处理、通信协议的制定等。

我们将结合实际案例,展示该智能交通灯控制系统在实际应用中的效果,并对其进行性能评估和优化。

本文将对基于单片机的智能交通灯控制系统的前景进行展望,探讨未来可能的改进方向和应用领域。

通过本文的研究和设计,我们期望能够为智能交通领域的发展做出一定的贡献,为城市交通管理提供更为高效、智能的解决方案。

二、单片机基础知识单片机,全称单片微型计算机(Single-Chip Microcomputer),是一种集成电路芯片,它采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O 口和中断系统、定时器/计数器等功能集成到一块硅片上,构成一个小而完善的微型计算机系统。

单片机具有体积小、功耗低、控制功能强、扩展灵活、可靠性高、性价比高、易于产品化等优点,因此在智能交通灯控制系统中得到了广泛应用。

单片机的主要特点包括:集成度高:单片机将CPU、内存、I/O接口等集成在一块芯片上,大大提高了系统的集成度,降低了系统的复杂性和成本。

Proteus实现单片机交通灯_图+程序(调试可用)

Proteus实现单片机交通灯_图+程序(调试可用)

这是我初学单片机,并用Proreus软件自己绘制自己编写程序实现的一个交通红绿灯的系统。

这是硬件连接图和程序,以便今后复习。

左上右下中控制部分,上面一个开关按下时,南北方向绿灯,东西方向红灯黄灯闪烁3秒绿灯设置15秒,红灯设置18秒。

绿灯走完15秒后黄灯闪烁3秒变为红灯,红灯走完18秒后变成绿灯,以此循环。

源程序:COUNT EQU 30H ;T0中断计数SNLEDDA TA EQU 31H ;存储南北数码管显示的数据SNCOLORFLAG EQU 32H ;=1时南北绿灯亮,=2时南北黄灯亮,=3时南北红灯亮SNLEDDA TAINIT EQU 33H ;存储南北各颜色灯的初始时间EWLEDDA TA EQU 34H ;存储东西数码管显示的数据EWCOLORFLAG EQU 35H ;=1时东西红灯亮,=2时东西绿灯亮,=3时东西黄灯亮EWLEDDA TAINIT EQU 36H ;存储东西各颜色灯的初始时间org 0000hlJMP MAINorg 0003hljmp exint0ORG 000BHlJMP INTT0org 0013hljmp exint1org 0100h;主函数**************************************MAIN:CALL INITSTART:MOV A,COUNTCJNE A,#200,NOT1S ;没到1秒跳转MOV COUNT,#00 ;1秒时间到DEC SNLEDDATAMOV A,SNLEDDATAJNZ checkewleddataMOV SNLEDDATA,SNLEDDA TAINITINC SNCOLORFLAGMOV A,SNCOLORFLAGCJNE A,#04,checkewleddataMOV SNCOLORFLAG,#01checkewleddata:DEC EWLEDDATAMOV A,EWLEDDA TAJNZ timenotoverMOV EWLEDDATA,EWLEDDATAINITINC EWCOLORFLAGMOV A,EWCOLORFLAGCJNE A,#04,timenotoverMOV EWCOLORFLAG,#01TIMENOTOVER:NOT1S:call ewcolorcheckCALL snCOLORCHECKCALL DISPLAYJMP START;*********************************************;初始化函数***********************************INIT: MOV SP,#60HMOV TMOD,#01HMOV TH0,#0eCHMOV TL0,#078HMOV COUNT,#00HMOV SNLEDDATAINIT,#15MOV EWLEDDATAINIT,#18MOV SNLEDDATA,SNLEDDA TAINITMOV EWLEDDATA,EWLEDDATAINITSETB TR0 ;开定时器0SETB ET0 ;允许定时器0中断setb ex0 ;允许外部0中断setb ex1 ;允许外部1中断setb it0 ;外部中断0下降沿触发setb it1 ;外部中断1下降沿触发SETB EA ;开总中断MOV P2,#0feHMOV SNCOLORFLAG,#01RET;*****************************************;外部中断0*********************************** exint0:push accpush pswmov a,p0push accmov a,p1push accmov a,p2push accclr ex1clr p2.0clr p2.1clr p2.2clr p2.3setb p1.4clr p1.1clr p1.2setb p1.5clr p1.3clr p1.4jnb p3.2,$setb ex1pop accmov p2,apop accmov p1,apop accmov p0,apop pswpop acc;外部中断1*********************************** exint1:push accpush pswmov a,p0push accmov a,p1push accmov a,p2push accclr ex0clr p2.0clr p2.1clr p2.2clr p2.3setb p1.4setb p1.2clr p1.1clr p1.0setb p1.3clr p1.5clr p1.4jnb p3.3,$setb ex0pop accmov p2,apop accmov p1,apop accmov p0,apop pswpop acc;T0中断函数*******************************INTT0:PUSH ACCPUSH PSWMOV TH0,#0ecH ;#0echMOV TL0,#078H ;#078hMOV A,P2RL ACJNE A,#11101111B,NOT5MOV A,#0feH ;p2.0=0,南北数码管十位亮,p2.1=0,南北数码管个位亮NOT5: MOV P2,A ;p2.2=0,东西数码管十位亮,p2.3=0,东西数码管个位亮INC COUNTPOP PSWPOP ACCRETI;****************************************;南北红绿黄灯控制**************************snCOLORCHECK:PUSH ACCPUSH BPUSH PSWsngreen:MOV A,SNCOLORFLAGCJNE A,#01,snYELLOWMOV SNLEDDATAINIT,#03 ;设置南北黄灯闪烁时间CLR P1.2CLR P1.1SETB P1.0 ;南北绿灯亮JMP snCOLORCHECKOUTsnYELLOW:;MOV A,SNCOLORFLAGCJNE A,#02,snredMOV SNLEDDATAINIT,#18 ;设置南北红灯亮时间MOV A,COUNTDIV ABMOV A,BCJNE A,#00H,snNOTFLASHCPL P1.1 ;南北黄灯闪烁CLR P1.0CLR P1.2snNOTFLASH:JMP snCOLORCHECKOUTsnred:MOV SNLEDDATAINIT,#15 ;设置南北绿灯亮时间CLR P1.0CLR P1.1SETB P1.2 ;南北红灯亮snCOLORCHECKOUT:POP PSWPOP BPOP ACCRET;******************************************************;东西红绿黄灯控制**************************************ewCOLORCHECK:PUSH ACCPUSH BPUSH PSWewred:MOV A,ewCOLORFLAGCJNE A,#01,ewyellowMOV ewLEDDATAINIT,#15 ;设置东西绿灯亮时间CLR P1.3CLR P1.4SETB P1.5 ;东西红灯亮JMP ewCOLORCHECKOUT;MOV A,ewCOLORFLAGCJNE A,#03,ewgreenMOV ewLEDDATAINIT,#18 ;设置东西红灯亮时间MOV A,COUNTMOV B,#100DIV ABMOV A,BCJNE A,#00H,ewNOTFLASHCPL P1.4 ;东西黄灯闪烁CLR P1.3CLR P1.5ewNOTFLASH:JMP ewCOLORCHECKOUTewgreen:MOV ewLEDDATAINIT,#03 ;设置东西黄灯闪烁时间CLR P1.4CLR P1.5SETB P1.3 ;东西绿灯亮ewCOLORCHECKOUT:POP PSWPOP BPOP ACCRET;************************************************************;数码管显示**************************************************DISPLAY:PUSH ACCPUSH PSWPUSH BMOV A,SNLEDDATAMOV B,#10DIV ABMOV A,EWLEDDA TAMOV B,#10DIV ABMOV R2,BMOV R3,AMOV DPTR,#TABLEMOV A,P2 DISPSNH:CJNE A,#0feH,DISPSNLMOV A,R1MOVC A,@A+DPTRMOV P0,AJMP DISPOUT DISPSNL:CJNE A,#0fdH,DISPEWHMOV A,R0MOVC A,@A+DPTRMOV P0,AJMP DISPOUT DISPEWH:CJNE A,#0fbH,DISPEWLMOV A,R3MOVC A,@A+DPTRMOV P0,AJMP DISPOUT DISPEWL:CJNE A,#0f7H,DISPOUTMOV A,R2MOVC A,@A+DPTRMOV P0,A DISPOUT:POP BRET;************************************************** TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH; 0 1 2 3 4 5 6 7 8 9END。

十字路口交通灯单片机控制系统设计与仿真

十字路口交通灯单片机控制系统设计与仿真

摘要交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。

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

本系统采用单片机AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。

本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。

软件上采用Keil编程,主要编写了主程序,BCD数码管显示程序,中断程序延时程序等。

经过整机调试,实现了对十字路口交通灯的模拟关键词:交通灯;AT89C51单片机;多功能控制;仿真ABSTRACTTraffic in People's Daily life has important position, as people of social activities have become increasingly frequent, this is reflected the incisively and vividly. The emergence of the traffic lights, traffic is effectively controlled, for facilitating traffic flow, improve road capacity, reduce traffic accidents have obvious effect. The system USES AT89C51 single chip for center device to designing traffic light controller, system practical, simple operation and expandability. This design is simulated by single chip microcomputer intersection traffic lights to the various states display, and the countdown time.Software is used on Keil programming, mainly to write the main program, LED digital tube show program, interruption program delay procedures, etc. After the commissioning, realize the intersection of traffic simulation.Key words:Traffic lights; A T89C51 Microcontroller; AT89C51 single-chip microcomputer; Multi-function control目录摘要........................................................................................................... 错误!未定义书签。

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级中断结构,全双工串行口,片内晶振及时钟电路。

基于单片机自动控制交通灯的模拟设计----毕业论文答辩ppt

基于单片机自动控制交通灯的模拟设计----毕业论文答辩ppt
淄博职业学院毕业论文
基于单片机的交通灯设计 Design of the Traffic Lights Based on
目录
第一章 第二章 第三章 第四章 第五章
绪论 基于单片机的交通灯设计 设计心得 致谢 结束语
第一章
1 交通灯研究的背景和意义
绪论
交通是城市经济活动的命脉,对城市经济发展、人民生活水平的提高 交通是城市经济活动的命脉,对城市经济发展、 起着十分重要的作用。城市交通问题是困扰城市发展、 起着十分重要的作用。城市交通问题是困扰城市发展、制约城市经济 建设的重要因素。 建设的重要因素。 城市道路增长的有限与车辆增加的无限这一对矛盾是导致城市交通拥 挤的根本原因。城市街道网络上的交通容量的不断增加, 挤的根本原因。城市街道网络上的交通容量的不断增加,表明车辆对 道路容量的要求仍然很高,短期内还不可能改变。 道路容量的要求仍然很高,短期内还不可能改变。自从开始使用计算 机控制系统后,不管在控制硬件里取得什么样的实际进展, 机控制系统后,不管在控制硬件里取得什么样的实际进展,交通控制 领域的控制逻辑方面始终没能取得重大突破。 领域的控制逻辑方面始终没能取得重大突破。 可以肯定的说, 可以肯定的说,对于减轻交通拥塞及其副作用一特别是对于大的交通 网络而言,仍然缺乏一种真正的交通响应控制策略。。因此, 。。因此 网络而言,仍然缺乏一种真正的交通响应控制策略。。因此,研究基 于智能集成的城市交通信号控制系统具有相当的学术价值和实用价值 把智能控制引入到城市交通控制系统中, 。把智能控制引入到城市交通控制系统中,未来的城市交通控制系统 才能适应城市交通的发展。从长远来看该研究具有巨大的现实意义。 才能适应城市交通的发展。从长远来看该研究具有巨大的程中,要特别感谢我的导师李霞的指导与督 促,同时感谢她的谅解与包容。没有李霞老师的帮助也就没有 今天的这篇论文。求学历程是艰苦的,但又是快乐的。感谢我 的班主任徐万里老师,谢谢他在这三年中为我们全班所做的一 切,他不求回报,无私奉献的精神很让我感动,再次向他表示 由衷的感谢。在这三年的学期中结识的各位生活和学习上的挚 友让我得到了人生最大的一笔财富。在此,也对他们表示衷心 感谢。 谢谢我的父母,没有他们辛勤的付出也就没有我的今天,在 这一刻,将最崇高的敬意献给你们! 本文参考了大量的文献资料,在此,向各学术界的前辈们致 敬!

单片机交通灯实验报告

单片机交通灯实验报告

单片机交通灯实验报告本实验旨在通过单片机控制,实现交通信号灯的模拟,以达到以下目的:通过模拟交通信号灯的控制,理解交通信号灯的工作原理和优化交通流量的方法。

本实验采用单片机作为主控芯片,通过编程设定各个交通信号灯的亮灭时间,以模拟交通信号灯的工作。

实验中采用LED灯模拟交通信号灯,红灯表示停止,绿灯表示通行,黄灯表示警告。

通过单片机的控制,可以实现交通信号灯的顺序切换,从而达到控制交通的目的。

准备材料:单片机、LED灯(红、绿、黄三个)、电阻、杜邦线、面包板、电脑及编程软件。

搭建电路:将LED灯分别连接到单片机的P1端口,并添加电阻以保护LED灯。

使用杜邦线将单片机与电脑连接,以便进行编程。

编程:使用C语言编写程序,控制交通信号灯的亮灭时间和顺序。

程序中应包含初始化函数、主函数和延时函数等基本元素。

其中,初始化函数用于设置LED灯的初始状态;主函数用于循环读取按键输入并控制LED灯的亮灭;延时函数用于实现交通信号灯的顺序切换。

调试:将程序下载到单片机中,观察交通信号灯的实际运行情况。

如有问题,可通过调整程序中的参数或重新编写程序进行优化。

数据记录与分析:记录每次实验的数据,包括LED灯的亮灭时间、交通流量等。

分析实验数据,得出结论并提出改进意见。

在本次实验中,我们成功地实现了交通信号灯的模拟。

通过调整程序中的参数,我们观察到交通信号灯的亮灭时间和顺序对交通流量的影响。

在早高峰时段,我们将红灯时间设置为较长时间,以减缓交通压力;在平峰时段,我们将绿灯时间设置为较长时间,以加快车辆通行速度。

同时,我们也注意到黄灯设置的重要性,它能够提醒司机注意交通安全。

在实验过程中,我们还发现了一些问题,例如在某些情况下,车辆在绿灯亮起时未能及时启动,导致交通拥堵。

针对这一问题,我们建议在程序中增加一个启动提醒功能,以提醒司机及时启动车辆。

通过本次实验,我们深入了解了单片机的原理和应用,并成功地模拟了交通信号灯的工作过程。

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