交通信号灯源程序-----中南大学单片机

合集下载

单片机课程设计交通灯程序

单片机课程设计交通灯程序

50603班交通信号灯控制组员:5060307 贾立峰5060315 刘帅5060323 张昊5060331 刘营营交通信号灯控制程序代码:(汇编语言)ORG 0000H ;主程序的入口地址LJMP MAIN ;跳转到主程序的开始处ORG 0100HMAIN: MOV SP, #60HMOV DPTR,#0FF2BH ; 指向8255控制寄存器地址MOV A,#88H ; 设置控制字MOVX @DPTR,A ; 8255初始化,写入控制字MOV DPTR,#0FF28H ; 指向PA口地址MOV A , #0B6H ; A的内容为10110110MOVX@DPTR,A ;从PA 口输出,即PA6、PA3、PA0分别为0,表明与这些端口相联的(发光二极管)红灯点亮INC DPTR ;指向PB口地址MOV A ,#0DH ;A的内容为00001101MOVX @DPTR,A ;从PB口输出,即PB1为0,表明与该端口相联的(发光二极管)红灯点亮,因此4个红灯 MOV R2,#05H ; 延时WAIT0:LCALL DELYDJNZ R2,WAIT0LOOP3: MOV DPTR, #0FF28HMOV A, #75HMOVX @DPTR, A ;P A口为01110101,即与PA7东绿、PA3北红、PA1西绿相联的灯INC DPTRMOV A, #0DH ;A为00001101MOVX @DPTR,A ;P B口的PB1南红灯亮,因此东西绿灯亮,南北红灯亮MOV R2, #32HWAIT1:LCALL DELY ;延时DJNZ R2,WAIT1MOV R7,#05H ;闪烁次数LOOP1: MOV DPTR, #0FF28HMOV A, #0F3HMOVX @DPTR, A ;PA为11110011,即PA3北红、PA2西黄灯亮 INC DPTRMOV A, #0CHMOVX @DPTR,A ;PB为00001100,即PB1南红、PB0东黄亮,因此东西黄灯亮,南北红灯亮LCALL DELY ;延时MOV DPTR, #0FF28HMOV A, #0F7HMOVX @DPTR, A ;PA为11110111,即PA3北红亮INC DPTRMOV A , # 0DHMOVX @DPTR,A ;PB为00001101,即PB1南红亮,因此南北红灯亮,此时黄灯灭LCALL DELY ;延时DJNZ R7,LOOP1 ;闪烁次数未到继续MOV DPTR, #0FF28HMOV A, #0AEHMOVX @DPTR, AINC DPTRMOV A, #0BHMOVX @DPTR,A ;东西红灯亮,南北绿灯亮MOV R2, #32HWAIT2:LCALL DELY ;延时DJNZ R2,WAIT2MOV R7,#05H ;闪烁次数LOOP2: MOV DPTR, #0FF28HMOV A, #9EHMOVX @DPTR, AINC DPTRMOV A, #07HMOVX @DPTR,A ;东西红灯亮,南北黄灯亮 LCALL DELY ;延时MOV DPTR, #0FF28HMOV A, #0BEHMOVX @DPTR, AINC DPTRMOV A, #0FHMOVX @DPTR,A ;东西红灯亮,南北黄灯灭了 LCALL DELY ;延时DJNZ R7,LOOP2 ;闪烁次数未到继续LJMP LOOP3 ;循环ORG 0C30HDELY: MOV R0,#50DEL: MOV R1,#40DEL1: MOV R6,#123NOPDEL2: DJNZ R6,DEL2DJNZ R1,DEL1DJNZ R0,DEL RETEND。

用单片机控制交通灯源程序代码及流程图

用单片机控制交通灯源程序代码及流程图

用单片机控制交通灯传统的交通灯控制电路一般由数字电路构成,电路复杂、体积大、成本高。

采用单片机控制交通灯不但可以解决上述问题,而且还具有时间显示功能,非常方便。

下面介绍一种用单片机控制交通灯的方法。

一、硬件硬件电路如附图。

AT89C2051的P1.7~P1.5和P1.3~P1.1直接驱动红、黄、绿灯,利用单片机的串口和二片74LS164串/并转换移位寄存器实现时间显示,七段数码管为共阴管,硬件电路极为简单。

二、软件交通灯有红、黄、绿三种。

红灯亮,停止通行;绿灯亮,允许通行;黄灯亮,作过渡。

红灯亮60秒,绿灯亮55秒,黄灯亮5秒。

每组灯的亮暗状态以2分钟为周期循环,故程序采用主、子程序方式,循环结构。

另外,为了简化电路,红、黄、绿灯采用低电平点亮。

源程序清单如下:ORG0000HSTART:MOVDRTR,#TABMOVSCON,#00HMOVP1,#6CH;点亮红、绿灯MOVR0,#0;R0清零LEFT:INCR0CJNER0,#55,LP0;R0<55,转LP0MOVP1,#6AH;R0=55,点亮红、黄灯LJMPLP1LP0:CJNER0,#60,LP1;R0<60,转LP1MOVP1,#0C6H;R0=60,点亮绿、红灯LJMPRIGHTLP1:LCALLDBDBLCALLDISPLJMPLEFT;20H为1,转LEFTRIGHT:DECR0CJNER0,#5,LP2;R0>0,转LP2MOVP1,#0A6H;R0=5,点亮黄、红灯LJMPLP3LP2:CJNER0,#0,LP3MOVP1,#6CH;R0=0,点亮红、绿灯LJMPLEFTLP3:LCALLDBDBLCALLDISPLJMPRIGHTDBDB:MOVA,R0MOVB,#10DIVABMOVR1,AMOVR2,BRETDISP:MOVA,R2MOVCA,@A+DPTRMOVSBUF,AJNBTI,$;查TI位CLRTIMOVA,R1MOVCA,@A+DPTRMOVSBUF,AJNBT1,$CLRTILCALLDEALYRETDELAY:MOVR3,#09HK1:MOVR4,#100K2:MOVR5,#250K3:DJNZR5,K3DJNZR4,K2KJNZR3,K1RETTAB:DB3FH,06H,5BHDB4FH,66HDB6DH,7DH,07HDB7FH,6FH三.实验电路及连线四.实验说明1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。

单片机交通灯课程设计报告(含电路图_源程序).

单片机交通灯课程设计报告(含电路图_源程序).

