交通信号灯设计报告
交通灯控制电路的设计(实验报告)

交通信号灯控制电路的设计一、设计任务与要求1、任务用红、黄、绿三色发光二极管作为信号灯,设计一个甲乙两条交叉道路上的车辆交替运行,且通行时间都为25s的十字路口交通信号灯,并且由绿灯变为红灯时,黄灯先亮5s,黄灯亮时每秒钟闪亮一次。
2、要求画出电路的组成框图,用中、小规模集成电路进行设计与实现用EAD软件对设计的部分逻辑电路进行仿真,并打印出仿真波形图。
对设计的电路进行组装与调试,最后给出完整的电路图,并写出设计性实验报告。
二、设计原理和系统框图(一)设计原理1、分析系统的逻辑功能,画出其框图交通信号灯控制系统的原理框图如图2所示。
它主要由控制器、定时器、译码器和秒脉冲信号发生器等部分组成。
秒脉冲信号发生器是该系统中定时器和该系统中定时器和控制器的标准时钟信号源,译码器输出两组信号灯的控制信号,经驱动电路后驱动信号灯工作,控制器是系统的主要部分,由它控制定时器和译码器的工作。
图1 交通灯控制电路设计框图图中:Tl:表示甲车道或乙车道绿灯亮的时间间隔为25s,即车辆正常通行的时间间隔。
定时时间到,Tl=1,否则,Tl=0.Ty:表示黄灯亮的时间间隔为5s。
定时时间到,Ty=1,否则,Ty=0。
St:表示定时器到了规定的时间后,由控制器发出状态转换信号。
它一方面控制定时器开始下一个工作状态的定时,另一方面控制着交通信号灯状态转换。
2、画出交通信号灯控制器ASM图(1)甲车道绿灯亮,乙车道红灯亮。
表示甲车道上的车辆允许通行,乙车道禁止通行。
绿灯亮足规定的时间隔TL时控制器发出状态信号ST转到下一工作状态。
(2)乙车道黄灯亮乙车道红灯亮。
表示甲车道上未过停车线的车辆停止通行已过停车线的车辆继续通行乙车道禁止通行。
黄灯亮足规定时间间隔TY时控制器发出状态转换信号ST转到下一工作状态。
(3)甲车道红灯亮乙车道绿灯亮。
表示甲车道禁止通行乙车道上的车辆允许通行绿灯亮足规定的时间间隔TL时 控制器发出状态转换信号ST转到下一工作状态。
交通灯课程设计实训报告

一、引言随着城市化进程的加快,交通拥堵问题日益严重,交通信号灯作为城市交通管理的重要手段,对于提高道路通行效率、保障交通安全具有重要作用。
为了让学生更好地了解交通信号灯的工作原理和设计方法,我们开展了交通灯课程设计实训。
本文将对实训过程进行总结,并对设计成果进行分析。
二、实训目的1. 熟悉交通信号灯的工作原理和设计方法;2. 学会使用单片机进行交通信号灯控制;3. 提高学生的实践能力和创新能力;4. 培养学生的团队协作精神。
三、实训内容1. 交通信号灯基本原理交通信号灯主要包括红灯、黄灯和绿灯三种颜色,分别代表禁止通行、注意和允许通行。
交通信号灯的基本工作原理是:通过单片机控制信号灯的亮灭,实现交通信号的变换。
2. 单片机交通信号灯控制系统设计本实训采用AT89C52单片机作为核心控制单元,设计了一个十字路口交通信号灯控制系统。
系统主要包括以下部分:(1)硬件电路设计:包括单片机、信号灯模块、按键模块、数码管显示模块等。
(2)软件设计:主要包括初始化程序、主程序和中断服务程序。
3. 交通信号灯控制策略(1)基本控制策略:南北方向绿灯亮时,东西方向红灯亮;南北方向黄灯亮时,东西方向红灯亮;南北方向红灯亮时,东西方向绿灯亮;南北方向红灯亮时,东西方向黄灯亮。
(2)时间控制策略:绿灯亮20秒,黄灯亮4秒,红灯亮24秒。
(3)手动/自动控制策略:通过按键切换手动/自动模式,实现交通信号灯的手动控制。
四、实训过程1. 硬件电路搭建:按照设计要求,将单片机、信号灯模块、按键模块、数码管显示模块等硬件电路连接起来。
2. 软件编程:使用C语言编写单片机程序,实现交通信号灯的控制。
3. 系统调试:对系统进行调试,确保交通信号灯工作正常。
4. 优化设计:根据实际情况,对系统进行优化设计,提高系统性能。
五、实训成果1. 成功设计并实现了十字路口交通信号灯控制系统。
2. 系统具有手动/自动控制功能,可满足实际交通需求。
交通信号灯课程设计报告

