交通灯课程设计

时间:2024-07-26 08:16:59编辑:分享君

基于单片机的十字路口交通灯控制电路论文

1.2系统硬件设计
本系统选用通过P0和P2用做输出显示控制口。P0口通
过锁存芯片74HC573和显示译码芯片TC4511BP分时复用控
制LED数码管实现行车道上红绿灯规律变化。P2口当作普
通输出口直接控制人行道红绿灯规律变化,记数采用2个
40s的循环方式来控制。LED数码管通过静态显示方式实现
倒计时读秒。
总体硬件电路图如图2所示。
1.3交通灯的正常显示

交通灯正常工作状态电路图和状态表如图3和表1所
示:
表1系统工作状态表

化,P2口直接输出控制的是行车道红绿灯状态的变化。
由于P0口是作为分时复用总线使用,单片机P0口传送
的数据首先通过74HC573锁存。通过P2口直接输出控制行
车道上红绿灯的变化,通过编程控制,要和P0口控制的人
行道红绿灯的变化相符合。
通过P0口分时复用,同时控制LED数码管的显示,具
体显示方式即倒计时读秒,而P0口并不能单独完成此功能。
在这里,选用TC4511BP芯片。
TC4511BP是BCD-七段LED锁存/译码/驱动器。其驱
动LED数码管显示如图3,当使能端LE为低电平时,将加在

A、B、C、D端的数据译成段驱动信号,经限流电阻送到数
码管的段控制线上。当使能端LE为高电平时,驱动信号被
锁存在TC4511BP的输出端,实现静态显示。
1.4其他硬件模块
(1)紧急情况处理
如图4,外部中断INT1用于对紧急情况、流量控制和
恢复等情况的控制,模拟意外事故等实际情况导致交通突然
瘫痪,此时就需要手动对交通状况进行紧急情况下的处理,
待意外事故结束后按下恢复键恢复交通。
当按下紧急情况处理键时,通过外部中断INT1感应,通
过P1.7口软件编程控制,系统实现车道人行道红灯全部亮
起,禁止一切车辆和行人通行,LED数码管显示“88”。
(2)交通遇忙调整
为了增加交通灯指示的灵活性,提高交通的流通效率,
可根据调查交道口的车流量或交警的经验来重设各交通灯的
点亮时间。为简化处理,我们假设了两种情况:南北路段忙
和东西路段忙。

当按下南北忙按键时,系统实现的功能是:通过外部中
断INT1感应,通过P1.6口软件编程控制,系统实现下个循
环按照如表2所示的调整时间表来实现循环。


单片机控制的交通灯

题目 交通灯控制系统的设计
一、课程设计的目的与要求
1、课程设计目的:
(1)进一步理解和消化书本知识,运用所学知识和技能进行简单的设计。
(2)通过课程设计提高应用能力,分析问题和解决问题的能力。
(3)培养查阅资料的习惯,训练和提高自学,独立思考的能力。
2、课程设计要求
交通灯控制系统的设计
1) 掌握在单片机系统中扩展简单I/O接口的方法。
2) 掌握数据输出程序的设计方法。
3) 掌握模拟交通灯控制的实现方法。
4) 掌握外部中断技术的基本使用方法。
5) 掌握中断处理程序的编程方法。
从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:
(1)能够正确理解课程设计的题目和意义,全面思考问题。
(2)运用科学合理的方法,认真按时完成。

二、课程设计课题的分析
1、电路的设计

1)原理
要完成本实验,首先必须了解交通灯的亮灭规律。本实验需要用到试验箱上八个发光二极管中的六个,即红、绿、黄各两个。将L1(红)、L2(绿)、L3(黄)作为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)作为南北方向的指示灯。交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。
各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮使相应使相应输入端为低电平。


当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假设急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。本程序以单次脉冲为中断申请,表示有急救车通过,单次脉冲输出端P-接CPU板上的INT0。
2)、硬件电路图

图1—1 交通灯控制系统的硬件接线图
74LS273的输出00—07接发光二极管L1—L8,74LS273的片选CS273接片选信号CS2,此时74LS273的片选地址为CFA0—CFA7之间任选。
3)、程序流程图
主程序流程






















































图1—2 主程序软件流程图

中断程序流程图
























三、课程设计的结果
1、程序