摘要 (2)1.引言 (3)2.总体设计方案 (3)2.1. 设计思路 (3)2.1.1.设计目的 (3)2.1.2.设计任务和内容 (4)2.1.3.方案比较、设计与论证 (4)2.1.4.芯片简介 (6)2.2. 设计方框图 (9)3.设计原理分析 (9)3.1. 交通灯显示时序的理论分析与计算 (9)3.2. 交通灯显示时间的理论分析与计算 (11)3.3. 电路模块 (12)3.3.1.LED数码管显示模块 (12)3.3.2.LED红绿灯显示模块 (14)3.3.3.复位电路 (16)3.3.4.晶振电路 (17)4.结束语 (17)5.参考文献 (17)6.附录 (18)6.1. 附录1:程序清单 (18)6.2. 附录2:电路设计总图 (23)6.3附录3:实物图............................................................................ 错误!未定义书签。

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

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

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。

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

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

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

本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、复位电路等几大部分组成。

系统除基本的交通灯功能外,还具有倒计时等功能,较好的模拟实现了十字路口可能出现的状况。

基于80C51单片机的交通灯C语言源程序

基于80C51单片机的交通灯C语言源程序

#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit SH_CP=P2^0;sbit DS=P2^1;sbit ST_CP=P2^2;uchar temp;uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; void NB_tong();void DX_tong();void NBY_show();void DXY_show();sbit RED_A=P1^0;//A代表NB南北sbit YELLOW_A=P1^1;sbit GREEN_A=P1^2;sbit RED_B=P1^3;//B代表DX东西sbit YELLOW_B=P1^4;sbit GREEN_B=P1^5;sbit K1=P3^0;sbit K2=P3^1;sbit K3=P3^3;sbit SPK=P3^7;//蜂鸣器uchar time=0,Count=0;//--------------------------------//延时//--------------------------------void DelayMS(uint x){uchar t;while(x--) for(t=0;t<120;t++);}//---------------------------------------//74HC595的驱动//---------------------------------------void In_595(){uchar i;for(i=0;i<8;i++){temp<<=1;DS=CY;SH_CP=1;_nop_();_nop_();SH_CP=0;}void Out_595(){ST_CP=0;_nop_();ST_CP=1;_nop_();ST_CP=0;}//---------------------------------------//T0定时器定时及各种情况下灯亮的调用//---------------------------------------void Timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;Count++;time=time%60;if(Count==20){time++;Count=0;}if(time<=30) NB_tong();if((time>30)&&(time<=35)) NBY_show();if((time>35)&&(time<=55)) DX_tong();if((time>55)&&(time<=60)) DXY_show();}//------------------------------------//按键处理//------------------------------------void EX_INT0() interrupt 0{if(K1==0) //K1按下强制NB南北通行,倒计时黑屏暂停;断开继续以前动作。

单片机红绿灯程序完整版

单片机红绿灯程序完整版

通灯设计交通灯设计方案:1:实现东西路----南北路红绿灯的交通指示。

2:东西路灯变化----红绿黄一南北路灯变化----绿黄红> T3:红灯延时时间---25S绿灯延时时间---20S黄灯延时时间一3S4:数码管显示:红灯---前20S不显示,只在最后5S开始倒计时显示。

绿灯---前15S不显示,只在最后5S开始倒计时显示。

黄灯---3S倒计时显示(若东西路为黄灯,南北路为红灯,那么南北绿的数码管也显示3S)。

5:交通应急事件处理:利用中断分别实现东西路---南北路的交通应急事件处理。

6:延时程序的使用:用循环延时和定时器计时的方法。

注:P1.0---北路绿灯,P1.1--北路黄灯,P1.2---北路红灯cP1.3--东路绿灯,P1.4---东路黄灯,P1.5----东路红灯。

【交通灯流程图】开始延时20秒5秒倒计时结束其他灯不变南北路绿灯亮,红,黄灯灭东西路红灯亮,绿,黄灯灭南北路绿灯数码管开始倒计时5秒南北路绿灯灭,黄灯亮且数码管开始倒计时3秒东西路红灯——数码管开始倒计时3秒3秒倒计时结束延时25秒5秒倒计时结束东西路绿灯亮,黄灯,红灯灭南北路红灯亮,黄灯,绿灯灭东西路数码管开始倒计时5秒其他灯不变东西路绿灯灭,黄灯亮且数码管开始倒计时3秒南北路红灯一一数码管开始倒计时3秒3秒倒计时结束程序如下:ORG 0000HLJMP LOOPORG 000BHLJMP WZDOORG 0013HLJMP WZD1ORG 0030HLOOP:MOV R3,#5MOV R4,#5MOV R2,#20l=LIfc=ER;定时器0中断,实现交通应急事件;下载可编辑亮 oMOV SP,#70H MOV IE,#85HMOV TMOD,#01H ;置T0为工作方式1MOV TH0,#3CH;置T0定时初值50msMOV TL0,#0B0HCLRTF0SETBTR0;启动定时器T0SETB P1.1 ;东---红灯亮,北---绿灯亮SETB P1.2CLR P1.0SETB P1.3SETB P1.4CLR P1.5ACALL DEL30SACALL Y ELLOW1 ; 北---绿灯转黄灯,东---红灯亮 ACALL DEL3S ;延时后北---黄灯火SETB P1.0;东:红灯火,绿灯亮,北:黄灯火,红灯CLR P1.2SETB P1.4SETB P1.5ACALL DEL55S ; 北---红灯不变,东---绿灯转黄灯ACALL Y ELLOW2ACALL DEL3SSJMP LOOPYELLOW1: ; 北---绿灯转黄灯,东---红灯不变SETB P1.0SETB P1.2CLR P1.1SETB P1.3CLR P1.5SETB P1.4RETYELLOW2: ; 东---绿灯转黄灯,北---红灯不变SETB P1.0SETB P1.1CLR P1.2SETB P1.3CLR P1.4RETWZD0: ;实现南北路交通应急事件CLR P1.0 ;(南北路保持畅通,东西路停止通行)SETB P1.1SETB P1.2SETB P1.3SETB P1.4CLR P1.5JNB P3.2,WZD0RETIWZD1: ;实现东西路交通应急事件CLR P1.3 ;(东西路保持畅通,南北路停止通行)CLR P1.2SETB P1.1SETB P1.0SETB P1.4SETB P1.5JNB P3.3,WZD1RETIDEL30S: J红绿灯延时DEL25S:JNB TF0QEL25S ;查询50ms到否CLR TFOMOV TH0,#3CH ;恢复T0定时初值50msMOV TL0,#0B0HDJNZ R2,DEL25S ;判断1s到否?未到继续状态MOV R2,#20 ;置50ms计数初值DJNZ R4,DEL25S ;状态1维持25s取数延时DEL5S:5MOV R2,#6DEL5:MOV A,R2ACALLST ;取数MOV P0,A ;实现数码管显示ACALL DEL1S ;每隔1S减1DJNZ R2,DEL5RETDEL3S:MOV R2,#4HDEL3:MOV A,R2ACALL ST ;取数MOV P2,AMOV P0,A ;数码管显示ACALL DEL1SDJNZ R2,DEL3RETDEL55S:ACALL DEL20SMOV R2,#6 ;倒计时5S DEL55:ACALL DEL1SMOV A,R2ACALLSTMOV P2,A ;数码管显示DJNZ R2QEL55RETDEL1S: ;1S 延时子程序MOV R5,#0BHST1:MOV R6,#0DAH下载可编辑ST2:MOV R7,#0CFHDJNZ R7,$DJNZ R6,ST2DJNZ R5,ST1RETDEL20S: ;20S延时子程序MOV R5,#0BH;#0DCHST3:MOV R6,#0DAHST4:MOV R7,#0CFHDJNZ R7,$DJNZ R6,ST4DJNZ R5,ST3RETST: ;取数MOV DPTR,#TABMOVC A,@A+DPTRRETTAB:DB 0FFH,0FFH,0F9H,0A4H,0B0H,99H,92HEnd.专业.整理.。

