基于单片机的带时间显示的交通灯.doc
《基于单片机的带时间显示的交通灯.doc》由会员分享,可在线阅读,更多相关《基于单片机的带时间显示的交通灯.doc(20页珍藏版)》请在沃文网上搜索。
1、目录一、 设计任务和要求1、设计简介.第2页2、设计任务及要求.第2页二、 设计原理.第2页三、 设计的具体实现.第3页1、 硬件电路的设计.第3页1)、时钟电路部分.第3页2)、数码管显示部分.第4页3)、交通灯灯部分.第4页4)、复位电路部分.第5页5)、键盘按键部分.第6页2、 软件编程的设计.第7页1)、数码管的扫描部分.第8页2)、LED灯的控制部分.第9页3)、手动控制部分.第10页4)、流程图.第12页5)、程序第13页四、 软件仿真.第17页五、 设计心得体会.第19页六、 附录.第19页七、 参考文献.第20页一、 设计的任务和要求1、 设计简介为确保十字路口的车辆顺畅通行,
2、几乎每个国家都在交通流量相对较大的十字道口设置交通信号灯,用来管理各个方向的车辆的通行。众所周知,红绿灯是交通法规的无声命令,是司机和行人的行为准则。目前,国内的大多数城市正在使用的是自动的红绿交通灯,它具有固定的红灯、绿灯转换间隔,并自动切换。它们一般由通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯三部分组成。在交通灯的通行与禁止时间控制显示中,通常要么东西、南北两方向各50秒;要么根据交通规律,东西方向60秒,南北方向40秒,时间控制都是固定的。交通灯的时间控制显示,以固定时间值预先固化在单片机中,每次只是以一定周期交替变化。但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线
3、性的,随机的,还经常受人为因素的影响。采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。它不顾当前道路上交通车辆数目的实际变化情况,其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下降。目前,有一种使用模糊控制技术控制交通灯的方法。能够根据十字路口两个方向上车辆动态状况,自动判断红绿灯时间间隔,以保证最大车流量,减少道口的交通堵塞。但是却不像定时控制,能用数字显示器显示当前灯色剩余时间,以便于驾驶员随时掌握自己的驾驶动作,及时停车或启动。2、设计任务和要求本次的课程设计任务是设计一
4、个基于单片机的带时间显示功能的交通灯, 就是模拟一个十字路口的交通灯的控制情况。 这里既要设计出红灯、绿灯、黄灯亮暗的变化情况,又要设计出在其变化期间的数码管计时情况。为确保在程序出错时的交通的正常通行,必须保证交通灯在出现故障等的情况下能够实现手动控制,以保障交通的正常进行。二、 设计原理首先了解实际交通灯的变化情况和规律。假设一个十字路口为东南西北走向。初始状态为东西南北都不亮。然后转为状态1:东西红灯通车,南北绿灯亮。过一段时间后,转换位状态2:东西红灯灭,黄灯亮,南北绿灯灭,黄灯亮。再转换为状态3:南北红灯亮,东西绿灯亮,可以通车。过一段时间后再转换到状态1。正常情况下一直循环状态1,
5、状态2和状态3。对于交通信号灯来说,应该有东西南北共四组灯,但由于同一道上的两组的信号灯的显示情况是相同的,所以只要用两组就行了,因此,采用单片机内部的I/O口上的P1口中的6个引脚即可来控制6个信号灯。通过编写程序,实现对发光二极管的控制,来模拟交通信号灯的管理。每延时一段时间,灯的显示情况都会按交通灯的显示规律进行状态转换。 通过中断子程序的,可以在原有的交通信号灯控制系统设计的基础上,增添上手动控制功能,既可以实现出现故障时的手动控制,又可以实现更加人性化的功能,比如可实现人行横道灯的人为控制。这个电路用到的核心电子元器件就是单片机,我选用的单片机型号是STC89C52RC。通过对单片机
6、进行编程,实现模拟十字路口交通灯的效果。具体要求:1、 带有时间显示功能。2、 模拟出十字路口交通灯的变化情况。3、 交通灯在特殊情况下可以由自动控制变为手动控制。三、 设计的具体实现1、 硬件电路的设计首先要说一下,电路设计中,电源的设计可谓讲究很多,可以说设计好了一个电路的电源部分,整个电路的80%已经完成了,鉴于本次课程设计的特殊性,我们只是模拟出交通灯的运行情况,这里我们只要选择电脑用的USB电源即可,USB电源标准为:+5V,500mA。我们的单片机需要+5V电源电压供电,约50mA的电流。由此看来,USB的电源完全可以带动单片机正常工作。其次要说明的是,一个硬件电路的好坏标准就我个
7、人理解应该是从电路的稳定性,电路的功耗,电路版的面积大小,元器件的价格这四方面来衡量。本着这个原则,我设计的电路分为以下几个部分,并详细介绍各部分的选择方案:1)、时钟电路部分时钟电路部分,采用外部方式时钟电路,晶振频率选择为11.0592MHz,另外需要两个30pF的陶瓷电容,电路结构如图3-1图3-12)、数码管显示部分在数码管的选择上面,本电路选择的是共阴极数码管。经过查阅相关技术资料,我所选择的数码管的具体型号是JM-S10022G-H,它的平均工作电流是4-5mA,我所选择的单片机完全可以驱动它。但为确保单片机可以更加正常的控制数码管显示,也为了增大数码管的亮度,我这里在单片机的每个
8、端口P0、P1、P2、P3上都加上了上拉电阻,并根据要求编写了共阴极数码管的子码表:0FDH,060H,0DBH,0F3H,067H,0B7H,0BFH,0E0H,0FFH,0F7H。如果您选择的数码管是共阳极数码管,请您在程序中更改相关的子码表即可。为更加真实的模拟出十字路口的交通灯的空间分布情况,我这里选择了四个数码管分别作为东西方向和南北方向的倒计时显示,硬件电路如图3-2所示:3)、交通灯灯部分LED的选择上面,数量上我们需要红、黄、绿三种不同颜色的灯光各四个。器件选择上,个人感觉不需要特意去做选择,一般情况下,大家常见的LED灯就可以满足要求,单片机也可以直接驱动其正常工作。在本次的
9、课程设计中,我假设十字路口的车辆通行方向谁双向的。即一个车道有两个方向的车辆通行,如果实际的车道为一个方向通行的单车道的话,可以拆掉一条车道上的不需要的三盏交通灯,以满足实际交通情况。这时的电路依然会正常工作,而不会受到任何的干扰为了更加形象的描述出十字路口的交通灯分布情况,我分别在东西方向和南北方向分布上六个交通灯,硬件电路图如图3-2所示:图3-24)、复位电路部分复位电路部分采用低电平复位电路,通过低电平脉冲的触发来实现单片机的复位。平时有一个高电位通过一个电阻将单片机的复位引脚拉高,防止外界干扰造成复位引脚被误触发。具体点电路如图3-3所示:图3-35)、键盘按键部分按键部分采用的是按
10、钮触发方式,通过软件编程,简单实现了防按键抖动的效果,经仿真测试和实物调试,按键部分可以满足程序设计的要求。具体的电路硬件结构如图3-4所示:图3-42、 软件编程的实现硬件电路图有了,下面就应该是根据硬件电路图来设计一个程序了。首先分析程序要完成的任务。1)、数码管的扫描部分此部分程序清单如下:;&RET0: MOV A,NUMTIM ;*数码管的动态扫描* LCALL BIN_BCD ;*A存储十位,B存储个位* MOV SHIWEI,A MOV GEWEI,B INC SCANLED MOV A,SCANLED ;*A=0X01、0X02 * MOV B,#4 ;* DIV AB MOV
11、 A,B;*A=B=0X01* RL A MOV DPTR,#TAB_SCAN0 JMP A+DPTR;* TAB_SCAN0:AJMP SCAN_L1 AJMP SCAN_L2SCAN_L1: MOV P2,#11111011B ;熄灭数码管 MOV A,SHIWEI ;A=0X01 JMP END_SCANSCAN_L2: MOV P2,#11111100B ;P2=FD,点亮位码 MOV A,GEWEI ; A=0X01 JMP END_SCANEND_SCAN:MOV DPTR,#TABLE; MOVC A,A+DPTR; ;取共阴字码表值 MOV P0,A; ;数码管依次显示0 、1
12、、2. . MOV A,LED; MOV P1,A; ;熄灭LED灯 POP PSW POP ACCRETI ;*;省略部分代码TABLE:DB 0FDH,060H,0DBH,0F3H,067H,0B7H,0BFH,0E0H,0FFH,0F7H ;共阴字码表;&代码分析:程序初始化完成后。正常情况下,在中断0没有发生的时候。首先进入的中断就是定时计数器0中断。程序根据初始化的初值分别将数码管要显示的段码的十位和各位放入寄存器A和B中。接下来使数码管的位码有效,再通过查表程序,查得数码管要显示的数值,并把数值显示在数码管上。2)、LED灯的控制部分:此部分程序清单如下:;&RED_LIGHT:M
13、OV LED,#11111100B; ;红灯缓冲区赋值 MOV NUMTIM,RED;NUMTIM=10 DEC RED; MOV A,RED; ;A=0X09、0x08. . CJNE A,#0FFH,RET0 MOV RED,#10 ;红灯定时10s MOV A,SCANMODE ADD A,#01H MOV SCANMODE,A JMP RET0YEL_LIGHT:MOV LED,#11110011B MOV NUMTIM,YELLOW DEC YELLOW MOV A,YELLOW CJNE A,#0FFH,RET0 MOV YELLOW,#3 ;黄灯定时3s MOV A,SCANMO
14、DE ADD A,#01H MOV SCANMODE,A JMP RET0GRE_LIGHT:MOV LED,#11001111B MOV NUMTIM,GREEN DEC GREEN MOV A,GREEN CJNE A,#0FFH,RET1 MOV GREEN,#10 ;绿灯定时3s MOV A,SCANMODE ADD A,#01H MOV SCANMODE,A RET1:JMP RET0 BIN_BCD:MOV B,#10 ;个位、十位分离 DIV AB RET DELAY: MOV R5,#02 ;延时子程序 D1: MOV R6,#200 D2: MOV R7,#200 DJNZ
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 时间 显示 交通灯
