《交通灯控制器设计方案.docx》由会员分享,可在线阅读,更多相关《交通灯控制器设计方案.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、交通灯控制器设计方案 交通灯控制器设计方案 摘要:我国现行交通灯多为单灯多向式和单灯单向式。其最多车辆同行方向数仅为10,且其中还存在交叉问题。但若将交通灯的安装位置、交叉路口的结构做一下调整,则不仅可使车辆同行方向数成倍增加,而且可使我国道路车辆的调头问题达到进一步解决。系统使用EDA技术设计了交通灯控制器,采用硬件描述语言VHDL按模块化方式进行设计,然后进行编程,时序仿真等。运用分频器、信号控制器、时钟模块。软件基于VHDL语言实现了本设计的控制功能,实现数据的输入,输出,计算,显示及程序退出等功能。整个系统结构简单,使用方便。功能齐全,精度高,具有一定的开发价值。 关键词:交通灯控制器
2、;分频器、信号控制器、时钟模块;EDA;VHDL 一、绪论 (一)课题背景 通信、信息、工业自动化的飞速发展,对相应的专用计算机系统与硬件设备提出越来越高的要求。这些专用的计算机系统往往要具备稳定性强、实时性高、针对性强等特点,而相应的硬件设备,必须有足够高的处理速度与相当的数据存储空间来适应这些要求。随着系统功能的复杂化,处理器对应的控制程序越来越复杂,这就必然要嵌入小型的操作系统来管理、协调多个任务。当今的嵌入式操作系统内核种类繁杂,各有所长,基本都具备强实时性高稳定性和简洁、微型化的特点。这其中,还有一些优秀的、源码开放的内核,比如uc-OS和Linux他们功能强大,至今已经被成功的移至
3、在多种MCU之上。目前国内Intel8051系列还有非常大的市场,51兼容单片机还在不断的发展之中所以有必要使用一种OS来使51适应越来越复杂的任务。 (二)设计任务 设计题目:AT89C51系列单片机操作系统移用开发。本设计是通过逐步学习C51单片机高级开发语言最终来完成一个模拟工程项目十字路口交通信号灯控制器的 C51程序设计。因此,学习C51语言本身和熟练使用其编译环境是一个最主要的目的;其次,就是进一步掌握单片机的定时计数器、中断、串行口等基础知识及其C51编程。在调试成功交通灯控制器的源程序以后,考虑到系统的实用性以及可扩展性,增加了单片机与PC机串行通信和用户改变红、黄、绿灯亮灭时
4、间的功能 (三)电路功能 该控制器能实现城市“十字”路口正常情况下以及特殊情况和紧急情况下交通信号灯的模拟控制。 1.在十字路口东西南北各设置红、黄、绿三种信号灯,如图1所示。正常情况下,东西、南北方向轮流放行。当东西方向(A线)放行、南北方向(B线)禁行时,东西方向(A 线)绿灯亮25秒,然后黄灯亮5秒,南北方向(B线)红灯亮30秒;当南北方向(B线)放行、东西方向(A线)禁行时,南北方向(B线)绿灯亮25秒,然后黄灯亮5秒,东西方向(A线)红灯亮30秒。如此循环,实现交通灯定时控制。 2.有急救车优先通过功能。当有急救车到达时,路口的信号灯全部变红灯,以便急救车通过,急救车的通行时间为10
5、秒,急救车过后,交通灯恢复先前状态。 3.交通灯在红、绿灯交替点亮中,用两个数码管显示点亮的灯还能持续的时间。 二、实现方案 (一)电路图 交通灯控制电路的核心元件采用单片机芯片AT89C51,其内部带有4KB的ROM,无须扩展存储器。 信号灯的控制由单片机的P1.0P1.5控制,6只信号灯以共阴极方式连接,当P1口输出为高电平时,信号灯点亮,为实现上述控制要求,P1口共输出四种控制码,如表1所示。 表1:交通灯信号控制码 空空B道绿灯B道黄灯B道红灯A道绿灯A道黄灯A道红灯控制 码 P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0状态说明 000011000CH A道放行、B
6、 道禁止 000010100AH A道警告、B 道禁止 0010000121H A道禁止、B 道放行 0001000111H A道禁止、B 道警告 软件包括主程序、延时、显示子程序、中断服务程序,各程序流程图如图2所示。 图2程序流程图 ORG2000H MAIN:MOV DPTR,#7F00H MOV A,#0BH;PA、PC口均为输出 MOVXDPTR,A MAIN:SETB EA;开中断 SETB EX0 MOV50H,#1FH;设置时间显示初值 MOV P1,#0CH;A道放行,B道禁行 MOV R7,#19H;延时秒数 MAIN1:LCALL DISP;调1秒延时、及显示子程序 DJ
7、NZ R7,MAIN1 MOV P1,#0AH;A道警告,B道禁行 MOV R7,#05H;延时秒数 MAIN2:LCALL DISP DJNZ R7,MAIN2 MOV50H,#1FH;设置时间显示初值 MOV P1,#21H;A道禁行,B道放行 MOV R7,#19H;延时秒数 MAIN3:LCALL DISP DJNZ R7,MAIN3 MOV P1,#11H;A道禁行,B道警告 MOV R7,#05H;延时秒数 MAIN4:LCALL DISP DJNZ R7,MAIN4 AJMP MAIN;循环 延时、显示子程序: ORG2000H DISP:MOV R6,#01H;设置显示位寄存器
8、初值(右边一位MOV TMOD,#01H;定时器T0设置为定时方式的模式1 MOV R5,#0AH;定时器操作循环10次 DEL1:MOV TH0,#3CH;定时器100ms计数器的初始值MOV TL0,#B0H SETB TR0;启动定时器 DEL2:DEC50H;显示秒数减1 MOV A,50H MOV B,#0AH DIV B;拆分秒数 ADD A,#2BH MOVC A,A+PC;查表个位数的字形码 MOV R1,A;个位数字形码送R1 MOV A,B ADD A,#25H MOVC A,A+PC;查表十位数的字形码 MOV R2,A;十位数字形码送R2 MOV A,R6;位控码 MO
9、V DRTP,#7F03H MOVXDPTR,A MOV A,R1;送个位数显示 MOV DPTR,#7F01H MOVXDPTR,A LCALL DELAY;延时1ms MOV A,R6 RL A;位控左移 MOV R6,A MOV DPTR,#7F03H MOVXDPTR,A MOV A,R2;送十位数显示 MOV DPTR,#7F01H MOVXDPTR,A LCALL DELAY;延时1ms JNB TF0,$;检测100ms定时是否到 CLR TF0 DJNZ R5,DEL1;100ms循环控制 RET;返回 TABLE:DB C0H,F9H,A4H,B0H,99H DB92H,82
10、H,F8H,80H,90H DELAY:MOV R7,#02H;延时1ms子程序 DEL3:MOV R6,#0F9H DEL4:DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 RET END (四)中断服务程序: ORG0003H;外部中断0入口地址 LJMP INTER0 ORG2100H INTER0:PUSH50H;保护现场 PUSH P1 MOV P1,#00H;两车道禁止 MOV R7,#0AH;延时10秒 INT0:LCALL DISP;调显示 DJNZ R7,INT0 POP P1;恢复现场 POP50H RETI;中断返回 三、PCB板设计 如下图: PCB板设计
11、 五、程序调试及说明 在调试过程中,出现了很多问题。首先,就是程序里的定时控制误差很大(1秒钟不是很精确)。我修改了CONF_TNY.A51中的参数INT_CLOCK(硬件定时溢出机器周期,默认为10000。如果主频为12MHZ,则为10ms。)和TIMESHARING(循环切换时间,默认为5个溢出),使TIMESHARING为0,这就是说,将CPU轮流查询执行屏蔽掉,在程序中通过os_wait函数来切换。这样,定时控制就得到了一定改善。这是这次毕业设计的弊端。5.2程序运行说明整个程序分为上位机程序和下位机程序两部分:上位机程序是一个VC6.0环境下开发基于对话框的MFC应用程序。程序界面比
12、较简单:当用户将要发送给单片机的命令写入发送数据框后,单击发送按钮,数据就通过串行口发送到了单片机的RXD引脚。由于没有经过联机调试。所以,不能保证单片机接收到的是正确的用户命令。单击清除按钮,就可以将用户开始输入的命令都清除掉,以便用户再一次发送命令。单击取消按钮就退出了程序。下位机程序,不是一个可执行程序。它只能在uVision2环境中被模拟执行。 六、总结 本系统结构简单实用,操作方便快捷;特别是扩充了PC机与单片机串行通信功能后,使得用户可以根据需要来改变红黄绿灯的亮灭时间;另外,利用RTX51Tiny实时操作系统提供的系统特征,简化了多任务程序设计,满足多个任务的时间特性要求,完成了
13、前后台编程方法难以完成的编程任务。同时基于实时多任务操作系统,可以将各个任务进行细分包装,使各个任务保持相对独立;有效地改善了程序结构,提高了模块的独立性,使程序的可读性、可维护性和可移植性都得到进一步的提高。当我完成本系统设计之后,把这个系统跟北京某一十字路口的现有交通灯控制系统进行了比较,得出了本系统两个不足之处:可以在本系统中增加一个传感器,对传感器采集的数据进行处理、统计及流量分析,根据车流量来决定每一道的通行时间(绿灯亮的时间)。这样就实现了车流动态调节。另外,还可以将灯状态的切换时间用LED数码管显示出来,此显示值每秒钟刷新一次。这样,就可以给司机和行人有一个提示作用。 参考文献:
14、 1胡大可。基于8051的嵌入式开发指南。北京:电子工业出版社。2000 2张洪润/易涛。单片机应用技术教程。北京:清华大学出版社。2022 3何立民。MCS-51系列单片机应用系统设计。北京:北京航空航天大学出版社。 2022 4孙育才。MCS-51系列单片机微型计算机极其应用(第三版)。南京:东南大学 出版社2022 5田泽。嵌入式系统开发与应用系列教程。北京:北京航空航天大学2022 6范风强/兰婵丽。单片机语言C51应用实战集锦。北京。:电子工业出版社。2022 7先锋工作室。单片机程序设计实例。北京:清华大学出版社。2022 8徐爱钧。8051单片机实践教程-ASM51汇编语言与C51高级语言应用。北京: 电子工业出版社。2022 9庞特。嵌入式系统系列-C语言嵌入式系统开发。北京:中国电力出版社。2022 10陈明计。嵌入式实时操作系统SMALL RTOS51原理及应用(含盘)。北京:北 京航空航天大学出版社2022