




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
洛阳理工学院课程设计基于单片机的交通灯设计摘要本设计是一个以微电子技术,计算机和通信技术为先导的,而计算机技术怎样与实际应用更有效的结合并有效的发挥其作用是科学界最热门的话题,也是当今计算机应用中空前活跃的领域。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。本系统由单片机系统、按键、四位数码管显示、交通灯演示系统组成。设计一个用于东西、南北走向的交通管理。系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。本系统结构简单,操作方便;可实现自动控制,具有一定的智能性;对优化城市交通具有一定的意义。本设计将各任务进行细分包装,使各任务保持相对独立;能有效改善程序结构,便于模块化处理,使程序的可读性、可维护性和可移植性都得到进一步的提高。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 本文主要从单片机的应用上来实现十字路口交通灯智能化的管理,用以控制过往车辆的正常运作。关键词:交通灯,单片机,AT89C52目录第1章 绪论.11.1 交通灯设计意义与背景 . . .11.1.1 背景 . . .11.1.2 交通灯现状 .1第2章 系统总体设计 .2 2.1 方案的选择. . .2 2.2 系统总体设计. . . .2第3章 硬件设计 . .4 3.1 硬件选型 . .4 3.2 硬件电路设计.4 3.2.1 时钟电路模块. .43.2.2 数码管显示模块 . .53.2.3交通灯灯模块.63.2.4复位电路模块 .73.2.5键盘按键模块.7第4章 软件设计 .94.1 软件编程. . 94.1.1 数码管的扫描部分.94.1.2 LED灯的控制部分 .104.1.3 手动控制模块. .114.1.4 模拟实验程序. 124.1.5主程序 12 4.1.6中断子程序. .13 4.1.7定时器模块.13 4.1.8显示子程序.14 4.2系统流程图 .16第1章 绪论1.1 交通灯设计的背景与意义1.1.1 背景为确保十字路口的车辆顺畅通行,几乎每个国家都在交通流量相对较大的十字道口设置交通信号灯,用来管理各个方向的车辆的通行。众所周知,红绿灯是交通法规的无声命令,是司机和行人的行为准则。1.1.2交通灯现状目前,国内的大多数城市正在使用的是自动的红绿交通灯,它具有固定的红灯、绿灯转换间隔,并自动切换。它们一般由通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯三部分组成。在交通灯的通行与禁止时间控制显示中,通常要么东西、南北两方向各50秒;要么根据交通规律,东西方向60秒,南北方向40秒,时间控制都是固定的。交通灯的时间控制显示,以固定时间值预先固化在单片机中,每次只是以一定周期交替变化。但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的,随机的,还经常受人为因素的影响。采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。它不顾当前道路上交通车辆数目的实际变化情况,其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下降。目前,有一种使用模糊控制技术控制交通灯的方法。能够根据十字路口两个方向上车辆动态状况,自动判断红绿灯时间间隔,以保证最大车流量,减少道口的交通堵塞。但是却不像定时控制,能用数字显示器显示当前灯色剩余时间,以便于驾驶员随时掌握自己的驾驶动作,及时停车或启动。第2章 系统总体设计2.1 方案的选择2.1.1设计方案本次的课程设计任务是设计一个基于单片机的带时间显示功能的交通灯, 就是模拟一个十字路口的交通灯的控制情况。 这里既要设计出红灯、绿灯、黄灯亮暗的变化情况,又要设计出在其变化期间的数码管计时情况。为确保在程序出错时的交通的正常通行,必须保证交通灯在出现故障等的情况下能够实现手动控制,以保障交通的正常进行。2.2 系统总体设计2.2.1系统总体设计首先了解实际交通灯的变化情况和规律。假设一个十字路口为东南西北走向。初始状态为东西南北都不亮。然后转为状态1:东西红灯通车,南北绿灯亮。过一段时间后,转换位状态2:东西红灯灭,黄灯亮,南北绿灯灭,黄灯亮。再转换为状态3:南北红灯亮,东西绿灯亮,可以通车。过一段时间后再转换到状态1。正常情况下一直循环状态1,状态2和状态3。对于交通信号灯来说,应该有东西南北共四组灯,但由于同一道上的两组的信号灯的显示情况是相同的,所以只要用两组就行了,因此,采用单片机内部的I/O口上的P1口中的6个引脚即可来控制6个信号灯。通过编写程序,实现对发光二极管的控制,来模拟交通信号灯的管理。每延时一段时间,灯的显示情况都会按交通灯的显示规律进行状态转换。 通过中断子程序的,可以在原有的交通信号灯控制系统设计的基础上,增添上手动控制功能,既可以实现出现故障时的手动控制,又可以实现更加人性化的功能,比如可实现人行横道灯的人为控制。系统总框图如图2-1所示。图2-1 系统总框图第3章 硬件设计3.1 硬件选型3.1.1 硬件选型电路设计中,电源的设计可谓讲究很多,可以说设计好了一个电路的电源部分,整个电路的80%已经完成了,鉴于本次课程设计的特殊性,我们只是模拟出交通灯的运行情况,这里我们只要选择电脑用的USB电源即可,USB电源标准为:+5V,500mA。我们的单片机需要+5V电源电压供电,约50mA的电流。其次要说明的是,一个硬件电路的好坏标准就我个人理解应该是从电路的稳定性,电路的功耗,电路版的面积大小,元器件的价格这四方面来衡量。3.2 硬件电路设计3.2.1 时钟电路模块时钟电路部分,采用外部方式时钟电路,晶振频率选择为11.0592MHz,另外需要两个30pF的陶瓷电容,电路结构如图3-1。图3-1时钟电路结构3.2.2 数码管显示模块在数码管的选择上面,本电路选择的是共阴极数码管。经过查阅相关技术、资料,我所选择的数码管的具体型号是JM-S10022G-H,它的平均工作电流是4-5mA,我所选择的单片机完全可以驱动它。但为确保单片机可以更加正常的控制数码管显示,也为了增大数码管的亮度,我这里在单片机的每个端口P0、P1、P2、P3上都加上了上拉电阻,并根据要求编写了共阴极数码管的子码表:0FDH,060H,0DBH,0F3H,067H,0B7H,0BFH,0E0H,0FFH,0F7H。选择了四个数码管分别作为东西方向和南北方向的倒计时显示,硬件电路如图3-2所示。如图3-2 硬件电路3.2.3交通灯灯模块LED的选择上面,数量上我们需要红、黄、绿三种不同颜色的灯光各四个。在本次的课程设计中,我假设十字路口的车辆通行方向谁双向的。即一个车道有两个方向的车辆通行,如果实际的车道为一个方向通行的单车道的话,可以拆掉一条车道上的不需要的三盏交通灯,以满足实际交通情况。这时的电路依然会正常工作,而不会受到任何的干扰为了更加形象的描述出十字路口的交通灯分布情况,我分别在东西方向和南北方向分布上六个交通灯,硬件电路图如图3-2所示。图3-3交通灯模块电路图3.2.4 复位电路模块复位电路部分采用低电平复位电路,通过低电平脉冲的触发来实现单片机的复位。平时有一个高电位通过一个电阻将单片机的复位引脚拉高,防止外界干扰造成复位引脚被误触发。具体点电路如图3-4所示。图3-4 复位模块电路图3.2.5键盘按键模块按键部分采用的是按钮触发方式,通过软件编程,简单实现了防按键抖动的效果,经仿真测试和实物调试,按键部分可以满足程序设计的要求。具体的电路硬件结构如图3-5所示。图3-5键盘按键模块电路图第4章 软件设计4.1 软件编程4.1.1 数码管扫描模块程序如下:RET0: MOV A,NUMTIM ;数码管的动态扫描 LCALL BIN_BCD ; A存储十位,B存储个位 MOV SHIWEI,A MOV GEWEI,B INC SCANLED MOV A,SCANLED ; MOV B,#4 ; DIV AB MOV A,B; 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、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中。接下来使数码管的位码有效,再通过查表程序,查得数码管要显示的数值,并把数值显示在数码管上。4.1.2 LED灯的控制模块程序如下:RED_LIGHT:MOV 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,SCANMODE 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 R7,$ DJNZ R6,D2 DJNZ R5,D1 RET;代码分析:程序进入LED显示部分以后,先是点亮相应的LED灯,然后调用数码管扫描程序,然后根据预先设定的倒计时初值进行动态扫描,直到倒计时结束,此段LED灯熄灭。跳到下一个状态重复上述步骤。4.1.3 手动控制模块程序如下:INTT0: PUSH ACC PUSH PSW SETB P2.1 ;熄灭数码管 SETB P2.2 MOV P1,#0FFH ;熄灭灯LP: JNB P2.4,L1 ;红灯 JNB P2.5,L2 ;东西方向交通灯控制黄灯 JNB P2.6,L3 ;绿灯 JMP LPL1: LCALL DELAY JB P2.4,LP MOV P1,#0FCH AJMP LPL2: LCALL DELAY JB P2.5,LP MOV P1,#0F3H AJMP LPL3: LCALL DELAY JB P2.6,LP MOV P1,#0CFH AJMP LP POP PSW POP ACC JMP INTT0;代码分析:当外部中断0发生时,程序进入此段中断子程序。进入此段中断子程序后程序会将数码管的位码全部置“1”,熄灭所有数码管,然后进入循环检测部分。不停的检测P2.5、P2.5、P2.6这三个位的状态是否为“0”,如果是,则跳转到相应位置,先消除按键抖动,然后点亮对应的数码管,实现交通灯的手动控制。4.1.4 模拟实验程序 GEWEI EQU 21H ;个位数据 SHIWEI EQU 23H ;十位数据 SCANLED EQU 25H SCANMODE EQU 26H RED EQU 28H ;定义灯的缓冲区 GREEN EQU 29H YELLOW EQU 32H NUMTIM EQU 33H LED EQU 34H ORG 000H JMP START ORG 0003H ;外中断0入口地址 JMP INTT0 ORG 0BH ;定时器0中断入口 JMP TIMER0 4.1.5主程序: ORG 100HSTART:MOV SP,#50H MOV R0,#20H ; MOV R5,#20 CLR0:MOV R0,#00H ; R0=34H时结束循环,起延时 INC R0 DJNZ R5,CLR0 ; MOV TMOD,#01H ;设置定时器工作方式 MOV TH0,#HIGH(65536-5000);定时器0赋初值 MOV TL0,#LOW(65536-5000) SETB TR0 ;开启定时器0(计时0.5S) SETB IT0 ;下降沿触发 SETB PX0 ;设置优先级 MOV IE,#10000011B MOV P0,#0FFH; MOV P1,#0FFH MOV P2,#00H MOV P3,#0FFH MOV R3,#10 MOV R2,#3;端口初始化 MOV R1,#10 MOV R7,#200 MOV RED,#10 ;红灯定时10s MOV YELLOW,#3 ;黄灯定时3s MOV GREEN,#10 ;绿灯定时10秒 MOV NUMTIM,#10 MOV LED,#0FFH ; AJMP $4.1.6 中断子程序INTT0: PUSH ACC PUSH PSW SETB P2.1 ;熄灭数码管 SETB P2.2 MOV P1,#0FFH ;熄灭灯LP: JNB P2.4,L1 ;红灯 JNB P2.5,L2 ;东西方向交通灯控制黄灯 JNB P2.6,L3 ;绿灯 JMP LPL1: LCALL DELAY JB P2.4,LP MOV P1,#0FCH AJMP LPL2: LCALL DELAY JB P2.5,LP MOV P1,#0F3H AJMP LPL3: LCALL DELAY JB P2.6,LP MOV P1,#0CFH AJMP LP POP PSW POP ACC JMP INTT04.1.7 定时器模块:负责交通灯的计时和数码管动态扫描程序如下: TIMER0:PUSH ACC PUSH PSW MOV TH0,#HIGH(65536-5000) ;定时器0重装初值 MOV TL0,#LOW(65536-5000) DJNZ R7,RET0 ;R7非0,跳到RET0(数码管扫描) MOV R7,#200 ;重新赋值 MOV A,SCANMODE ;调用扫描 MOV B,#4; DIV AB ; A、B清零,延时 MOV A,B ; RL A MOV DPTR,#TAB_SCAN JMP A+DPTR;跳到TAB_SCAN处TAB_SCAN: AJMP RED_LIGHT AJMP YEL_LIGHT AJMP GRE_LIGHT AJMP YEL_LIGHT RET0: MOV A,NUMTIM ;数码管的动态扫描 LCALL BIN_BCD ;A存储十位,B存储个位 MOV SHIWEI,A MOV GEWEI,B INC SCANLED MOV A,SCANLED ; MOV B,#4 ; DIV AB MOV A,B; 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,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江西吉安市青原区司法局招聘2人考试备考试题及答案解析
- 2025甘肃中铁西北科学研究院有限公司评估中心招聘考试备考试题及答案解析
- 2025年康复医疗服务体系与康复医疗设备产业协同发展报告
- 2025年数控机床智能化升级技术路径与产业变革报告
- 2025年消费金融用户画像精准营销策略与行业动态报告
- 合肥市二手房市场价格的多维度解析与影响因素探究
- 合成孔径雷达快速时域成像算法:原理、优化与应用探索
- 合作学习:开启高中生物教学的新征程
- 2025年足彩胜负彩过滤服务协议书范本3篇
- 教师招聘之《幼儿教师招聘》能力检测试卷附答案详解(黄金题型)
- 当代世界经济与政治第二章课件
- 初级社会工作实务全本课件
- PS考试试题及答案
- 新都区文化产业发展建议报告
- 时代邻里4度°服务美学品质关怀体系
- 养老机构行政值班查房记录表格
- EPC合同条件(银皮书)-1999
- 外研版五年级上册英语(全册)单元教材分析
- 华为-计划、预算和核算
- 细胞凋亡和细胞自噬(课堂PPT)
- 第一章光的电磁理论ppt课件
评论
0/150
提交评论