交通信号灯课程设计报告交通信号灯自动控制系统*******目录*******一、设计内容二、设计要求三、交通信号灯模拟控制系统设计程序流程图四、交通信号灯模拟控制系统原理图五、交通信号灯模拟控制系统主程序六、运行步骤七、检测与调试八、课程设计体会九、参考文献十、说明一、设计内容:设计并制作一个如上图所示的十字路口交通信号自动控制模拟指示系统。
设该路口由A、B两条通行干道相交而成,四个路口各设一组红、黄、绿三色信号灯,用两位数码管作倒计时显示。
二、设计要求:1.系统基本功能要求(1)以秒为计时单位,两位数码管以十进制递减计数形式作定时显示,在递减计数回零瞬间完成换灯操作。
(2)通过键盘红、黄、绿三色信号灯所亮时间在0~99秒内任意设定。
(3)十字路口的通行起始状态可人工设定,运行中可通过人工干预使十字路口通行状况固定于任何一种工作模式。
2.发挥部分(1)具有时间控制功能,交通信号灯工作时间:05:00~23:00;其余时间两个干道上的黄色信号灯闪烁显示;(2)绿色信号灯倒计时最后3秒和黄色信号灯显示时闪烁显示。
(闪烁频率:1Hz);(3)其它功能。
三、交通信号灯模拟控制系统设计程序流程图1、主程序流程图:开始东西和南北黄灯亮,进入倒计时,打开数码管显示东西红灯亮,南北绿灯亮,进入倒计时,打开数码管显示图5 2、中断服务程序流程图:按键按下按键按下转去中断服务子程序转去中断服务子程序设置个位计数值设置十位计数值中断返回中断返回确定按键按下转去中断服务子程序分别进行三组灯的组合状态的时间倒计数并进入此三种状态的一下死循环中断返回图8 3、交通灯工作换灯流程:否是是否四、交通信号灯模拟控制系统原理图1.直流电源图:南北红灯亮,R0=#0东西和南北南北绿灯亮,R0=#02.交通信号灯模拟控制系统原理图:五、交通信号灯模拟控制系统主程序#include <reg51.h>#include<stdio.h>#define uint unsigned int#define ucher unsigned charucher codetable[]={0x40,0x40,0xf9,0x24,0x30,0x19,0x12,0x02,0x78,0x00 ,0x10};sbit k0=P3^0;sbit k1=P3^1;sbit k2=P3^2;sbit k3=P3^3;sbit k4=P3^4;sbit k5=P3^5;sbit k6=P3^6;sbit k7=P3^7;ucher tt,tt1,tt2,sec,min,shi; //初始定义void time1();void delay(uint z);void main (){int i,j,num1,num2,l,n,m,h1,h2,h3;ucher aa,bb,dd,ee;EA=1;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256; //中断定义ET0=1;EX0=1;EX1=1;num1=1;num2=1;P3=0xef;aa=0xb6;bb=0x96;dd=0x6b;ee=0x69;shi=8;P0=0xf2;if(k0==1)delay(5);if(k0==1)while(k0){if(k7==0){delay(5);if(k7==0)num1++;while(!k7);if(num1==11) //交通灯初值及工作状态设置num1=1;}if(k6==0){delay(5);if(k6==0)num2++;while(!k6);if(num2==11)num2=1;}P1=table[num1];P2=table[num2];if(k1==0){delay(5);if(k1==0)aa=0x6b;bb=0x69;dd=0xb6;ee=0x96;}}}}else{num1=4;num2=1;}m=num1;n=num2;if(k0==0) //调节当前时间(即对时){delay(5);if(k0==0){while(!k0){if(k7==0){delay(5);if(k7==0)shi++;if(shi==24)shi=0; //调时h1=shi;h2=h1/10+1;h3=h1%10+1;P2=table[h3];P1=table[h2];while(!k7);}}if(k6==0){delay(5);if(k6==0){min++;if(min==60)min=0;h1=min;h2=h1/10+1;h3=h1%10+1; //调分P2=table[h3];P1=table[h2];while(!k6);}}if(k1==0){delay(5);if(k1==0){sec++;if(sec==60)sec=0;h1=sec;h2=h1/10+1;h3=h1%10+1; //调秒P2=table[h3];P1=table[h2];while(!k1);}}}}}TR0=1; //开启定时器中断if(num1==1)while(1){j=n;i=m; //工作循环程序for(j=n;j>0;j--)if(j<5){l=j;break;}P0=aa;P1=table[i];P2=table[j];delay(1000);if((shi>22)||(shi<5)) time1();}if(j==l)for(j=l;j>0;j--){P1=table[i];P2=table[j];P0=bb;delay(500);P0=aa;delay(500);}for(j=n;j>0;j--){if(j<5){l=j;break;}P0=dd;if((shi>22)||(shi<5)) time1();P1=table[i];P2=table[j];delay(1000);}if(j==l)for(j=l;j>0;j--){P1=table[i];P2=table[j];P0=ee;delay(500);P0=dd;delay(500);}}while(1){num2=n;num1=m;for(j=n;j>0;j--){i=m;P0=aa;P1=table[i];P2=table[j];delay(1000);if((shi>22)||(shi<5)) time1();}num1--;for(i=num1;i>0;i--) {for(j=10;j>0;j--){if((shi>22)||(shi<5)) time1();if(i==1)if(j<5)break;P0=aa;P1=table[i];P2=table[j];delay(1000);}if(i==1)for(j=4;j>0;j--){P1=table[i];P2=table[j];P0=bb;delay(500);P0=aa;delay(500);}}num1=m;for(j=n;j>0;j--){i=m;P0=dd;P1=table[i];P2=table[j];delay(1000);if((shi>22)||(shi<5)) time1();}num1--;for(i=num1;i>0;i--) {for(j=10;j>0;j--){if((shi>22)||(shi<5)) time1();if(i==1)if(j<5)break;P0=dd;P1=table[i];P2=table[j];delay(1000);}if(i==1)for(j=4;j>0;j--){P1=table[i];P2=table[j];P0=ee;delay(500);P0=dd;delay(500);}}}}void delay(uint z){uint t1,y; // 延时函数for(t1=z;t1>0;t1--)for(y=125;y>0;y--);}void time1(){for(;(shi>22)||(shi<5);){P0=0xdd;delay(500);P0=0xff;delay(500); //23点到5点的工作函数P1=table[1];P2=table[1];}}void enter0() interrupt 0{delay(5);if(k2==0){ //外部中断0 函数P1=0x00;P2=0x00;P0=0xb6;}}void enter1() interrupt 2{delay(5);if(k3==0){ //外部中断1 函数P1=0x40;P2=0x40;P0=0x6b;}}void enter2() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt++;if(tt==20){sec++;tt=0; //外部中断0 函数}if(sec==60){min++;sec=0;}if(min==60){min=0;shi++;}if(shi==24)shi=0;}六、运行步骤①给单片机(交通灯系统)上电(或者已上电按复位键)。
交通信号灯控制系统设计实验报告