交通信号灯C语言源程序

交通信号灯C语言源程序
{
disp_ew = set_value[1];
EW_LED_GREEN=1;
EW_LED_YELLOW =0;
sign[1]=1;
sign[0]=0;
}
if(disp_ew == 0 && sign[1] ==1)
{
disp_ew = set_value[2] + set_value[3];
disp_sn = set_value[2];
disp_ew = set_value[0];
P1 = 0xf3;
falsh_sign = 0;
ET1 = 1;
TR1 = 1;
}
}
void scan_key()
{
while(P3^0 && P3^2 && P3^3);
delay_ms(15);
if(!P3^0)
{
set_process();
}
if(!P3^2)
if(set_value[2] < 0)
{
set_value[2] = set_value[2] + 100;
}
disp_sn = set_value[2];
}
if(key == 4)
{
set_value[3]--;
if(set_value[3] < 0)
{
set_value[3] = 9;
}
disp_sn = set_value[3];
}
delay_ms(1200);
}
}ቤተ መጻሕፍቲ ባይዱ
else
{
while(!P3^3);
if(key == 1)

51单片机用C语言实现交通灯_红绿灯_源程序

51单片机用C语言实现交通灯_红绿灯_源程序

c o d eu n s i g n e dc h a rt a b [ ] = { 0 x 3 f , 0 x 0 6 , 0 x 5 b , 0 x 4 f , 0 x 6 6 , 0 x 6 d , 0 x 7 d , 0 x 0 7 , 0 x 7 f , 0 x 6 f } ; / / 共阴数码管 0 9 u n s i g n e dc h a rD i s _ S h i w e i ; / / 定义十位 u n s i g n e dc h a rD i s _ G e w e i ;/ / 定 g n e di n tc n t ) { w h i l e ( c n t ) ; } m a i n ( ) { T M O D| = 0 x 0 1 ; / / 定时器设置 1 0 m si n1 2 Mc r y s t a l 定时器 0 ,工作方式 1 ,1 6 位定时器 T H 0 = 0 x d 8 ; / / 6 5 5 3 5 1 0 0 0 0 = 5 5 5 3 5 = D 8 F 0 (十六进制) T L 0 = 0 x f 0 ; I E =0 x 8 2 ;/ / 中断控制,E A = 1 开总中断,E T 0 = 1 :定时器 0 中断允许 T R 0 = 1 ; / / 开定时器 0 中断 P 1 = 0 x f c ; / / 红灯亮,根据红黄绿接灯的顺序。 r e d= 1 ; w h i l e ( 1 ) { P 0 = D i s _ S h i w e i ; / / 显示十位,这里实现用 8 位数码管,即左 1 位 P 2 = 0 ; d e l a y ( 3 0 0 ) ; / / 短暂延时 P 0 = D i s _ G e w e i ;/ / 显示个位,左数,2 位 P 2 = 1 ;

单片机控制交通灯

单片机控制交通灯

单片机控制交通灯要实现单片机控制交通灯,首先需要了解交通灯的工作原理和控制方式。

一般的交通灯控制有三种状态:红灯、黄灯和绿灯。

红灯表示停车,黄灯表示准备停车或准备起步,绿灯表示行驶。

下面是一个基本的单片机控制交通灯的程序示例:```c#include<reg52.h>//定义LED端口sbit redLight = P1^0;sbit yellowLight = P1^1; sbit greenLight = P1^2;//定义延时时间#define delayTime 1000void delay(unsigned int ms){ unsigned int i,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);}void init(){//清零redLight = 0;yellowLight = 0;greenLight = 0;}void mn(){init(); //初始化while(1){//红灯redLight = 1;yellowLight = 0; greenLight = 0; delay(delayTime);//黄灯redLight = 0;yellowLight = 1; greenLight = 0; delay(delayTime);//绿灯redLight = 0;yellowLight = 0; greenLight = 1; delay(delayTime); }}```上面的代码使用了8051单片机的开发环境,通过定义三个LED端口,分别控制红、黄、绿三种交通灯的状态。

通过设置不同的IO口状态来控制交通灯的亮灭。

在`init()`函数中,先将所有LED端口设置为低电平,即熄灭状态。

在`mn()`函数中,使用循环控制交通灯额亮灭状态。

先点亮红灯,延时一段时间后熄灭。

然后点亮黄灯,延时一段时间后熄灭。

最后点亮绿灯,延时一段时间后停止。

基于单片机控制的交通灯带程序

基于单片机控制的交通灯带程序

基于单片机控制的交通灯毕业设计本人亲自验证程序摘要 (1)ABSTRACT (2)前言 (3)一、工程简介 (4)(一)、概述 (4)(二)、工艺流程图 (4)二、工程设计 (5)(一)、控制方案的确定 (5)(二)、硬件部分 (6)(1)、交通灯控制系统的硬件设计 (6)(2)、硬件系统的设计具备以下原则 (6)(3)、硬件结构框图(如图3所示) (6)(4)、交通灯控制系统的原理框图(如图4所示) (6)(5)、8279的结构及引脚功能 (11)(三)、软件部分 (12)(1)、延时子程序的计算 (12)(2)、流程图(如图8所示) (12)三、系统的试调运行 (14)(一)、硬件调试 (14)(1)、静态调试 (14)(2)、动态调试 (14)四、系统设计及总结特点 (15)致谢 (16)参考文献 (16)附录A:源程序 (17)附录B:电路图 (22)基于单片机控制的交通灯摘要十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。

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

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

本设计主要分为五大模块输入控制电路、时钟控制电路、片内外程序切换控制、显示电路。

以MSC-51系列单片机IntelAT89C51为中心器件来设计交通灯控制器,实现了AT89C51芯片的P0口设置红、绿灯、黄灯燃亮时间的功能;为了系统稳定可靠采用了74LS14施密特触发器芯片的消抖电路,避免了系统因输入信号抖动产生误操作;显示时间直接通过AT89C51的P2口输出,由CD4511驱动LED数码管显示红灯燃亮时间。

关键字:AT89C51 LED显示交通灯the traffic light based on the single-chip controlAbstractThe intersections vehicle wears shuttle, pedestrian Xi Rang, garage driveway, person's sidewalk, orderly. So depend what to carry out this well arranged order? What to depend is a traffic sign light of automatic conductor system. The control method of the traffic sign light is a lot of. This design is mainly divided into five greatest molds a piece the electric circuit, clock of the importation control a control outside procedure inside the electric circuit, slice to cut over a control and shows electric circuit. Take single slice the machine IntelAT89 C51 of the serieses MSC-51s as a center spare part to design transportation light controller, carried out the AT89 C51's P's 0 people's constitution of the chips red, the function in bright time of green light, Huang2 Deng Ran2;For the sake of system stability the credibility adopted a 74 LS14 airtight trigger eliminate of machine chip to tremble electric circuit especially, avoided system because of importation the signal tremble movable property to living a mistake operation; The P 2 people who shows that time directly passes the AT89 C51 output, is driven LED figures a tube by the CD4511 to show red-light Ran bright time.Key word: The AT89 C51 LED show transportation light前言本课程设计是在学完单片机原理及课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现。

单片机交通灯报告内带源程序

单片机交通灯报告内带源程序

程序流程图
3 系统硬件设计
3.1单片机的最小系统 ATMEL公司生产的AT89C52单片机它是硬件电路的核心部 分,时钟电路晶振使用12MHz,复位电路采取按键复位方式。 具体连接图3.1和图3.2。
单片机系统的时钟电路
单片机系统的复位电路
3.2电源电路设计 电源用5V直流变压器直接供电。
3.3数码管显示电路 显示电路采用2个共阴数码管。
基于51单片机的交通灯设计
专 业: 09通信工程B班 学 生 姓 名: … 学 号: 0915232024 指 导 教 师: 戴在平 完成日期:2011年12月21日
1 设计任务和性能指标
1.1设计任务 利用单片机完成交通信号灯控制器的设计,该交通信号灯控制 器控制一个十字路口,在每个入口处设置红、绿、黄三色信号 灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的 车辆有时间停在禁行线外。用红、绿、黄发光二极管作信号 灯。。 1.2性能指标 (1)处于常允许通行的状态,左右道路红灯亮时候,上下道 路绿灯亮;左右道路绿灯亮时候上下道路红灯亮。 (2)上下 左右道路通行时间均为三十秒,三十秒倒计时结束 后将自动切换红绿灯,并且会有黄灯闪烁警示。 (3)绿灯先灭,黄灯闪烁三秒钟过后,熄灭,然后转为红 灯,另外两边则由红灯转为绿灯。
2片机来控制一些LED 和数码管, 模拟真实交通灯的功能。红、黄、绿交替闪亮,利用数码管倒 计数显示间隔等,用于管理十字路口的车辆及行人交通,计时 牌显示路口通行转换剩余时间等 2.2方案设计
根据设计的要求可知,系统的硬件原理框图如下图所示。 系统硬件框图 单片机可选用AT89C51,它与8051系列单片机全兼容,但其内部带 有4KB的FLASH ROM,设计时无需外接程序存储器,为设计和调试带 来极大的方便。南北向和东西向各采用2个数码管计时,同时需要对该 方向的指示灯的点亮时间进行倒计时。键盘系统可以根据系统的需要设 置不同的键的个数,可以选择线式键盘或矩阵式键盘,若单片机的IO口 不够用时,可以考虑扩展8255或8155满足系统的要求。 2. 软件方案 根据设计要求,程序框图如图1所示。软件可由汇编语言完成,也可 由C语言完成。软件设计可以分为以下几个功能模块: 主程序:初始化及键盘监控。 计时程序模块:为定时器的中断服务子程序,完成0.1秒(或其他时 间)和1秒的时间定时。 显示程序模块:完成60个发光二极管(实际上只需驱动30个)和8个 LED数码管的显示驱动。 调用正常 运行子程序 调用紧急 状态子程序 判断当前状态 初始化 开始

单片机控制交通灯(内含程序和实物图)

单片机控制交通灯(内含程序和实物图)

摘要随着经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通拥塞已成为一个国际性的问题。

因此,设计可靠、安全、便捷的多功能交通灯控制系统有极大的现实必要性。

根据交通灯在实际控制中的特点,结合单片机的控制功能,提出了一种用单片机自动控制交通灯的简易方法。

设计中包括硬件电路的设计和程序设计两大步骤,对单片机学习中的几个重要内容都有涉足。

单片机的应用正在不断深入,单片机可以用来仿真各个系统。

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

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

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

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

本系统采用单片机STC89C52为中心器件来设计交通灯控制器,实现了通过P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过P1口输出,显示时间通过P0口输出至双位数码管)。

本系统设计周期短、可靠性高、实用性强、操作简单、维护方便、扩展功能强。

关键词:单片机交通灯数码管Microcontroller to control traffic lights Abstract: With economic development, a sharp increase in the number of cars, increasingly crowded city roads, traffic congestion has become an international problem. Therefore, the design of reliable, safe, convenient and versatile traffic light control system of great practical necessity.According to the characteristics of the traffic lights in the actual control, combined with the microcontroller control functions, and easy with Auto Control traffic lights. The design includes two steps of the hardware circuit design and programming have to get involved in several important single-chip learning.The application of microcontroller is the deepening of the Microcontroller can be used to simulate systems. In the automatic control of microcomputer application system, the Microcontroller is often used as a core component to use only Microcontroller knowledge is not enough, but also according to the specific hardware architecture hardware and software, to be improved.Crossroads shuttle vehicles, pedestrians bustling Dealers lane, walkways, and orderly. Rely on to achieve this orderly order? Rely on automatic command system of traffic lights. Traffic signal control. The system uses the Microcontroller STC89C52-centric devices to design the traffic signal controller to achieve a set of red, green light to kindle through the P1 port function of time; traffic light cycle lights, countdown 5 seconds left flashing yellow warning (traffic light signals through the P1 the output port, and displays the time through the P0 port output to double-digit LED). The system design cycle, high reliability, practical, simple operation, easy maintenance, strong extensions.Key words:microcontroller traffic light digital tub目录第1章前言 (1)1.1交通灯发展概述 (1)1.2 课题背景及意义 (2)1.3课题任务及主要实现内容 (3)1.4 原理分析 (4)1.4.1交通灯显示时序的理论分析 (4)1.4.2 交通灯显示的理论分析 (5)第2章设计方案分析 (6)2.1 单片机与外围接口部件 (6)2.2 倒计时显示界面 (7)2.3 交通灯 (7)第3章硬件系统设计 (8)3.1 单片机的选择 (8)3.2 硬件电路实现 (11)3.2.1 最小系统设计 (11)3.2.2 显示设计 (13)3.2.3 发光二极管模拟红绿灯 (15)3.2.4 按键模块 (16)第4章软件电路设计 (17)4.1 软件编译环境测试 (17)4.1.1 C语言介绍 (17)4.1.2 Keil uVision4介绍 (17)4.2软件总体设计 (17)第5章电路检测 (21)结论 (24)致谢 (25)参考文献 (26)附录: (27)源程序: (29)第1章前言单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片机实验设计----交通信号灯控制

单片机实验设计----交通信号灯控制

实验十交通信号灯控制一、实验目的:(1)掌握外部中断源的扩展方法;(2)掌握编程控制交通信号灯的方法;(3)掌握用Keil实现软件调试的方法;(4)掌握用Proteus实现电路设计,程序设计和仿真的方法。

二、实验内容:P1口做输出口控制交通信号灯,P3口做输入口接三只控制开关,设计一个交通信号灯控制系统。

晶振频率6MHZ。

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

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

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

在交通繁忙时,交通信号灯控制系统应有的手控开关,可人为地改变信号灯的状态,以缓解交通拥挤状况,控制要求如下:(1)在B车道放行期间,若A车道有车而B车道无车,按下开关使A车道放行15s。

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

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

三、实验参考电路:用发光二极管替代交通信号灯,P1口接发光二极管的阴极,P1口的管脚输出低电平时对应的发光二极管点亮;控制开关的信号全部通过P3口送人单片机,控制系统实验电路如下图:四、实验参考程序:ORG 0000HLJMP MAIN 转向主程序;ORG 0003HLJMP INT00 转向紧急车辆中断服务程序;ORG 0013HLJMP INT11 转向有车车道放行中断服务程序;ORG 0030HMAIN: SETB PX0 置外部中断0为高优先级中断;MOV TCON,#00H 置外部中断0,1为电平触发;MOV IE,#85H 开CPU中断,外部中断0,1中断;LOOP: MOV P1,#0F3H A道绿灯亮,B道红灯亮;MOV R1,#88 44s延时的循环次数;AP1: LCALL DELAY 调用0.5s延时子程序;DJNZ R1,AP1 44s不到,继续循环;MOV R1,#6 3s延时的循环次数AP2: CPL P1.2 A道绿灯闪烁LCALL DELAYDJNZ R1,AP2 3s未到,继续循环;MOV P1,#0F5H A道黄灯亮,B道红灯亮;MOV R1,#6AP3: LCALL DELAYDJNZ R1,AP3 3s未到,继续循环;MOV P1,#0DEH A道红灯亮,B道绿灯亮;MOV R1,#48BP1: LCALL DELAYDJNZ R1,BP1 24s未到,继续循环;MOV R1,#6BP2: CPL P1.5 B道绿灯闪烁;LCALL DELAYDJNZ R1,BP2 3s未到,继续循环;MOV P1,#0EEH A道红灯亮,B道黄灯亮;MOV R1,#6BP3: LCALL DELAYDJNZ R1,BP3 3s未到,继续循环;SJMP LOOP 循环;ORG 0200HINT00: PUSH P1 保护P1口数据;MOV P1,#0F6H A道红灯亮,B道红灯亮;MOV R2,#30 15s延时的循环次数;DELAY0: LCALL DELAYDJNZ R2,DELAY0 15s未到,继续循环;POP P1 恢复P1口数据;RETI 返回主程序;ORG 0300HINT11: CLR EA 关中断;PUSH P1 保护现场;PUSH 04HPUSH 05HPUSH 06HSETB EA 开中断;JNB P3.0,AP0 A道无车,转向判断B道;MOV P1,#0F3H A道绿灯亮,B道红灯亮;SJMP DEL1 转向15s延时程序;AP0: JNB P3.1,EXIT B道无车。

单片机交通灯实验代码

单片机交通灯实验代码

;======================P1口亮灯实验========================= ORG 0790H;----------------------------------------------------------SE18: MOV P1,#0FFH ;送P1口LO34: MOV A,#0FEH ;L1发光二极管点亮LO33: MOV P1,ALCALL SE19 ;延时RL A ;左移位SJMP LO33 ;循环;----------------------------------------------------------SE19: MOV R6,#0A0HLO36: MOV R7,#0FFHLO35: DJNZ R7,LO35DJNZ R6,LO36 ;延时RET;----------------------------------------------------------END;==================== 8255控制交通灯========================== ORG 0BB0HJOD0: MOV SP,#60HMOV DPTR,#0FFDBHMOV A,#88HMOVX @DPTR,A ;8255初始化MOV DPTR,#0FFD8HMOV A,#0B6HMOVX @DPTR,AINC DPTRMOV A,#0DHMOVX @DPTR,A ;点亮4个红灯MOV R2,#25H ;延时LCALL DEL YJOD3: MOV DPTR,#0FFD8HMOV A,#75HMOVX @DPTR,AINC DPTRMOV A,#0DHMOVX @DPTR,A ;东西绿灯亮,南北红灯亮MOV R2,#55HLCALL DEL Y ;延时MOV R7,#05H ;闪烁次数JOD1: MOV DPTR,#0FFD8HMOV A,#0F3HMOVX @DPTR,AINC DPTRMOV A,#0CHMOVX @DPTR,A ;东西黄灯亮,南北红灯亮MOV R2,#20HLCALL DEL Y ;延时MOV DPTR,#0FFD8HMOV A,#0F7HMOVX @DPTR,AINC DPTRMOV A,#0DHMOVX @DPTR,A ;南北红灯亮MOV R2,#20HLCALL DEL Y ;延时DJNZ R7,JOD1 ;闪烁次数未到继续MOV DPTR,#0FFD8HMOV A,#0AEHMOVX @DPTR,AINC DPTRMOV A,#0BHMOVX @DPTR,A ;东西红灯亮,南北绿灯亮MOV R2,#55HLCALL DEL Y ;延时MOV R7,#05H ;闪烁次数JOD2: MOV DPTR,#0FFD8HMOV A,#9EHMOVX @DPTR,AINC DPTRMOV A,#07HMOVX @DPTR,A ;东西红灯亮,南北黄灯亮MOV R2,#20HLCALL DEL Y ;延时MOV DPTR,#0FFD8HMOV A,#0BEHMOVX @DPTR,AINC DPTRMOV A,#0FHMOVX @DPTR,A ;东西红灯亮MOV R2,#20HLCALL DEL Y ;延时DJNZ R7,JOD2 ;闪烁次数未到继续LJMP JOD3 ;循环;---------------------------------------------DELY: PUSH 02HDEL2: PUSH 02HDEL3: PUSH 02H ;延时DEL4: DJNZ R2,DEL4POP 02HDJNZ R2,DEL3POP 02HDJNZ R2,DEL2POP 02HDJNZ R2,DEL YRET;---------------------------------------------END;===================== 工业顺序控制======================== ORG 0000HLJMP PO10ORG 0013HLJMP PO16;----------------------------ORG 0190HPO10: MOV P1,#7FHORL P3,#00HPO11: JNB P3.4,PO11 ;开工吗?ORL IE,#84HORL IP,#01HMOV PSW,#00H ;初始化MOV SP,#53HPO12: MOV P1,#7EH ;第一道工序ACALL PO1BMOV P1,#7DH ;第二道工序ACALL PO1BMOV P1,#7BH ;第三道工序ACALL PO1BMOV P1,#77H ;第四道工序ACALL PO1BMOV P1,#6FH ;第五道工序ACALL PO1BMOV P1,#5FH ;第六道工序ACALL PO1BMOV P1,#0FH ;第七道工序ACALL PO1BSJMP PO12;----------------------------PO16: MOV B,R2 ;保护现场PO17: MOV P1,#7FH ;关输出MOV 20H,#0A0H ;振荡次数PO18: SETB P1.7 ;振荡ACALL PO1A ;延时CLR P1.7 ;停振ACALL PO1A ;延时DJNZ 20H,PO18 ;不为0转CLR P1.7ACALL PO1A ;停振JNB P3.3,PO17 ;故障消除吗?MOV R2,B ;恢复现场RETIPO1A: MOV R2,#06HACALL DEL Y ;延时RETPO1B: MOV R2,#30HACALL DEL Y ;延时RET;----------------------------DELY: PUSH 02HDEL2: PUSH 02HDEL3: PUSH 02H ;延时DEL4: DJNZ R2,DEL4POP 02HDJNZ R2,DEL3POP 02HDJNZ R2,DEL2POP 02HDJNZ R2,DEL YRET;----------------------------END;=================== A/D转换实验======================== ORG 05A0HSE11: MOV SP,#53HMOV 7EH,#00HMOV 7DH,#08HMOV 7CH,#00HMOV 7BH,#09HMOV 7AH,#10HMOV 79H,#10H ;显示缓冲区初值LO18: CALL DIS ;显示MOV A,#00HMOV DPTR,#0FFE0HMOVX @DPTR,A ;0809的0通道采样CALL DIS ;SSEEMOVX A,@DPTR ;取出采样值mov dptr,#0ffe4h ;new add --> 138 Y1cpl a ;new addmovx @dptr,a ;new add --> 驱动发光二极管cpl a ;new addMOV R0,#79HCALL PTDS ;采样值送显示缓冲区SJMP LO18 ;循环;---------------------------PTDS: MOV R1,A ;拆送显示缓冲区ACALL PTDS1MOV A,R1SW AP APTDS1: ANL A,#0FHMOV @R0,AINC R0RET;---------------------------DIS: PUSH DPHPUSH DPLSETB RS1MOV R0,#7EHMOV R2,#20HMOV R3,#00HMOV DPTR,#LS0LS2: MOV A,@R0MOVC A,@A+DPTRMOV R1,#0DCHMOVX @R1,AMOV A,R2inc R1MOVX @R1,ALS1: DJNZ R3,LS1CLR CRRC AMOV R2,ADEC R0JNZ LS2movx @r0,adec r0cpl amovx @r0,aCLR RS1POP DPLPOP DPHRET;-------------------------------------LS0: DB 0C0H,0F9H,0A4H,0B0H,99H,92HDB 82H,0F8H,80H,90H,88H,83H,0C6HDB 0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH;--------------------------------------END===================== D/A输出方波=========================;注意:进行本实验前,请先装载运行D/A 0V输出(调基准电压)程序Asm51\da_0v.asm ;使D/A输出端“AOUT”输出电压为0V,再进行本实验。

单片机控制交通灯程序代码

单片机控制交通灯程序代码

单片机控制交通灯程序代码第一篇:单片机控制交通灯程序代码毕业设计程序源代码ORG 0000H;主程序的入口地址LJMP MAIN;跳转到主程序的开始处ORG 0003H;外部中断0的中断程序入口地址ORG 000BH;定时器0的中断程序入口地址LJMP T0_INT;跳转到中断服务程序处ORG 0013H;外部中断1的中断程序入口地址MAIN : MOV SP,#50HMOV IE,#8EH;CPU开中断,允许T0中断,T1中断和外部中断1中断MOV TMOD,#51H;设置T1为计数方式,T0为定时方式,且都工作于模式1 MOV TH1,#00H;T1计数器清零MOV TL1,#00HSETB TR1;启动T1计时器SETB EX1;允许INT1中断SETB IT1;选择边沿触发方式MOV DPTR ,#0003HMOV A, #80H;给8255赋初值,8255工作于方式0MOVX @DPTR, A AGAIN: JB P3.1,N0;判断是否要设定东西方向红绿灯时间的初值,若P3.1为1 则跳转MOV A,P1JB P1.7,RED;判断P1.7是否为1,若为1则设定红灯时间,否则设定绿灯时间MOV R0,#00H;R0清零MOV R0,A;存入东西方向绿灯初始时间MOV R3,ALCALL DISP1LCALL DELAYAJMP AGAIN RED:MOV A,P1ANL A,#7FH;P1.7置0MOV R7,#00H;R7清零MOV R7,A;存入东西方向红灯初始时间MOV R3,ALCALL DISP1LCALL DELAYAJMP AGAIN毕业设计;------------N0:SETB TR0;启动T0计时器MOV 76H,R7;红灯时间存入76H N00:MOV A,76H;东西方向禁止,南北方向通行MOV R3,AMOV DPTR,#0000H;置8255A口,东西方向红灯亮,南北方向绿灯亮MOV A,#0DDHMOVX @DPTR, A N01:JB P2.0,B0 N02:SETB P3.0CJNE R3,#00H,N01;比较R3中的值是否为0,不为0转到当前指令处执行;------黄灯闪烁5秒程序------N1:SETB P3.0MOV R3,#05HMOV DPTR,#0000H;置8255A口,东西,南北方向黄灯亮MOV A,#0D4HMOVX @DPTR,A N11:MOV R4,#00H N12:CJNE R4,#7DH,$;黄灯持续亮0.5秒N13:MOV DPTR,#0000H;置8255A口,南北方向黄灯灭MOV A,#0DDHMOVX @DPTR,A N14:MOV R4,#00HCJNE R4,#7DH,$;黄灯持续灭0.5秒CJNE R3,#00H,N1;闪烁时间达5秒则退出;-----------------------------N2:MOV R7,#00HMOV A,R0;东西通行,南北禁止MOV R3,AMOV DPTR,#0000H;置8255A口,东西方向绿灯亮,南北方向红灯亮MOV A,#0EBHMOVX @DPTR,A N21:JB P2.0,T03N22:CJNE R3,#00H,N21;------黄灯闪烁5秒程序------N3:MOV R3,#05HMOV DPTR,#0000H;置8255A口,东西,南北方向黄灯亮毕业设计MOV A,#0E2HMOVX @DPTR,A N31:MOV R4,#00HCJNE R4,#7DH,$;黄灯持续亮0.5秒N32:MOV DPTR,#0000H;置8255A口,南北方向黄灯灭MOV A,#0EBHMOVX @DPTR,A N33:MOV R4,#00HCJNE R4,#7DH,$;黄灯持续灭0.5秒CJNE R3,#00H,N3;闪烁时间达5秒则退出SJMP N00;------闯红灯报警程序------B0:MOV R2,#03H;报警持续时间3秒 B01:MOV A,R3JZ N1;若倒计时完毕,不再报警CLR P3.0;报警CJNE R2,#00H,B01;判断3秒是否结束SJMP N02;------1秒延时子程序-------N7:RETI T0_INT:MOV TL0,#9AH;给定时器T0送定时10ms的初值MOV TH0,#0F1HINC R4INC R5CJNE R5,#0FAH,T01;判断延时是否够一秒,不够则调用显示子程序MOV R5,#00H;R5清零DEC R3;倒计时初值减一DEC R2;报警初值减一 T01:ACALL DISP;调用显示子程序RETI;中断返回;------显示子程序------DISP: JNB P2.4,T02 DISP1:MOV B,#0AHMOV A,R3;R3中值二转十显示转换DIV ABMOV 79H,AMOV 7AH,B DIS:MOV A,79H;显示十位毕业设计MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#0002HMOVX @DPTR,AMOV DPTR,#0001HMOV A,#0F7HMOVX @DPTR,ALCALL DELAY DS2:MOV A,7AH;显示个位MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#0002HMOVX @DPTR,AMOV DPTR,#0001HMOV A,#0FBHMOVX @DPTR,ARET;------东西方向车流量检测程序------T03: MOV A,R3SUBB A,#00H;若绿灯倒计时完毕,不再检测车流量JZN3JB P2.0,T03INC R7CJNE R7,#64H,E1MOV R7,#00H;中断到100次则清零 E1:SJMP N22;------东西方向车流量显示程序------T02: MOV B,#0AH MOVA,R7;R7中值二转十显示转换DIV ABMOV 79H,AMOV 7AH,B DIS3: MOV A,79H;显示十位MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#0002HMOVX @DPTR,AMOV DPTR,#0001H毕业设计MOV A,#0F7HMOVX @DPTR,ALCALL DELAY DS4:MOV A,7AH;显示个位MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#0002HMOVX @DPTR,AMOV DPTR,#0001HMOV A,#0FBHMOVX @DPTR,ALJMP N7;------延时4MS子程序----------DELAY: MOV R1,#0AH LOOP: MOV R6,#64HNOP LOOP1: DJNZ R6,LOOP1DJNZ R1,LOOPRET;------字符表------TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND第二篇:单片机实现交通灯控制智能交通灯设计与实现基于单片机的智能交通灯控制系统的设计与实现,系统能够根据十字路口双车道车流量的情况控制交通讯号灯按特定的规律变化。

交通信号灯控制系统+完整的C51编程[1]

交通信号灯控制系统+完整的C51编程[1]

交通信号灯控制系统摘要:十字路口的红绿灯指挥着行人和各种车辆安全通行,实现红绿灯的自动指挥是城市交通管理自动化的重要课题。

因为交通信号灯控制系统是要根据计时的情况实现对交通信号灯的控制和对数字显示器的控制,所以用微控制器MCU(Microcontroller Unit,又称单片机)实现交通信号控制系统的设计。

又因为微控制器MCU应用系统抗干扰性差,故一般应该综合采用软、硬件抗干扰措施,才能获得好的抗干扰效果,以便交通信号的控制系统更好的实现。

关键词:单片机芯片AT89C52;驱动器芯片74LS245;显示模块;RTX51Tiny内核十字路口的红绿灯指挥着行人和各种车辆安全通行,实现红绿灯的自动指挥是城市交通管理自动化的重要课题。

一般说来,十字路口处的两条相互交叉的道路是由主次之分的,其中一条道路平时车流量较大,称为主干道;而另一条道路平时车流量较小,称为次干道。

十字路口交通信号灯控制系统应考虑十字路口主、次干道车流量不同的特点,并且能根据车流量发生变化的实际情况,可以很方便地更改主、次干道的通车时间。

1 方案的比较论证1.1 以CPLD为核心的实现方案运用EDA技术实现电子系统的设计特别是数字电子系统的设计,是现代电子技术发展的趋势。

CPLD芯片内部的电路功能可以通过标准硬件描述语言进行设计,而且整个设计过程都是在通过计算机的帮助下完成的,从而使得以CPLD为核心的方案容易实现、容易修改、容易保存。

因此,无论是在系统的工作可靠性方面,还是在系统的成本、系统的运行速度、系统结构的简易程度等方面,以CPLD为核心的实现方案具有一定的技术先进性,而且最后能得到让人比较满意的设计结果。

....1.2 以MCU为核心的实现方案用微控制器MCU实现交通信号控制系统的设计,相对而言是最容易的,因为交通信号灯控制系统就是要根据计时的情况实现对交通信号灯的控制和对数字显示器的控制。

而微控制器MCU最适宜于对物理对象的控制,通过微控制器软件编程,很容易实现对交通信号灯的控制和对LED数码管的显示控制。

单片机 交通灯(含程序)

单片机 交通灯(含程序)

单片机课程设计报告题目现代交通灯的设计专业电气工程及其自动化班级电气081学号3080421029学生姓名郭琪指导老师王水鱼老师2010年秋季学期起止日期:2011年1月10日至2011年1月14日平时(10%)任务完成(30%)答辩(30%)课设报告(30%)总评成绩目录一、引言 3二、概要设计 42.1 设计思路42.2 设计的主要内容和要求 42.3 总体设计框图 5三、硬件设计 53.1 LED循环电路设计 63.1.1 89c51单片机概述 6 3.1.2 LED循环说明9 3.2 倒计时显示电路11 3.2.1 74LS164芯片11 3.2.2 共阴极数码显示管12 3.2.3 倒计时电路133.2.4 急通车电路13四、软件设计 144.1 程序流程图14 4.2 LED红绿灯显示14 4.3 到计时显示164.4 急通车控制164.5程序代码16五、总结 16 参考文献 17附录一: 18 附录二: 19 基于51单片机的交通灯控制系统设计摘要:在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

交通灯控制系统由80C51单片机、键盘、LED显示、交通灯延时组成。

系统除具有基本交通灯功能外,还具有时间设置、LED信息显示功能,市交通实现有效控制。

关键词:交通灯,单片机,自动控制一、引言当今,红绿灯安装在个个道口上,已经成为疏导交通车辆最常见和最有效的手段。

但这个技术在19世纪就已经出现了。

1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械般手势信号灯,用以指挥马车通行。

这是世界上最早的交通信号灯。

1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的会议大厦前的广场上,安装了世界上最早的煤气红绿灯。

它由红绿两以旋转方式玻璃提灯组成,红色表示“停止”,绿色表示“注意”。

1869年1月2日,煤气灯爆炸,是警察受伤,遂被取消!电气启动的红绿灯出现在美国,这种红绿灯由红黄绿三色圆形的投光器组成,1914年始装于纽约市5号大街的一座高塔上。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LJMP S00
AD11: MOV R2,#0FFH
CLR C
MOV A,R1
SUBB A,#06H
MOV R1,A
AJMP AD011
AD22: MOV R3,#0FFH
CLR C
LJMP S20
AD1: MOV R2,#0FFH
CLR C
MOV A,R1
SUBB A,#06H
MOV R1,A
AJMP AD01
AD2: MOV R3,#0FFH
CLR C
MOV A,R1
SUBB A,#06H
MOV R1,A
AJMP AD02
S3: MOV P1,#0AH ;主干道红灯,支干道黄灯
MOV R4,#4H ;四秒倒计时
S30: MOV 7DH,R4
MOV 7BH,R4
MOV 7EH,#00H
MOV 7CH,#00H
LCALL DISP ;显示
DEC R4 ;R4减1一直到0
MOV A,R4
JZ SRET ;计时完成,到起始状态,没有继续
ANL A,#0FH
S21: MOV 7DH,A
MOV 7BH,A
MOV A,R1
ANL A,#0F0H
SWAP A
MOV 7EH,A
MOV 7CH,A
LCALL DISP ;显示
LJMP S30
SRET: LJMP S0
SZ: MOV P1,#09H
MOV R4,#4H
SZ0: MOV 7DH,R4
MOV 7BH,R4
MOV 7CH,#00H
MOV 7EH,#00H
MOV 7BH,R4
MOV 7CH,#00H
MOV 7EH,#00H ;显示
LCALL DISP
DEC R4
MOV A,R4
JZ S2 ;计时完成跳到S2,没有继续
MOV R5,#2 ;延时
DEL0: MOV R6,#155
DEL1: MOV R7,#98
MOV R1,#7EH ;显示
MOV R2,#08H
MOV R3,#00H
DISP1:MOV DPTR,#0FF21H ;从右至左第一位点亮
DISP2: DJNZ R3,DISP2
DEC R1
CLR C
MOV A,R2
RRC A
MOV R2,A
JNZ DISP1 ;未到最后一位,继续
DEL2: DJNZ R7,DEL2
LJMP S10
S2: MOV P1,#0CH ;主干道红灯亮,支干道绿灯亮
MOV R4,#19H
MOV R1,#25H
MOV R2,#06H
MOV R3,#10H
S20: MOV A,R1
MOV A,P3 ;检测P3口状态
ANL A,#7H
CLR C
CJNE A,#7H,LOOPS2 ;支干道来了三辆车,跳到S3,没有继续计时
LJMP S3
LOOPS2: DEC R4
LCALL DISP
DEC R4
MOV A,R4
JZ ZRET
LJMP SZ0
ZRET: LJMP S0
INT23:LJMP SZ ;开中断
RETI
DISP: SETB 0D4H ;延时显示子程序
S0: MOV P1,#21H ;状态1,主干道绿灯亮,支干道红灯亮
MOV R4,#19H ;25秒倒计时
MOV R1,#25H
MOV R2,#06H
MOV R3,#10H
S00: MOV A,R1
ANL A,#0FH
MOV A,R1 AD022
S1: MOV P1,#11H ;主干道黄灯,支干道红灯
MOV R4,#4H ;四秒倒计时
S10: MOV 7DH,R4
MOV A,R2
MOVX @DPTR,A ;显示位码送字位口
MOV DPTR,#D1
MOV A,@R1
MOVC A,@A+DPTR
MOV DPTR,#0FF22H
MOVX @DPTR,A ;显示段码送字段口
DJNZ R6,DEL1
DJNZ R5,DEL0
MOV A,#0FFH ;关显示
MOV DPTR,#0FF22H
MOVX @DPTR,A
CLR 0D4H
RET ;返回
源程序:
ORG 0000H
LJMP MAIN
ORG 0013H
LJMP INT23
MAIN : SETB EX1
SETB EA
MOV P3,#0FFH ;初始化
MOV R4,#00H
MOV R1,#00H
DEC R1
DEC R2
DEC R3
MOV A,R2
JZ AD1
AD01: MOV A,R3
JZ AD2
AD02: MOV A,R4
JZ S3 ;计时完成,跳到S3,没有继续
ANL A,#10H
CLR C
CJNE A,#10H,LOOPS0 ;如果P3.4不为1,则继续倒计时,
LJMP S1 ;为1跳到状态S1
LOOPS0: DEC R4
DEC R1
DEC R2
S01: MOV 7DH,A
MOV 7BH,A
MOV A,R1
ANL A,#0F0H
SWAP A
MOV 7EH,A
MOV 7CH,A
LCALL DISP
MOV A,P3 ;检测P3口的状态
DEC R3
MOV A,R2
JZ AD11
AD011: MOV A,R3
JZ AD22
AD022: MOV A,R4 ;倒计时结束跳到状态S1
JZ S1 ;没有继续显示
D1: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH
END
相关文档
最新文档