当前位置:文档之家› 交通灯控制器设计方案

交通灯控制器设计方案

交通灯控制器设计方案摘要:我国现行交通灯多为单灯多向式和单灯单向式。

其最多车辆同行方向数仅为10,且其中还存在交叉问题。

但若将交通灯的安装位置、交叉路口的结构做一下调整,则不仅可使车辆同行方向数成倍增加,而且可使我国道路车辆的调头问题达到进一步解决。

系统使用EDA技术设计了交通灯控制器,采用硬件描述语言VHDL按模块化方式进行设计,然后进行编程,时序仿真等。

运用分频器、信号控制器、时钟模块。

软件基于VHDL语言实现了本设计的控制功能,实现数据的输入,输出,计算,显示及程序退出等功能。

整个系统结构简单,使用方便。

功能齐全,精度高,具有一定的开发价值。

关键词:交通灯控制器;分频器、信号控制器、时钟模块;EDA;VHDL一、绪论(一)课题背景通信、信息、工业自动化的飞速发展,对相应的专用计算机系统与硬件设备提出越来越高的要求。

这些专用的计算机系统往往要具备稳定性强、实时性高、针对性强等特点,而相应的硬件设备,必须有足够高的处理速度与相当的数据存储空间来适应这些要求。

随着系统功能的复杂化,处理器对应的控制程序越来越复杂,这就必然要嵌入小型的操作系统来管理、协调多个任务。

当今的嵌入式操作系统内核种类繁杂,各有所长,基本都具备强实时性高稳定性和简洁、微型化的特点。

这其中,还有一些优秀的、源码开放的内核,比如uc-OS和Linux他们功能强大,至今已经被成功的移至在多种MCU之上。

目前国内Intel8051系列还有非常大的市场,51兼容单片机还在不断的发展之中所以有必要使用一种OS来使51适应越来越复杂的任务。

(二)设计任务设计题目:AT89C51系列单片机操作系统移用开发。

本设计是通过逐步学习C51单片机高级开发语言最终来完成一个模拟工程项目——十字路口交通信号灯控制器的C51程序设计。

因此,学习C51语言本身和熟练使用其编译环境是一个最主要的目的;其次,就是进一步掌握单片机的定时计数器、中断、串行口等基础知识及其C51编程。

在调试成功交通灯控制器的源程序以后,考虑到系统的实用性以及可扩展性,增加了单片机与PC机串行通信和用户改变红、黄、绿灯亮灭时间的功能(三)电路功能该控制器能实现城市“十字”路口正常情况下以及特殊情况和紧急情况下交通信号灯的模拟控制。

1.在十字路口东西南北各设置红、黄、绿三种信号灯,如图1所示。

正常情况下,东西、南北方向轮流放行。

当东西方向(A线)放行、南北方向(B线)禁行时,东西方向(A 线)绿灯亮25秒,然后黄灯亮5秒,南北方向(B线)红灯亮30秒;当南北方向(B线)放行、东西方向(A线)禁行时,南北方向(B线)绿灯亮25秒,然后黄灯亮5秒,东西方向(A线)红灯亮30秒。

如此循环,实现交通灯定时控制。

2.有急救车优先通过功能。

当有急救车到达时,路口的信号灯全部变红灯,以便急救车通过,急救车的通行时间为10秒,急救车过后,交通灯恢复先前状态。

3.交通灯在红、绿灯交替点亮中,用两个数码管显示点亮的灯还能持续的时间。

二、实现方案(一)电路图交通灯控制电路的核心元件采用单片机芯片AT89C51,其内部带有4KB的ROM,无须扩展存储器。

信号灯的控制由单片机的P1.0~P1.5控制,6只信号灯以共阴极方式连接,当P1口输出为高电平时,信号灯点亮,为实现上述控制要求,P1口共输出四种控制码,如表1所示。

表1:交通灯信号控制码空空B道绿灯B道黄灯B道红灯A道绿灯A道黄灯A道红灯控制码P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0状态说明000011000CHA道放行、B 道禁止000010100AHA道警告、B 道禁止0010000121HA道禁止、B 道放行0001000111HA道禁止、B 道警告软件包括主程序、延时、显示子程序、中断服务程序,各程序流程图如图2所示。