交通信号灯控制系统设计实验报告设计目的:本设计旨在创建一个交通信号灯控制系统,该系统可以掌控红、绿、黄三种交通信号灯的工作,使其形成一种规律的交替、循环、节奏,使车辆和行人得以安全通行。
设计原理:在实际的交通灯系统中,通过交通灯控制器控制交通灯的工作。
一般采用计时器或微电脑控制器来完成,其中微电脑控制器可以方便地集成多种控制模式,并且灵活易于升级。
在本设计中,我们采用了基于Atmega16微控制器的交通信号灯控制系统。
该系统通过定时器中断、串口通信等技术来实现。
由于控制的是三个信号灯的交替,流程如下:绿灯亮:红灯和黄灯熄灭绿灯由亮到灭的时间为10秒黄灯亮:红灯和绿灯熄灭黄灯由亮到灭的时间为3秒红灯亮:绿灯和黄灯熄灭红灯由亮到灭的时间为7秒重复以上过程硬件设计:整个系统硬件设计包含ATmega16控制器、射频芯片、电源模块和4个灯组件。
ATmega16控制器采用DIP封装,作为主要的控制模块。
由于需要串口通信和遥控器控制,因此添加了RF24L01射频芯片。
该射频芯片可以很方便地实现无线通信和小型无线网络。
4个灯组件采用红、绿、黄三色LED灯与对应300Ω电阻并连。
电源模块采用5V稳压电源芯片和电容滤波,确保整个系统稳定可靠。
软件设计:通过ATmega16控制器来实现交通信号灯控制系统的功能。
控制器开始执行时进行初始化,然后进入主循环。
在主循环中,首先进行红灯亮的操作,接着在计时时间到达后执行黄灯亮的过程,然后执行绿灯亮的过程,再到计时时间到的时候执行红灯亮的过程。
每个灯持续时间的计时采用了定时器的方式实现,在亮灯过程中,每秒钟进行一次计数,到达相应的计数值后,切换到下一步灯的操作。
在RF24L01射频芯片的支持下,可以使用无线遥控器来对交通信号灯的控制进行远程控制。
在系统初始化完成后,通过串口通信对RF24L01进行初始化,然后进入控制循环。
在这个控制循环中,接收到遥控器的指令后,进行相应的控制操作,如开、关灯等。
交通信号灯控制电路的设计报告

