




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计题 目 十字路口交通灯控制 二级学院 机电工程学院 专 业 班 级 学 号 学生姓名 指导老师 洪云 十字路口交通灯控制【摘 要】近年来随着科技的飞速发展,单片机的应用正在不断的深入,同时带动传统的控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为核心器件来使用,根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不絮。靠的是交通信号灯的自动指挥系统。本系统采用MSC-51系列单片机AT89C51作为中心器件来设计交通灯控制器,根据车流量设置红、绿灯燃亮时间的功能;红绿灯循环点亮,黄灯作为缓冲指示灯。在运行过程中,通过MAX7219驱动四组两位的数码管,来显示倒计时时间。本系统实用性强、操作简单、扩展功能强。【关键词】 交通灯 单片机 MSC-51 MAX7219 计时目录1 绪论11.1 课程设计目的11.2 任务与要求11.3 系统结构图12 理论分析与计算22.1 定时器初值计算22.2 通行时间的关系23 硬件设计33.1显示电路33.2 MAX7219驱动电路44 软件设计54.1 主程序54.2 定时中断子程序74.3 MAX7219驱动程序95 系统测试125.1 倒计时状态测试125.2红绿灯状态测试13 5.3系统联机测试136 总结14附录14c一、概述1.1 课程设计目的(1)综合所学的单片机原理及接口技术等课程的理论知识完成本课程设计;(2)学习并掌握基本电路设计与使用方法,单片机的编程与应用方法;(3)提高综合分析、解决实际问题的能力。1.2 任务和要求本设计基于AT89C52单片机,可用单片机控制信号灯的状态变化,基本可以指挥交通的基本通行。用单片机控制红、黄、绿LED灯模拟指示,模拟东西方向的十字路口交通信号控制情况。 东西向通行时间为80s,南北向通行时间为60s,缓冲时间为3s。本设计主要设计指标:(1) 红绿灯状态提示模块。(2) T0定时器模块,实现三种时间的定时。(3) 驱动显示模块,利用MAX7219驱动数码管的显示倒计时。1.3 系统结构图图1 系统结构图系统正常运行后,5V的稳压源给MAX7219芯片、LED信号灯和单片机供电,通过单片机内部的定时器T0产生每10ms一次的中断,每100次中断为1s。所计的时间以秒为单位,通过MAX7219驱动七段显示器倒计时输出,计满时间后产生中断,中断产生后信号灯发生相应的变化,以达到自动控制的目的。2、理论分析与计算定时器初值的计算,并掌握十进制到十六进制的转化。在进行通行时间上的控制时应注意生活中的常识。2.1 定时器初值的计算通过单片机内部的定时器T0产生每10ms一次的中断,每100次中断为1s。在本设计中所用的晶振为12MHZ,定时器T0为工作方式一。其中初值为X,定时间为m us。 (1)计算可得,定时m=10ms=10000us时,X=55536,转化为十六进制,X=D8F0H。即写入定时器的初值TH0=0xD8,TL0=0xF0。2.2 通行时间的计算A方向红灯时间=B方向绿灯时间+黄灯缓冲时间 (2)3、硬件设计根据系统结构图,系统由MAX7219驱动电路、显示电路、晶振电路、复位电路、单片机供电电路、单片机电路组成。3.1显示电路通过该电路, 行人可以清楚的看见各路口状态灯的亮灭情况,判断是否通行。同时,数码管显示剩下通行的时间,提示行人。数码管显示方面,东西南北各个方向分别用两位7段数码管,南北方向接DIG0、DIG1,东西方向接DIG2、DIG3,进行位选控制,如图2。图2 显示电路1红绿灯采用三个共阳二极管作为指示灯,南北、东西方向各个一组,分别对应数码管的倒计时。东西方向接单片机的P10 , P11 , P12口,南北方向接单片机的P00 , P01 , P02口,如图3。图3 显示电路2首先东西方向通行时间为80s,东西绿灯亮,南北红灯亮。时间到后,东西南北黄灯亮3s。然后南北方向通行时间为60s,南北绿灯亮,东西红灯亮。时间到后3s,东西南北黄灯亮3s。3.2 MAX7219驱动电路采用专用数码管显示控制芯片MAX7219。MAX7219是美国MAXI生产的串行输入/输出共阴极显示驱动器,该芯片最多可驱动8位7段数字LED显示器或多个LED和条形图显示器。图4 MAX7219驱动电路4、软件设计在硬件的基础上对软件进行设计,本程序由主程序,定时中断子程序和显示驱动子程序组成。主程序主要负责系统初始化和等待中断,以及红黄绿灯各种状态判断。定时中断子程序主要负责各个状态的定时要求,以及状态的跳转。显示驱动子程序负责倒计时时间的显示。根据系统软件设计要求将软件划分为:延时模块,状态判断模块,中断服务模块,驱动显示模块。4.1 主程序主程序完成MAX7219的初始化,定时器的初始化,状态灯的初始化并进行状态的判断。开始定时器初始化,MAX7219初始化设定初值,初始状态状态一:东西绿灯亮,南北红灯亮,倒计时80S状态二:东西黄灯亮,倒计时3S状态三:南北绿灯亮,东西红灯亮,倒计时80S状态四:南北黄灯亮,倒计时3S图 5 程序流程图进入主程序后,先初始化并开启定时器1和MAX7219芯片,再装入初始状态和初始值,然后等待中断响应。根据收到的中断响应,主程序依次判断。首先南北绿灯亮,东西红灯亮,倒计时60S;定时结束后,由中断跳转到下一个状态,再东西南北黄灯亮,倒计时3S;定时结束后,由中断跳转到下一个状态,东西绿灯亮,南北红灯亮,倒计时80S;定时结束后,再由中断跳转到下一个状态,东西南北黄灯亮,倒计时3S。依次循环执行。主要(关键)代码: void main()T0_init();MAX7219_init();EA=1;NS=83; /初始东西通行80秒EW=80; G2=0,R1=0; /东西绿灯亮,南北红灯亮while (1) uint k;display(); switch(i) case 1: G2=1;/关闭东西绿灯 Y2=0;/东西黄灯闪烁 for(k=0;k3;k+) Y2=Y2; delay(10000); break; case 2: R1=1; /南北红灯关闭R2=0,G1=0; /南北绿灯亮,东西红灯亮 break; case 3: G1=1; Y1=0;/黄灯闪烁 for(k=0;k3;k+)/循环三次进行延时闪烁 Y1=Y1; delay(10000); break; case 4: R2=1; /东西红灯关闭G2=0,R1=0; /东西绿灯亮,南北红灯亮 break; 此段程序是对状态的判断,利用switch().case语句对状态进行判断。4.2 定时中断子程序定时器子程序是进行时间的设定,并实现状态的自动跳转。跳转过后产生的中断送入主程序进行判断并输出。中断入口 状态一时间设定,状态一进入倒计时计时完毕,状态二时间设定,状态二进入倒计时计时完毕,状态三时间设定,状态三进入倒计时计时完毕,状态四时间设定,状态四进入倒计时图 6 定时中断子程序流程图设置通行时间,并利用定时器进行倒计时,其中状态一60S,其中状态二3S,其中状态三80S,其中状态四3S。关键代码介绍:void T0_(void)interrupt 1 temp+; TH0=0XD8; TL0=0XF0; if(temp=100) temp=0; NS-; EW-; if(NS=3)&(EW=0) NS=3; EW=3; i=1; if(NS=0)&(EW=0)&(i=1) NS=60; EW=63; i=2; if(NS=0)&(EW=3) NS=3; EW=3; i=3; if(NS=0)&(EW=0)&(i=3) NS=83; EW=80; i=4; display();利用if语句对计时是否完毕进行判断,如计时完毕,执行if中的内容。4.3 MAX7219驱动程序MAX7219采用串行寻址方式,在传送的串行数据中包含内部RAM的地址。加在DIN脚上的串行数据,必须在LOAD信号为高电平的前提下,以每个字节为一个数据包,在CLK信号上升沿移入16位的移位寄存器。然后在LOAD信号的上升沿锁存进数字或控制寄存器中。LOAD信号必须在第16个CLK信号上升沿的同时,或在下一个CLK信号上升沿之前升高,否则,数据会丢失。DIN脚上的串行数据在16.5个CLK信号后出现在DOUT脚上,以便级联应用时传到下一个MAX7219上。图 7 数据串行传送时序图关键代码介绍:void MAX_write(uchar ch) /以8位一个字节进行写值uchar j,ads; for(j=0;j8;j+) /8位 ads=ch&0x80; /取最高位 CLK = 0; /时钟线置低 if(ads) DIN = 1; else DIN = 0; ch=ch1; /左移一位 CLK=1; /上升沿,DIN的数据写入到7219 void MAX7219(uchar addr, uchar num)/写地址,写数据 LOAD = 0; _nop_(); MAX_write(addr); _nop_(); MAX_write(num); _nop_(); LOAD = 1; /锁存5、系统测试5.1 倒计时状态测试由Proteus仿真软件进行系统测试。图8 80S、60S计时结论:单片机内部定时器能够进行定时。5.2 红绿灯状态测试由Proteus仿真软件进行系统测试。(表1 红绿灯状态测试)60S3S80S3S东西方向红灯亮红灯保持绿灯亮黄灯闪烁南北方向绿灯亮黄灯闪烁红灯亮红灯保持结论:每个状态能够正常的跳转。5.3 系统联机测试1、接硬件图接线,为了确保东西南北红黄绿灯能够对应显示,实验时,对P1口的接线做了调整。即,P1.0接G2绿灯,P1.1接Y2黄灯,P1.2接R2红灯,P0.1接G1绿灯,P0.2接Y1黄灯,P0.3接R1红灯。2、从第一个状态开始连续运行,观察六个LED灯是否与交通显示情况对应,如果有偏差,则单步运行或断点运行,进行调试,直至满足设计要求。 3、调试完灯的显示后,从第一个状态开始连续运行,观察数码管显示的是否正常,如果不正常,则运用单步运行或断点运行进行分析和调试,直至满足要求。4、整体运行,观察灯显示和时间显示是否都符合要求,如果不符合,则再调试。直至满足要求6、总结一周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了理解。课程设计是我们专业课程知识综合应用的实践训练,这是我们迈向社会,从事职业工作前一个必不少的过程。“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。本设计在实现相应功能的时候主要是考虑到现有的条件,采用成熟度高的STC89C52作为CPU的解决方案,同时用LED灯和双位数码管作为显示模块,软件则使用了移植性好的C语言。在这次设计过程中,体现出自己单独设计单片机的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。在设计过程中,从开始设计该系统的功能,到方案的论证,再到最后的调试,每一步都显得是那么的重要,在这个过程中学习到了比这次设计本身更多的知识,除此之外,在这次设计中也奠定了我对一个工业产品设计的思维,收获颇丰。由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《航空电气设备维修》试卷1及答案
- 初二数学月考试卷及答案
- 包头东河中考试卷及答案
- 新质生产力的核心资源有哪些
- 新质生产力公考解读
- 构建和谐医患关系论文
- 媒体视角的新质生产力解读
- 有关元旦晚会活动策划方案模板
- 学校老师个人年度教学工作方案怎么写
- 2025年医学信息学技术应用能力检测答案及解析
- 消防工程劳务分包合同模板
- 【灼鼎咨询】2024年自动驾驶行业知识报告(智能驾驶、新能源汽车、NOA)
- 检维修管理制度
- 服务业绿色低碳发展
- 教材研讨问题参考答案(课件)四年级上册科学教科版
- 2024年企业现场管理5S培训课件
- 综合测试01 识记默写(高考背诵课内分篇训练)高考语文一轮复习考点帮(北京专用)
- 北京导游资格考试外语口试题四
- 高中数学必修一第一、二章综合测试卷(含解析)
- 1.3集合的基本运算(第1课时)课件高一上学期数学人教A版
- 《学前儿童卫生与保健》高职全套教学课件
评论
0/150
提交评论