NAME JIAOTONGGENG
OUTPORT EQU 0CFB0H ;端口地址
SAVE EQU 55H ;SAVE保存从端口CFA0输出的数据
CSEG AT 0000H
LJMP START
CSEG AT 4003H
LJMP INT
CSEG AT 4100H

START: SETB IT0 ;中断程序初始化
SETB EX0
SETB EA
MOV A,#11H ;置首显示码,两红灯全亮
MOV SAVE,A ;保存
ACALL DISP ;显示输出
ACALL DE3S ;延时3秒
LLL: MOV A,#12H ;东西路口绿灯亮,南北路口红灯亮
MOV SAVE,A
ACALL DISP
ACALL DE10S ;延时10秒
MOV A,#10H ;东西路口绿灯灭
MOV SAVE,A
ACALL DISP
MOV R2,#05H ;东西路口黄灯闪烁5次
TTT: MOV A,#14H
MOV SAVE,A
ACALL DISP
ACALL DE02S ;延时0.2秒
MOV A,#10H
MOV SAVE,A
ACALL DISP
ACALL DE02S
DJNZ R2,TTT
MOV A,#11H ;红灯全亮
MOV SAVE,A
ACALL DISP
ACALL DE02S ;延时0.2秒
MOV A,#21H ;东西路口红灯亮,南北路口绿灯亮
MOV SAVE,A
ACALL DISP
ACALL DE10S ;延时10秒
MOV A,#01H ;南北路口绿灯灭
MOV SAVE,A
ACALL DISP
MOV R2,#05H ;南北路口黄灯闪烁5次



KKK: MOV A,#41H
MOV SAVE,A
ACALL DISP
ACALL DE02S ;延时0.2秒
MOV A,#01H
MOV SAVE,A
ACALL DISP
ACALL DE02S
DJNZ R2,KKK
JMP LLL ;转SSS循环
DE10S: MOV R5,#100 ;延时10秒
JMP DE1
DE3S: MOV R5,#30 ;延时3秒
JMP DE1
DE02S: MOV R5,#02 ;延时0.2秒
DE1: MOV R6,#200
DE2: MOV R7,#126
DE3: DJNZ R7,DE3
DJNZ R6,DE2
DJNZ R5,DE1
RET
DISP: MOV DPTR,#OUTPORT
CPL A ;取反,点亮发光二极管
MOVX @DPTR,A
RET
;中断处理程序
INT: PUSH ACC ;有关寄存器入栈
PUSH PSW
MOV A,#11H ;两红灯全亮
ACALL DISP
ACALL DELAY
MOV A,SAVE ;将主程序中保存的数据再送给A
ACALL DISP
POP PSW ;有关寄存器出栈
POP ACC
RETI



DELAY:MOV R1,#100
DEL1 :MOV R2,#200
DEL2 :MOV R3,#126
DEL3 :DJNZ R3,DEL3
DJNZ R2,DEL2
DJNZ R1,DEL1
RET
END

2、现象
将程序输入到单片机中,运行程序,可以观察到现象:首先是两个路口的红灯全亮,延时3秒之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时10秒后,东西路口绿灯灭,黄灯开始闪烁。闪烁5次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时10秒后,南北路口的绿灯灭,黄灯开始闪烁。闪烁5次后,再切换到东西路口方向,重复上述过程。
当有中断申请时,两个方向上的红灯亮,经过10秒急救车通过之后,恢复到急救车到来之前的状态继续运行,可有多次的中断申请。
四、课程设计的心得与体会
1.通过试验进一步理解和消化了书本知识,分析每个语句的含义,运用所学知识进行简单的程序设计。
了解了在单片机系统中扩展简单I/O接口的方法. 外部中断技术的基本使用方法,掌握了中断处理程序的编程方法。
2.通过在图书馆查阅各种单片机资料,培养了我自学和独立思考的能力。与同学交流研究,让我懂得了更多以前不明白的知识.
3.在课程设计过程中,不断调试程序和修改程序,提高了对单片机的应用能力,分析问题和解决问题的能力。


单片机控制的交通灯