交通信号灯控制电路的设计一、设计任务及主要技术指标和要求。
要求:1、主干道经常通行;2、支干道有车才通行;3、主、支干道均有车时,两者交替通行,并要求主干道每次至少放行30秒,支干道每次至多放行20秒;4、每次绿灯变红灯时,要求黄灯先亮5秒钟(此时原红灯不变)。
电路方框图本设计重点要求是设计出主控制器、计时器。
传感器信号可以用逻辑开关代替,信号灯可以用发光二极管代替,“秒”信号脉冲可以用1Hz脉冲信号代替。
二、各单元电路的详细设计计算,元器件选择,电路图等。
(一)、计时器用一个74LS290异步十进制计数器,我们选择只输入计数脉冲CP2,使其成为一个五进制计数器,再连接一个74LS161型的四位同步二进制计数器。
满足支路与主路的红、黄、绿灯的接通时间。
1、74LS290(1)、其逻辑符号如图所示。
U274LS290DQA 9QB 5QD8QC 4INB 11R911R923R0112INA 10R02132、74LS161 (1)、其逻辑符号如图所示。
U174L S 161D QA 14QB 13QC 12QD 11RCO15A 3B 4C 5D 6ENP 7ENT 10~LOAD 9~CLR 1CLK2(二)、主控制器:通过74LS161的同步二进制计数器的输出和其他与非门的组合来完成控制电路。
1、逻辑符号图U174L S 161DQA 14QB 13QC 12QD 11RCO15A 3B 4C 5D 6ENP 7ENT 10~LOAD 9~CLR 1CLK22、74LS161状态表(三)、传感器模拟主支道路有无车辆的控制电路。
用74LS290的异步置数端来实现,当其是支路的绿灯时间段则将支路转变为黄灯,当其为其它时间段时则直接变为主路绿灯,支路红灯。
其实现过程如下所示:(记传感器提供信号为E,低电平有效)3、(四)、译码驱动电路:(五)、主支道路信号灯:(六)、时钟信号:二、整体电路的工作原理说明:。
交通灯报告