图2程序流程图ORG2000HMAIN:MOV DPTR,#7F00HMOV A,#0BH;PA、PC口均为输出MOVX@DPTR,AMAIN:SETB EA;开中断SETB EX0MOV50H,#1FH;设置时间显示初值MOV P1,#0CH;A道放行,B道禁行MOV R7,#19H;延时秒数MAIN1:LCALL DISP;调1秒延时、及显示子程序DJNZ R7,MAIN1MOV P1,#0AH;A道警告,B道禁行MOV R7,#05H;延时秒数MAIN2:LCALL DISPDJNZ R7,MAIN2MOV50H,#1FH;设置时间显示初值MOV P1,#21H;A道禁行,B道放行MOV R7,#19H;延时秒数MAIN3:LCALL DISPDJNZ R7,MAIN3MOV P1,#11H;A道禁行,B道警告MOV R7,#05H;延时秒数MAIN4:LCALL DISPDJNZ R7,MAIN4AJMP MAIN;循环延时、显示子程序:ORG2000HDISP:MOV R6,#01H;设置显示位寄存器初值(右边一位MOV TMOD,#01H;定时器T0设置为定时方式的模式1MOV R5,#0AH;定时器操作循环10次DEL1:MOV TH0,#3CH;定时器100ms计数器的初始值MOV TL0,#B0HSETB TR0;启动定时器DEL2:DEC50H;显示秒数减1MOV A,50HMOV B,#0AHDIV B;拆分秒数ADD A,#2BHMOVC A,@A+PC;查表个位数的字形码MOV R1,A;个位数字形码送R1MOV A,BADD A,#25HMOVC A,@A+PC;查表十位数的字形码MOV R2,A;十位数字形码送R2MOV A,R6;位控码MOV DRTP,#7F03HMOVX@DPTR,AMOV A,R1;送个位数显示MOV DPTR,#7F01HMOVX@DPTR,ALCALL DELAY;延时1msMOV A,R6RL A;位控左移MOV R6,AMOV DPTR,#7F03HMOVX@DPTR,AMOV A,R2;送十位数显示MOV DPTR,#7F01HMOVX@DPTR,ALCALL DELAY;延时1msJNB TF0,$;检测100ms定时是否到CLR TF0DJNZ R5,DEL1;100ms循环控制RET;返回TABLE:DB C0H,F9H,A4H,B0H,99HDB92H,82H,F8H,80H,90HDELAY:MOV R7,#02H;延时1ms子程序DEL3:MOV R6,#0F9HDEL4:DEL2:DJNZ R6,DEL2DJNZ R7,DEL1RETEND(四)中断服务程序:ORG0003H;外部中断0入口地址LJMP INTER0ORG2100HINTER0:PUSH50H;保护现场PUSH P1MOV P1,#00H;两车道禁止MOV R7,#0AH;延时10秒INT0:LCALL DISP;调显示DJNZ R7,INT0POP P1;恢复现场POP50HRETI;中断返回三、PCB板设计如下图:PCB板设计五、程序调试及说明在调试过程中,出现了很多问题。

首先,就是程序里的定时控制误差很大(1秒钟不是很精确)。

我修改了CONF_TNY.A51中的参数INT_CLOCK(硬件定时溢出机器周期,默认为10000。

如果主频为12MHZ,则为10ms。

)和TIMESHARING(循环切换时间,默认为5个溢出),使TIMESHARING为0,这就是说,将CPU轮流查询执行屏蔽掉,在程序中通过os_wait函数来切换。

这样,定时控制就得到了一定改善。

这是这次毕业设计的弊端。

5.2程序运行说明整个程序分为上位机程序和下位机程序两部分:上位机程序是一个VC6.0环境下开发基于对话框的MFC应用程序。

程序界面比较简单:当用户将要发送给单片机的命令写入发送数据框后,单击发送按钮,数据就通过串行口发送到了单片机的RXD引脚。

由于没有经过联机调试。

所以,不能保证单片机接收到的是正确的用户命令。

单击清除按钮,就可以将用户开始输入的命令都清除掉,以便用户再一次发送命令。

单击取消按钮就退出了程序。

下位机程序,不是一个可执行程序。

它只能在uVision2环境中被模拟执行。

六、总结本系统结构简单实用,操作方便快捷;特别是扩充了PC机与单片机串行通信功能后,使得用户可以根据需要来改变红黄绿灯的亮灭时间;另外,利用RTX51Tiny实时操作系统提供的系统特征,简化了多任务程序设计,满足多个任务的时间特性要求,完成了前后台编程方法难以完成的编程任务。

同时基于实时多任务操作系统,可以将各个任务进行细分包装,使各个任务保持相对独立;有效地改善了程序结构,提高了模块的独立性,使程序的可读性、可维护性和可移植性都得到进一步的提高。

当我完成本系统设计之后,把这个系统跟北京某一十字路口的现有交通灯控制系统进行了比较,得出了本系统两个不足之处:可以在本系统中增加一个传感器,对传感器采集的数据进行处理、统计及流量分析,根据车流量来决定每一道的通行时间(绿灯亮的时间)。

这样就实现了车流动态调节。

另外,还可以将灯状态的切换时间用LED数码管显示出来,此显示值每秒钟刷新一次。

这样,就可以给司机和行人有一个提示作用。

参考文献:[1]胡大可。

基于8051的嵌入式开发指南。

北京:电子工业出版社。

2000[2]张洪润/易涛。

单片机应用技术教程。

北京:清华大学出版社。

2003[3]何立民。

MCS-51系列单片机应用系统设计。

北京:北京航空航天大学出版社。

2004[4]孙育才。

MCS-51系列单片机微型计算机极其应用(第三版)。

南京:东南大学出版社2003[5]田泽。

嵌入式系统开发与应用系列教程。

北京:北京航空航天大学2004[6]范风强/兰婵丽。

单片机语言C51应用实战集锦。

北京。

:电子工业出版社。

2003[7]先锋工作室。

单片机程序设计实例。

北京:清华大学出版社。

2003[8]徐爱钧。

8051单片机实践教程-ASM51汇编语言与C51高级语言应用。

北京:电子工业出版社。

2005[9]庞特。

嵌入式系统系列-C语言嵌入式系统开发。

北京:中国电力出版社。

2003[10]陈明计。

嵌入式实时操作系统SMALL RTOS51原理及应用(含盘)。

北京:北京航空航天大学出版社2004。

相关主题