题目 交通灯控制系统的设计 一、课程设计的目的与要求 1、课程设计目的: (1)进一步理解和消化书本知识,运用所学知识和技能进行简单的设计。 (2)通过课程设计提高应用能力,分析问题和解决问题的能力。 (3)培养查阅资料的习惯,训练和提高自学,独立思考的能力。 2、课程设计要求 交通灯控制系统的设计 1) 掌握在单片机系统中扩展简单I/O接口的方法。 2) 掌握数据输出程序的设计方法。 3) 掌握模拟交通灯控制的实现方法。 4) 掌握外部中断技术的基本使用方法。 5) 掌握中断处理程序的编程方法。 从课程设计的目的出发,通过设计工作的各个环节,达到以下要求: (1)能够正确理解课程设计的题目和意义,全面思考问题。 (2)运用科学合理的方法,认真按时完成。 二、课程设计课题的分析 1、电路的设计 1)原理 要完成本实验,首先必须了解交通灯的亮灭规律。本实验需要用到试验箱上八个发光二极管中的六个,即红、绿、黄各两个。将L1(红)、L2(绿)、L3(黄)作为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)作为南北方向的指示灯。交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。 各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮使相应使相应输入端为低电平。 当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假设急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。本程序以单次脉冲为中断申请,表示有急救车通过,单次脉冲输出端P-接CPU板上的INT0。 2)、硬件电路图 图1—1 交通灯控制系统的硬件接线图 74LS273的输出00—07接发光二极管L1—L8,74LS273的片选CS273接片选信号CS2,此时74LS273的片选地址为CFA0—CFA7之间任选。 3)、程序流程图 主程序流程 图1—2 主程序软件流程图 中断程序流程图 三、课程设计的结果 1、程序 NAME JIAOTONGGENG OUTPORT EQU 0CFB0H ;端口地址 SAVE EQU 55H ;SAVE保存从端口CFA0输出的数据 CSEG AT 0000H LJMP START CSEG AT 4003H LJMP INT CSEG AT 4100H START: SETB IT0 ;中断程序初始化 SETB EX0 SETB EA MOV A,#11H ;置首显示码,两红灯全亮 MOV SAVE,A ;保存 ACALL DISP ;显示输出 ACALL DE3S ;延时3秒 LLL: MOV A,#12H ;东西路口绿灯亮,南北路口红灯亮 MOV SAVE,A ACALL DISP ACALL DE10S ;延时10秒 MOV A,#10H ;东西路口绿灯灭 MOV SAVE,A ACALL DISP MOV R2,#05H ;东西路口黄灯闪烁5次 TTT: MOV A,#14H MOV SAVE,A ACALL DISP ACALL DE02S ;延时0.2秒 MOV A,#10H MOV SAVE,A ACALL DISP ACALL DE02S DJNZ R2,TTT MOV A,#11H ;红灯全亮 MOV SAVE,A ACALL DISP ACALL DE02S ;延时0.2秒 MOV A,#21H ;东西路口红灯亮,南北路口绿灯亮 MOV SAVE,A ACALL DISP ACALL DE10S ;延时10秒 MOV A,#01H ;南北路口绿灯灭 MOV SAVE,A ACALL DISP MOV R2


基于51单片机控制交通灯的电路图与C语言程序