课程设计设计题目:十字路口自动红绿灯指挥系统2014年7月9日目录一、设计内容 (1)(一)设计题目 (1)(二)主要指标及要求 (1)二、设计方案 (1)三、方案选择及电路工作原理 (1)(一)工作原理分析 (1)(二)单元模块设计及分析 (1)1.时钟信号脉冲发生器设计 (2)2.倒计时计数器设计 (3)3.状态计数器设计 (6)4.数据选择器设计 (8)5.延时电路设计 (10)6.红绿黄灯的设计 (11)四、仿真及结果 (12)(一)仿真过程分析 (12)(二)仿真结果 (13)五、总电路图 (13)六、元器件清单(表) (14)七、实验结果 (14)八、心得体会 (14)九、参考文献 (15)一、设计内容(一)设计题目十字路口自动红绿灯指挥系统。
设计一个十字路口交通信号灯控制器,用于控制交通主干道的交通灯和计时器,自动指挥干道车辆和行人轮流通行,保证车辆和行人安全通行。
(二)主要指标及要求1.自动完成绿-黄-红-绿-……工作循环;2.每种信号灯亮的时间不等,如:绿灯亮20秒-黄灯亮5秒-红灯亮15秒,如此循环;3.用倒计时的方法,数字显示当前信号的剩余时间,提醒行人和司机;4.(*) 信号灯的时间分别可调,以适应不同路口,不同路段交通流量的需求。
二、设计方案三、方案选择及电路工作原理(一)工作原理分析红绿黄灯工作分三个阶段,即有三个状态T0、T1、T2。
在状态T0停留15秒,此间红灯亮,然后转至状态T1。
在状态T1停留20秒,此间绿灯亮。
20秒后转至T2,在状态T2下,黄灯亮5秒,5秒后返回状态T0。
交通灯控制系统由时钟信号脉冲发生器、倒计时计数器、状态计数器、数据选择器以及延时电路组成。
状态计数器可以输出3个状态信号:T0、T1和T2,编码分别为00、01、10,由QBQA 表示。
三个状态信号分别控制红绿黄三种颜色的灯。
三个状态信号通过控制数据选择器,控制每个状态的不同计数。
倒计时计数器的DCBA 与数据选择器输出相连,A B C D Q Q Q Q 与数码管相连,实现倒计时显示功能。
交通信号灯的实验报告

中南林业科技大学涉外学院实习报告名称:交通灯控制器姓名:***学号:********专业班级:电子信息工程一班时间:2011-10-5地点:林科大涉外学院目录任务和性能指标 (2)实现(设计)方案 (3)系统设计 (4)调试及性能分析 (6)性能分析: (7)相关知识概述 (7)心得体会 (7)参考文献 (8)任务和性能指标本电路设计一个交通灯控制器,需要达到的目的如下:一个周期64秒,平均分配,前32秒红灯1与绿灯2亮,后32秒绿灯1与红灯2亮。
在红灯1与绿灯2亮的期间的后8秒黄灯1、2闪烁,且在这期间红灯1与绿灯2同时亮。
闪烁频率为2。
在绿灯1与红灯2亮的期间的后8秒黄灯1、2闪烁,且在这期间绿灯1与红灯2同时亮。
闪烁频率为2。
实现(设计)方案为了达到目的,需要设计一个控制电路,这就需要一个脉冲信号发生器,一个二进制加法计数器,一个十进制减法计数器,红灯与绿灯以及黄灯是否亮由二进制加法计数器的输出状态来决定。
因此,设计一个组合逻辑电路,它的输入信号就是二进制加法计数器的输出信号,它的输出就是发光二级管的控制信号。
因此,需要一个组合逻辑电路,六个发光二级管(两个红色发光二极管、两个绿色发光二极管、两个黄色发光二极管)电路,555脉冲振荡器,4024计数器,74LS193计数器,数码管显示电路。
其结构图如下:本电路中的组合逻辑电路的输入信号为二进制计数器的输出信号,输出要控制六个发光二级管不同时刻的状态。
红灯1与绿灯2的状态相同,红灯2与绿灯1的状态相同,两个黄灯状态相同。
所以只要输出三个信号即可,分别为L1、L2、L3。
组合逻辑电路的输出信号L1、L2、L3与电路的输入信号Q7、Q6、Q5、Q4、Q3、Q2、Q1的关系用如下真值表表示:从以上可知:L1=Q7’,需要低电平有效时,L1’=Q7’’L2=Q7,需要低电平有效时,L2’=Q7’L3=Q6Q5=(Q6Q5)’’考虑到黄灯需要闪烁,可以让L3信号和Q1信号(频率为2HZ的脉冲)加到一个二输入的与非门的两个输入端,输出信号为L4,L4=(L3*Q1)’当L3为0时,L4=1当L3为1时,L4=Q1’可见,需要L4低电平有效,这样,L3为0时,黄灯不亮;L3为1时,黄灯闪烁。
交通信号灯课程设计报告