思路: 红灯停,绿灯行,黄灯闪烁提示行人红绿灯即将切换。四个方向各有一个红、黄、绿显示和两个数码管。东西道为人行道(20秒),南北道为车行道(60秒),黄灯延时最后三秒时,闪烁并切换。三、硬件电路设计此电中路设计采用AT89C51单片机,74LS47(数码管驱动)74LS373(数码管驱动输出锁存),8个数码管显示其延时值,四个红、黄、绿指示灯。硬件设计关键在于,延时显示时,要考虑到当个位数字显示时,要确保十位数字显示输出的不变。因此,可加输出锁存器。在延时最后三秒时,要让黄灯进行闪烁,并同时显示数字(这一步在软件设计上很关键)。四、软件程序(C语言) 以下是整个设计的软件程序,直接可以编译成*。Hex代码。通过以上电路,下载到单片机,可直接运行。//*****************************////程序名:十字路口交通灯控制//编写人:黄庭剑//初写时间:2009年1月2日//程序功能:南北为车行道,延时60秒;东西方向为人行道,延时20秒,且在最后3秒黄灯显示2秒钟再实现切换.//CPU说明:AT89C51型单片机; 24MHZ晶体振荡器//完成时间:2009年1月6日//*****************************//#include#include#includesfr p0 = 0x80;sfr p1 = 0x90;sfr p2 = 0xA0;sfr p3 = 0xb0; //这部分内容其实在“#include”里已经有,但里面定义的必须区分大小写,在这里,因为我程序采用的是小写,reg51.h里对各个端口与寄存器的定义都是大写,所以在编译连接时,会报错,所以,在本设计程序里,我只用到了端口,在这里也就只定义了四个,而没有去改reg51.h里面的内容。其实两者是一样的。sbit sw = p0^0;sbit OE =P0^6;sbit LE =P0^7; //74LS373锁存器控制端定义char display[]={ 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99 }; //p1口的数码管时间显示调用,利用74L74BCD码,8位驱动输出;//函数声明 beginvoid delay1(int count);void delay_long(int number1,int number2);void people_car_drive();//函数声明end//***********************//延时子程序void delay1(int count) { int i; for(i=count;i>0;i--) { ;} }void delay_long(int number1,int number2) { int a,b; for(a=number1;a>0;a--) { for(b=number2;b>0;b--) { _nop_(); } } }//**********************//延时子程序 void people_car_drive() { int p_1=2,i,j=9,p_2=6; //****************//行人通行时,延时20秒 p2=0x09; //南北红灯亮 p3=0x24; //东西绿灯亮 while(p_1-->0) { LE=1; OE=0; if(p_1==0){OE=1;} //当十位数减到0时,只显示个位数 p1=display[p_1]; delay1(1000); LE=0; j=9; for(i=10;i>0;i--) { if(p_1==0&&j==3)break; //减到3时退出循环,让其黄灯闪烁显示 p1=display[j--]; delay_long(16000,2); if(sw==1)return; } } //*******************************************************************************// p2=0x12; //南北黄灯闪烁三秒,以提醒行人注意 p3=0x12; p1=display[3]; delay_long(8000,1); p2=0x00; p3=0x00; delay_long(14000,1); p2=0x12; p3=0x12; p1=display[2]; delay_long(8000,1); p2=0x00; p3=0x00; delay_long(14000,1); p2=0x12; p3=0x12; p1=display[1]; delay_long(8000,1); p2=0x00; p3=0x00; delay_long(14000,1);//*****************以下是车辆通行时延时60秒// p2=0x24; //南北绿灯亮 p3=0x09; //东西红灯亮 while(p_2-->0) { LE=1; OE=0; if(p_2==0){OE=1;} //当十位数减到0时,只显示个位数 p1=display[p_2]; delay1(1000); LE=0; j=9; for(i=10;i>0;i--) { if(p_2==0&&j==3)break; //减到2时退出循环 p1=display[j--]; delay_long(16000,2); if(sw==1)return; } } p2=0x12; //南北黄灯闪烁三秒,以提醒行人注意 p3=0x12; p1=display[3]; delay_long(8000,1); p2=0x00; p3=0x00; delay_long(14000,1); p2=0x12; p3=0x12; p1=display[2]; delay_long(8000,1); p2=0x00; p3=0x00; delay_long(14000,1); p2=0x12; p3=0x12; p1=display[1]; delay_long(8000,1); p2=0x00; p3=0x00; delay_long(14000,1); //南北黄灯闪烁三秒完毕 } void main() //主函数入口处{ p0=0x01; p1=0x00; p2=0x00; p3=0x00; //初始化各端口 { while(1) { if(sw==0) { people_car_drive();}else { p2=0x00; p3=0x00; //关闭所有交通灯 } } }}详情访问:http://hi.baidu.com/hjiannew/

数字电子技术基础交通信号灯课程设计?

交通灯的自动控制
1. 设要求以及主要内容
1.通常情况下,大道绿灯亮,小道红灯亮;
2.若小道来车,大道经6秒由绿灯变为黄灯;再经过4秒,大道由黄灯变为红灯,同时,小道 由红灯变为绿灯;
3. 小道变绿灯后,若大道来车不到3辆,则经过25秒钟后自动由红灯变为黄灯,再经过4秒变为红灯,同时,大道由红灯变为绿灯;
4.如果小道在绿灯亮时,小道绿灯亮的时间还 没有到25秒,只要大道检测到已经超过3辆车 在等候,那么小道应立即由绿灯变为黄灯,再经过4秒变为红灯,同时,大道由红灯变为绿灯。


用VHDL语言设计一个交通灯系统

首先,假设三个灯对应的信号为1位向量,A B C 还需要一个count(integer 0 to 61) 一个count1 (integer 0 to 29) 强制切换信号 switch

假设红灯30s 绿灯30s 黄灯2s

PROCESS1:对CLK信号进行分频到1HZ的信号(CLK2)
PROCESS2(clk2触发):每一次count<-count+1

PROCESS3 (count触发)判断count的区间 0-29 绿灯亮 30-31 黄灯亮 剩下的红灯亮 并将count1置成相应的秒数(数码管显示) 例如 count=32时,绿灯刚开始亮,为29
PROCESS4 (COUNT2触发)显示数码管
PROCESS5 (switch触发) 判断switch的值,对count赋值,强制到某个区间


微机原理与接口技术课程设计:交通灯控制系统

您好,我看到您的问题很久没有人来回答,但是问题过期无人回答会被扣分的并且你的悬赏分也会被没收!所以我给你提几条建议:一,你可以选择在正确的分类下去提问,这样知道你问题答案的人才会多一些,回答的人也会多些。二,您可以到与您问题相关专业网站论坛里去看看,那里聚集了许多专业人才,一定可以为你解决问题的。三,你可以向你的网上好友问友打听,他们会更加真诚热心为你寻找答案的,甚至可以到相关网站直接搜索.四,网上很多专业论坛以及知识平台,上面也有很多资料,我遇到专业性的问题总是上论坛求解决办法的。五,将你的问题问的细一些,清楚一些!让人更加容易看懂明白是什么意思!谢谢采纳我的建议


微机原理课程设计:交通灯控制系统设计

写完了
也不长
CODE SEGMENT
FLASHTIME EQU 01H

;黄灯闪烁三次
OUT 00H,AL
MOV 03H,BL
START:
OUT 12h,AL;点亮黄灯
MOV AX,02H
CALL Delay
OUT 00h,AL;熄灭所有灯
MOV AX,02H
CALL Delay
OUT 12h,AL;点亮黄灯
MOV AX,02H
CALL Delay
OUT 00h,AL;熄灭所有灯
MOV AX,02H
CALL Delay
OUT 12h,AL;点亮黄灯
MOV AX,02H
CALL Delay
OUT 00h,AL;熄灭所有灯
MOV AX,02H
CALL Delay


MAIN:
OUT 21h,AL
MOV AX,0AH
CALL Delay

OUT 22H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 20H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 22H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 20H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 22H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 20H,AL
MOV AX,FLASHTIME
CALL Delay

OUT 0CH,AL
MOV AX,10H
CALL Delay

OUT 14H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 04H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 14H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 04H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 14H,AL
MOV AX,FLASHTIME
CALL Delay
OUT 04H,AL
MOV AX,FLASHTIME
CALL Delay


JMP MAIN
CODE ENDS


Delay:
CALL Delay1S
DEC AX
CMP AX,0
JNZ Delay
RET


Delay1S:
MOV CX,04FFFH
Delayloop:
DEC CX
CMP CX,0
JNZ Delayloop
RET
END