交通信号灯课程设计报告一、引言交通信号灯是城市交通管理中重要的组成部分,它通过颜色信号指示道路的交通流量,维护交通秩序,确保交通的安全和高效。
本报告旨在探讨交通信号灯的设计原则、信号灯的种类、信号灯控制算法以及未来交通信号灯发展的趋势。
二、交通信号灯的设计原则交通信号灯的设计应遵循以下原则: 1. 可视性:信号灯要能够清晰地展示给司机和行人,避免出现盲点或被遮挡的情况。
2. 易识别性:信号灯的颜色和形状应该简明易懂,让用户可以迅速理解所传达的信息。
3. 一致性:不同的信号灯应该保持一致的设计风格,避免混淆和误解。
4. 合理性:信号灯的时长和配时需要根据道路流量和交通状况进行合理分配,既可以确保交通的畅通,又避免不必要的等待时间。
三、交通信号灯的种类交通信号灯的种类主要包括三色交通灯、直行箭头交通灯、左转箭头交通灯和倒计时交通灯等。
3.1 三色交通灯三色交通灯包括红灯、黄灯和绿灯,分别表示停车、准备起步和通行。
3.2 直行箭头交通灯直行箭头交通灯用于控制直行车辆的通行,可以与三色交通灯配合使用,增加交通效率。
3.3 左转箭头交通灯左转箭头交通灯用于控制左转车辆的通行,可以与三色交通灯或直行箭头交通灯配合使用。
3.4 倒计时交通灯倒计时交通灯通过数字显示剩余时间,告知驾驶员和行人可以通过的时间,增加通行的透明度和可预测性。
四、交通信号灯的控制算法交通信号灯的控制算法主要包括固定时间控制、感应控制和自适应控制。
4.1 固定时间控制固定时间控制是最简单的控制算法,根据交通流量和道路特点预先设定信号灯的配时方案,按照固定的时间间隔改变信号状态。
然而,这种算法无法根据实际交通情况进行调整,容易造成拥堵或资源浪费。
4.2 感应控制感应控制利用传感器监测交通流量和环境状况,并根据实时数据调整信号灯的配时。
这种算法可以根据实际情况进行动态调整,提高通行效率,但对于复杂的交叉口和高峰时段的交通管理仍然存在一定的局限性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机应用技术报告题目:交通灯应用系统班级:10电子信息小组:第九组目录1.摘要2.51单片机的功能与简介3.交通灯方案4.主程序流程图5.原理图及说明6.调试过程及流程图7.总结摘要:分析了现代城市交通控制与管理问题的现状,结合城乡交通的实际情况阐述了交通灯控制系统的工作原理,给出了一种简单实用的城市交通灯控制系统的硬件电路设计方案。
1、51单片机的功能与简介51单片机是对目前所有兼容Intel 8031指令系统的单片机的统称。
该系列单片机的始祖是Intel的8031单片机,后来随着Flash ROM 技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL 公司的AT89系列,它广泛应用于工业测控系统之中。
目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。
51单片机是基础入门的一个单片机,还是应用最广泛的一种,对初学者来说是比较适合的学习单片机的。
2、交通信号灯方案:(1)、南北直行绿灯亮,东西直行红灯亮,延时。
(2)、南北直行绿灯闪烁几次转黄灯,南北左转(固定绿灯)亮,南北直行红灯亮,东西直行仍然红灯亮,延时。
(3)、南北左转灯闪几次转黄灯,东西直行绿灯亮,南北直行仍然红灯,延时。
(4)、东西直行绿灯闪烁几次转黄灯,东西左转灯亮,东西直行红灯亮,南北直行仍然红灯,延时。
(5)、循环至1,继续。
(这里左转时绿灯亮,不转时灭)(6)、倒计时部分。
(南北、东西方向时间独立)3、引脚分配及元件清单5、主程序流程图:(1)定时0中断流程图:WW BIT 00H;1s标志位MM EQU 40H;秒值计数器,用于累加秒值AA EQU 41H ;中断次数,用于统计定时中断的次数BB EQU 5EH ;定义5eh,5fh为显示缓冲区XIAOYING EQU 10;消隐吗在字形表的第十位ORG 0000H; 程序从0000h开始JMP MAIN;ORG 000BH;定时器t0中断人口LJMP TIME0ORG 0003H;外部中断入口LJMP INT_0ORG 030H;主程序从这里开始MAIN: MOV SP,#70HMOV MM,#0;秒计数器MOV MM,#30;MOV BB,#3;立即数送显示缓冲区十位MOV BB+1,#0;立即数送个位缓冲区ACALL DISP;调显示子程序ACALL TIME0_INIT;;调定时器t0初始化子程序CLR WW; 清零秒标志位;/*****--------- 南北车辆直行15S --------L1: mov p1,#07eh ;绿灯共亮10SACALL LOOP3 //调用显示程序MOV R7,MMCJNE R7,#21,L1; 到21S时跳转到绿灯闪烁L2: mov p1,#0feh ; 灭绿灯闪3次ACALL LOOP3JBC WW,L2L3: mov p1,#7eh; 亮ACALL LOOP3JBC WW,L3 WW秒标志位不为1,继续循环MOV R7,MMCJNE R7,#15,L2 ; 南北直行绿灯共亮15S*------------------ 南北左拐10S ----------------------------- */SETB P1.7 ;灭南北绿灯mov p1,#0BEh ;亮南北黄灯,同时亮南北直行红灯ACALL LOOP3JBC WW,L2L16: ACALL LOOP3JBC WW,L16SETB P1.6 ; 灭南北黄灯共亮3SACALL LOOP3JBC WW,L2L4: mov p1,#0ceh ;亮南北左拐灯ACALL LOOP3MOV R7,MMCJNE R7,#6,L4 ;L5: mov p1,#0deh; 南北左拐灯闪3次ACALL LOOP3JBC WW,L2mov p1,#0ceh ;ACALL LOOP3JBC WW,L3MOV R7,MMCJNE R7,#2,L5;SETB P1.4 灭左拐灯L6: CLR P1.6 亮黄灯ACALL LOOP3JBC WW,L6L15 : ACALL LOOP3JBC WW,L15;/*==================东西方向直行15S ===================*********/ L7: mov p1,#0dbh ; // 东西绿灯亮ACALL LOOP3MOV R7,MMCJNE R7,#21,L7;L8: mov p1,#0dfh ;绿灯闪3次ACALL LOOP3JBC WW,L8L9: mov p1,#0dbh;ACALL LOOP3JBC WW,L9MOV R7,MMCJNE R7,#15,L8 ;/*=========== 东西左拐10S ========== */ SETB P1.2 ;灭东西绿灯mov p1,#0DDh ;亮黄灯ACALL LOOP3JBC WW,L8ACALL LOOP3JBC WW,L8L17: SETB P1.1 ;灭黄灯ACALL LOOP3JBC WW,L8L10: mov p1,#0d6h;亮左转灯ACALL LOOP3MOV R7,MMCJNE R7,#6,L10 ;L11: mov p1,#0deh;灭东西左拐灯ACALL LOOP3JBC WW,L11mov p1,#0d6h ;ACALL LOOP3JBC WW,L11MOV R7,MMCJNE R7,#2,L11;SETB P1.3L12: CLR P1.1;亮黄灯ACALL LOOP3JBC WW,L12ACALL LOOP3L18: JBC WW,L18LJMP L1; ------- 中断0服务程序---------INT_0:PUSH ACCPUSH PSWMOV P1,#0FFHMOV P2,#0FFHMOV MM,#11L13: ACALL LOOP3mov p1,#0deh ;东西红灯亮;南北红灯亮MOV A,MMCJNE A,#1,L13MOV P1,#0FFHMOV P2,#0FFHPOP ACC ;恢复现场POP PSWRETI/***============显示子程序=============*/ LOOP3:NOPLOOP: JBC WW,NEXT;WW为1,说明1s到ACALL DISP;不为1调用显示子程序AJMP LOOP;一秒未到继续循环NEXT: lCALL CC ;调用转换子程序RETCC: MOV A,MM;获得秒值,并送到aMOV B,#10DIV ABJZ NEXT1;如果a中的值为0,高位消隐AJMP NEXT2;否则直接送去显示NEXT1:MOV A,#XIAOYING;消隐码送aNEXT2:MOV BB,A;十位送显示BBMOV BB+1,B;个位送BB+1ACALL DISP ;调用显示子程式RET;----- 显示子程序-------DISP: PUSH ACCPUSH PSWMOV A,BB;去十位带显示位MOV DPTR,#TAB;MOVC A,@A+DPTRMOV P0,ACLR P2.1ACALL DELAYSETB P2.1MOV A,BB+1MOV DPTR,#TAB;MOVC A,@A+DPTRMOV P0,ACLR P2.0ACALL DELAYSETB P2.0POP PSWPOP ACCRET; -----------10ms延时子程序----------- DELAY:MOV R5,#50LOOP2:MOV R4,#100LOOP1: DJNZ R4,LOOP1DJNZ R5,LOOP2RET;定时初始化程序TIME0_INIT:MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HCLR IT0;SETB EASETB EX0;开外部中断0SETB PT0 ; 定时器中断优先SETB ET0SETB TR0;启动定时器RET;----------定时50ms中断程序--------TIME0:PUSH ACCPUSH PSWMOV TH0,#3CHMOV TL0,#0B0HINC AAMOV A,AACJNE A,#20,TIME_EXIT;20*50=1MOV AA,#0;SETB WW;DEC MM;MOV A,MM;CJNE A,#0,TIME_EXIT;若秒值不到30,则跳转到TIME_EXITMOV MM,#30;若秒数到30,则秒值计数复位为0TIME_EXIT:POP PSWPOP ACCRETITAB:DB 0C0H,0F9H,0A4H,0B0H,99H;DB 92H,82H,0F8H,80H,90H,0FFHEND4、原理图说明:交通灯的计数的数码管用采用了动态扫描方式来计时,由于单片机的输出负载驱动数码管能力不足,所以用了74LS240作为数码管的驱动芯片,使得数码管能正常工作。
做为交通灯的LED其阳极通过一个1K的电阻限流接VCC,阴极连单片机I/O口。
6、总结在学习单片机这门课程时,老师便围绕着交通灯应用系统来给我们讲课,并布置了交通灯应用系统的设计作为我们的期末测试。
在学习期间我们不断的学习和了解了单片机的应用和编辑其程序。
这也为我们接下来所要做的交通灯应用系统而打下了坚实的基础。
在学期末,我们运用我们所学的知识设计了我们小组自己的交通灯应用系统,在我们分工合作下,虽然第一次检查没有通过,但通过最后几天查看书籍和网络资源及仿真,交通灯应用系统被我们一步步的通过仿真模拟完成了程序的编写,这是我们一起用心完成的作品,虽然不是很完美,但却是我们一起努力携手完成的作品。
经过我们的不懈努力,我们初步实现了交通灯和倒计时的分别测试,最后通过了合成,但还是存在着缺陷。
经过我们小组再研究讨论后,我们又精心的修改了程序,终于成功的实现了交通灯要求的功能。
学习使用单片机只能靠循序渐进的积累,尤其是在编写程序,不可能一蹴而就。
万事开头难、要勇敢迈出第一步知识点用到才学,不用的暂时丢一边。
想把厚厚的一本书看完在做实验,估计是不太可能的。
所以,最好结合实际程序进行仿真,在不断调试中完善和得到成功的喜悦。
这样实验的成功率会大大提高。
在编写程序也不要光看不写,看别人的知识了解别人的编程思路而已,最终的程序还是要靠自己,尤其是在一些细节上要特别注意,对一些程序指令要理解的运用好,刚开始我们可以模仿别人的程序,然后慢慢的学会自己编写,这是一个完全自主学习的过程,需要恒心和信心。