急!!!求单片机8255交通灯控制课程设计报告

  你的题目写的太简单了,我只能看出来ABC口的地址是一样的
  底下是我的论文,倒计时是用LED做的,红绿灯是用发光二极管做的
  你自己在里面截吧
  单片机控制交通灯的设计

  论文目录
  一、 摘要及关键字、参考文献

  二、 方案设计与论证

  三、正文:一、功能描述
  二、系统硬件电路的设计
  三、系统主要程序的设计

  四、电路总原理图

  五、主程序


  一 摘要:
  本系统采用单片机、键盘、LED显示、交通灯演示系统组成。设计一个用于十字路口的车辆及行人的交通管理,系统包括左拐、右拐、及行基本的交通灯的功能,计时牌显示路口通行转换剩余时间,在出现紧急情况时可由交通手动实现全路口车辆禁行而行人通行状态。另外,在特种车辆如119、120通过路口时,系统可自动转为特种车辆放行,其他车辆禁止通行的状态,15s后系统自动恢复正常管理。其他还有 84s与60s通行管理转换等功能。采用数码管与点阵LED相结合的显示方法,既要求倒计时数字输出,又要求有状态灯输出等。

  关键字:
  单片机系统(AT89C51)控制8255、交通规则、LED显示、动态扫描、按键输入、分时段调整


  参考文献:《单片机课程设计指导》 北京航天航空大学出版社
  《基于MCS-51系列的单片机原理的应用设计》 国防工业出版社
  《单片机实训教程》 北京大学出版社
  《单片机系统原理及应用》
  《微机原理及应用》


  二 、方案设计与论证
  1电源提供方案:
  采用独立的稳压电源,此方案稳定可靠,且有各种成熟电路可供选用

  2显示界面方案
  采用数码管和点阵LED相结合的方法,因为实际既要求倒计时施主输出,又要求又状态灯输出等,为方便观看并考虑到现实状况,用数码管与LED分别显示时间和提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。

  3输入方案
  直接在IO口上接按键开关。因为设计时精简和优化了电路,所以剩余口的资源还比较多。

  4主控制方案
  采用AT89C51单片机作为控制器,控制8255实行通行倒计时及左拐、右拐、直行、行人通行指示采用单块LCD液晶点阵显示器。这种方案设计占用单片机的端口最少,硬件也少。耗电也最小;


  系 统 框 图


  正 文
  一、功能描述
  本系统由单片机系统、键盘、发光二极管、交通灯演示系统组成,单片机作为主控制器用于十字路口的车辆及行人的交通管理,每个方向具有左拐、右拐、直行及行人4种通行指示灯,计时牌显示路口通行转换剩余时间。另外,在特种车辆如119、120通过路口时,系统可自动转为特种车辆放行,其他车辆禁止通行的状态,15s后系统自动恢复正常管理。并有手动控制分时段 84s与60s通行管理转换等功能。
  二、系统硬件电路的设计
  整套电路系统由控制系统模块、通行灯输出控制显示模块、时间显示模块、时间显示模块和自动特种车辆控制模块等组成。
  1、主控制系统
  单片机的P0口用于控制8255。8255的PA口和PB口用于控制南北及东 西的通行灯,。PC口及P3.0~P3.2口用于4组2位LED计时器的控制,特种车通过时使用外中断1口(P3.3),手动自动转换采用P1.0按键。
  选择8255的工作方式0,在这种情况下三个端口都可以由程序设置为输入和输出。

  2、通行灯输出控制
  道口交通灯指示采用高亮度红绿双色发光二极管,左拐、直行、右拐及行人各一个。当发光电流为6mA时,按公式R=(5-1.8)/0.006计算,限流电阻应为510Ω.由于南北通行时双向指示牌相同,因此每个端口应具有12mA的吸收电流能力。图7.4所示为指示灯电路图。

  3、时间显示模块
  道口通行剩余时间采用高亮红色7段LED发光数码管显示,采用共阳数码管,如用单片机吸收电流驱动,列扫描驱动使用三极管,按每段6mA电流算,全显示字形“8”时,每个数码管需6mA×8=48mA。由于时间显示每个道口相同,4组需192mA,因此设计中采用中功率三极管9012.由于单片机每个断码输出口需吸收24mA 电流,因此在电路设计中也使用了驱动集成块74HC244。其显示驱动电路如图示。
  4、特种车辆自动控制模块
  自动道口灯在特种车辆到来时能自动关闭所有绿灯,让特种车通过。设计中采用红外线发生器作为特种车的发生器,使用实时中断来影响特种车的通行要求。红外线接收器一般采用电视机上用的一体化红外接收器,具有很高的灵敏度和较强的抗干扰能力.
  5、电源电路
  由于整个系统采用的电源电压需+5V电压,所以采用不可调的3端稳压器件,用常用的lm7850就可以满足系统电源的要求。LM7850三端集成稳压电源内部由准电压回路、恒流源、过流保护、过压保护和短路保护回路等8部分组成具有低功耗,高效率,波纹系数小,输出电压稳定等优点。


  三、系统主要程序的设计
  道口交通控制系统程序主要分为以下几个模块:初始化程序、主程序、定时中断程序和特种车实时响应程序等。
  1、 初始化程序
  初始化程序主要完成内存划,定时器的工作模式、中断方式等的设定。由于子程序调用较多,因此初始化时堆栈指针设于80H处。定时器T0、T1设为16位定时器模式,定时时间位50ms,为秒计时用,T1为通行结束闪烁用。
  2、 主程序
  主程序要负责总体程序管理功能,实现人机交换设定。由于采用动态扫描方式显示时间,因此主程序大部分时间要调用扫描显示程序。主程序流程图如下图示。

  3、 外中断1中断服务程序
  经过时,车中发射红外线信号,其信号被道口控制板上的接收器接收,并输出一个低电平处外中断1.中断处理程序流程图如下页图所示。

  4、 定时服务中断程序
  序主要用于行车与行人的通行指示,按照交通规则,红绿灯控制转换逻辑表如7.1表所列。
  南北方向 端口 控制功能 120~110s 110~70s 70~60s 60~10s 10~0s
  P*.7 左拐红 0 0 0 1 1
  P*.6 左拐绿 1 1 1 0 0/1
  P*.5 直行红 1 1 1 0 0
  P*.4 直行绿 0 0 0/1 1 1
  P*.3 右拐红 0 1 1 1 1
  P*.2 右拐绿 1 0 0 0 0/1
  P*.1 行人红 1 1 1 0 0
  P*.0 行人绿 0 0 0/1 1 1
  道口控制字 66H 6AH 6AH/7BH 99H 99H/DDH
  东西方向 P*.7 左拐红 0 0 0 0 0
  P*.6 左拐绿 1 1 1 1 1
  P*.5 直行红 0 0 0 0 0
  P*.4 直行绿 1 1 1 1 1
  P*.3 右拐红 0 1 1 1 1
  P*.2 右拐绿 1 0 0 0 0/1
  P*.1 行人绿 0 0 0 0 0
  P*.0 行人红 1 1 1 1 1
  道口控制字 55H 59H 59H 59H 59H/5DH


  通行规则如下:
  (1) 车辆南北直行、各路右拐,南北向行人通行。南北向通行时间为1min,各路右拐比直行滞后10s开放。
  (2) 车辆南北向左拐、各路右拐,行人禁行。通行时间为1min。
  (3) 车辆东西向直行、各路右拐,东西向行人通行。东西向通行时间为1min,各路右拐比直行滞后10s开放。
  (4) 车辆东西向左拐、各路右拐,行人禁行。通行时间为1min。

  表中通行规则,是以给控制红绿灯端口送控制码的方式实现的。它的原理是,将按不同通行规则时的各路口的红绿灯亮灭情况转换为单片机端口控制码。其指示灯功能通过T0定时中断服务程序实现。
  定时器T0定时益出中断周期为10ms,中断累计20次(即1s)时对120s倒计时单元减1操作。设计中将4种通行规则分成集中不同的亮灯方式,通过查询秒倒计时单元的数据,实现在不同的时间段给控制端口送不同的控制数据码。控制码分为5个时间段:84—74s、74—58s、58—48s、48—10s、10—0s。交通管理定时功能程序流程图如下页图所示。


  5、 调试及性能分析

  设计时按红绿交通灯控制程序和特种车辆经过中断程序两大部分电路进行测试。

  1、 红绿交通灯控制程序
  时器T0,直接按照表7.1中算好的数据码送出来控制灯,观察其逻辑状态是否符合要求。可多次、反复地进行调试,直至逻辑关系正确。值得注意的是,南北方向、东西方向的指示灯要同时调试。
  2、 特殊车辆通行时红外线检测电路的调试
  在模拟小车中放一块红外发射模块,将示波器输入端接在交通控制灯的红外接收模块的输出引脚上,当小车通过路口时,检测红外线是否被接收。若该脚输出为低电平,则说明可以收到信号,电路正常。
  本系统以AT89C51单片机为核心,开发程序调试阶段采用W78E516B进行在线编程及修改,可大大加快调试进度。设计的交通灯可用于十字路口的车辆及行人的交通管理,显示采用2位7段数码管,可以很直观的显示红绿灯的开放和关闭的时间;设计中应用了两种倒计时显示方式, 84S 倒计时适用于车流量较大的城市,60s倒计时可用于中小型城市;功能完整,不仅有普通交通灯的指示功能,还增加了特种车辆自动通行功能。其控制功能和效果与真实道口管理红绿灯完全一致。


上一篇:中兴n700

下一篇:机器视觉定位