单片机模拟交通灯系统设计报告.doc_第1页
单片机模拟交通灯系统设计报告.doc_第2页
单片机模拟交通灯系统设计报告.doc_第3页
单片机模拟交通灯系统设计报告.doc_第4页
单片机模拟交通灯系统设计报告.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计说明书课程设计名称: 专业课程设计 课程设计题目: 交通灯模拟控制系统 学 院 名 称: 信息工程学院 专业: 电子信息工程 班级: 学号: 姓名: 评分: 教师: 20 13 年 7 月 2 日由每位学生填写、由任教教师保存待查摘 要本论文是以十字路口交通灯的控制系统为研究对象,以交通控制基本理论为基础,运用单片机技术原理和应用,对智能交通的控制系统进行分析研究并做出模拟应用。文章论述了基于stc89c51单片机的交通灯控制系统,以stc89c51作为系统的控制元件,扩展一片8255芯片,8255的pa口作为基本输出,点亮发光二极管,即控制红黄绿等的亮灭。电路主要包括:单片机主控模块、8255扩展模块、红绿灯显示模块、紧急放行按键模块。本系统简单模拟现有的交通灯系统,实现十字路口南北方向和东西方向交替亮绿灯即放行,且有黄灯闪烁3秒提醒放行方向即将改变,红灯时间维持13秒,绿灯维持10秒。另外,系统还设计了紧急放行按键,可强行对相应的方向放行。本系统实用性强、操作简单、扩展功能强。关键词:单片机、8255、交通灯目 录摘要2第1章 设计要求4 1.1 设计要求4 1.2 设计思路4第2章 系统组成及工作原理5 2.1 系统组成52.1.1 单片机stc89c51介绍52.1.2 8255芯片介绍72.1.3 发光二极管92.1.4 紧急放行按键9 2.2 交通灯系统工作原理9第3章 硬件电路方案设计10 3.1 设计方案10 3.2 单元电路设计103.2.1 时钟电路模块103.2.2 单片机控制模块及紧急按键模块103.2.3 8255扩展模块123.2.4 led红绿灯显示13第4章 软件设计14 4.1 单片机和8255资源使用情况14 4.2 软件各模块介绍14第5章 调试与结果16 5.1 软件调试16 5.2 硬件调试18第6章 结论19参考文献20附录a21附录b22附录c2330第一章 设计要求 1.1 设计要求:1、用单片机扩展一片8255,用12 个发光二极管模拟一个十字交叉路口的红、绿、黄灯,并设置二个紧急放行按键。2、正常行驶时,东西或南北方向的灯按绿灯亮10 秒,黄灯闪烁3 秒,红灯亮12 秒控制。3、 当东西或南北方向的紧急放行按键按下时,如果禁行方向为红灯,则红灯 继续维持12 秒;如果禁行方向为绿灯,则立即变为黄灯闪烁3 秒;如果禁行方向为黄灯,则黄灯继续维持。 1.2 设计思路1、分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出 自己的交通控制的初步方案。2、确定系统交通控制的总体设计,包括,十字路口具体的通行禁行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实现基本的交通功能,还有倒计时显示提示、紧急情况下,全面禁行、黄绿红灯及左转周期随时可调这三项项特特殊功能。3、进行显示电路,按键电路的设计和对各器件的选择及连接,大体分配各个器件及模块的基本功能要求。4、进行软件系统的设计,对于本系统,本人采用单片机汇编语言编写,对单片机内部结构和工作情况做了充足的研究,了解中断以及延时原理,总体上完成了软件的编写。然后在开发板上进行硬件调试。 第二章 系统组成及工作原理 2.1 系统组成 本系统包括单片机主控模块、8255扩展模块、红绿灯显示模块、紧急放行按键模块。系统框图如图2.1所示: 图2.1 系统组成框图 2.1.1 单片机stc89c51介绍 stc89c51提供以下标准功能:8字节flash闪速存储器,256字节内部 ram , 32个i/o口线,3个16 位定时计数器,一个6向量两级中断结构, 一个全双工串行通信口,片内振荡器及时钟电路。同时,at89c52可降至零 赫兹的静态逻辑操作,并支持两种软件可选的节电上作模式。空闲方式停止 cpu 的工作,但允许ram,定时计数器串行通信口及中断系统继续工作。 掉电方式保存ram 中的内容,但振荡器停止工作并禁止其它所有部件工作 直到下一个硬件复位。stc89c52的引脚图如图2.2所示,下面是对部分引脚功能的介绍。p0:p0口是一组8位漏极开路型双向1/o 口,也即地址/数据总线复用口。作为输出口用时每位能吸收电流的方式驱动8个ttl 逻辑门电路,对端口p0 写“1”时,可作为高阻抗输入端用。p0口也可以配置为复低位地址/数据总线和内存数据访问外部程序。在这种模式下,p0具有内部上拉电阻。在flash由编程时,p0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。p2:p2 是一个带有内部上拉电阻的8位双向i/o口,p2的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑电路。对端口p2写“l,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(llt )。在访问外部程序存储器或16位地址的外部数据存储器(例如执行movxdptr 指令)时,p2送出高8 位地址数据。在访问8位地址的外部数据存储器、如执行movxri指令)时,p2口输出p2锁存器的内容。flash编程或校验时,p2亦接收高位地址和一些控制信号。 p3 :p3 口是一个具有内部上拉电阻的8 位双向i/o 口,p2 输出缓冲器能驱动4 个ttl 逻辑电平。对p3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。p3口亦作为at89s52特殊功能(第二功能)使用。在flash编程和校验时,p3口也接收一些控制信号。端口引脚第二功能p3.0 rxd(串行输入口) p3.1 txd(串行输出口) p3.2 into(外中断0) p3.3 int1(外中断1) p3.4 to(定时/计数器0)p3.5 t1(定时/计数器1) p3.6 wr(外部数据存储器写选通) p3.7 rd(外部数据存储器读选通) 此外,p3口还接收一些用于flash闪存编程和程序校验的控制信号。rst:复位输入。当振荡器工作时,rst引脚出现两个机器周期以上高电平将使单片机复位。ea/vpp:外部访问允许。欲使cpu 仅访问外部程序存储器(地址为0000h-ffffh ) , ea端必须保持低电平(接地)需注怠的是:如果加密位lbi被编程,复位时内部会锁存ea端状态。如ea端为高电平(接vcc端)。flash存储器编程时,该引脚加上+12v的编程允许电源vpp ,当然这必须是该器件是使用12v编程电压vpp 。xtal1:振荡器反相放大器的及内部时钟发生器的输入端xtal2:振荡器反相放大器的输出端。 图2.2 stc89c51引脚图 2.1.2 8255芯片介绍 8255是 可编程并行i/o接口芯片,有3个8位并行i/o口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口a、b、c口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与cpu连接部分、与外设连接部分、控制部分。1、 与cpu连接部分 根据定义,8255能并行传送8位数据,所以其数据线为8根d0d7。由于8255具有3个通道a、b、c,所以只要两根地址线就能寻址a、b、c口及控制寄存器,故地址线为两根a0a1。此外cpu要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。8255引脚图如图2.3所示,各信号的引脚编号如下:(1)数据总线db:编号为d0d7,用于8255与cpu传送8位数据。(2)地址总线ab:编号为a0a1,用于选择a、b、c口与控制寄存器。(3)控制总线cb:片选信号、复位信号rst、写信号、读信号。当cpu要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。 2、与外设接口部分根据定义,8255有3个通道a、b、c与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下:(1)a口:编号为pa0pa7,用于8255向外设输入输出8位并行数据。(2)b口:编号为pb0pb7,用于8255向外设输入输出8位并行数据。(3)c口:编号为pc0pc7,用于8255向外设输入输出8位并行数据,当8255工作于应答i/o方式时,c口用于应答信号的通信。 3、控制器 8255将3个通道分为两组,即pa0pa7与pc4pc7组成a组,pb0pb7与pc0pc3组成b组。如图7.5所示,相应的控制器也分为a组控制器与b组控制器,各组控制器的作用如下:(1)a组控制器:控制a口与上c口的输入与输出。(2)b组控制器:控制b口与下c口的输入与输出。 图2.3 8255引脚图 2.1.3 发光二极管 发光二极管简称为led。由镓(ga)与砷(as)、磷(p)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。发光二极管正极接高电平时,负极为低电平择灯亮。 2.1.4 紧急放行按键 本系统需两个紧急按键,实现当某个方向车流量较大时延长放行时间或紧急改变放行方向。 2.2 交通灯系统工作原理 东西、南北两干道交于一个十字路口,各干道有一组红黄绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行,黄灯亮提示人们注意红、绿灯的状态即将切换,切黄灯点亮时间为东西、南北两干道的公共停车时间。程序设置初始状态为东西方向绿灯、南北方向红灯,单片机执行程序,控制交通灯状态转换,包括延时,紧急放行。扩展的8255pa口输出控制红黄绿等的亮灭。第三章 硬件电路方案设计3.1 设计方案本设计采用单片机atc89c51芯片扩展一片8255,实现交通灯的模拟控制。选用频率为12mhz的晶振,则一个时钟周期为1us(t=12/12mhz)。atc89c51的p0口配置为复低位地址/数据总线与8255芯片的数据总线db相连,p2送出高8 位地址数据,外部中断int0和int1接紧急放行按键。8255的pa口接发光二极管的负极,使pa口向外设输出8位并行数据,控制发光二极管的亮灭。 本实验包括四种状态: s1:东西绿灯亮,南北红灯亮 s2:东西黄灯闪烁,南北红灯亮 s3:东西红灯亮,南北绿灯亮 s4:东西红灯亮,南北黄灯闪烁3.2 单元电路设计 3.2.1 时钟电路模块 时钟电路如图3.1所示,电容选取30pf,晶振频率为12mhz,一个时钟周期为1us(12/12mhz)。c2、c3为谐振电容,有起振作用。 图3.1 时钟电路模块 3.2.2 单片机控制模块及紧急按键模块 本系统中单片机作为核心控制元件,提供定时器和中断服务,定时器t0工作在方式1,p0和p2口是扩展8255的地址端,其中p2.7接8255片选信号,使能8255,p2.6、p2.5分别接8255的端口选择a1、a0。紧急放行按键接外部中断,按下发送中断请求。系统上电按初始化状态东西绿灯亮,南北红灯亮开始运行,通过定时器定时实现延时,达到红绿灯维持的时间,按下紧急按钮时,系统响应中断请求,执行中断服务程序,实现紧急放行。具体硬件连线如图3.2和图3.3所示。 图3.2 单片机控制模块 图3.3 紧急按键模块 3.2.3 8255扩展模块 8255的d0d7为数据总线,接单片机p0口,pa口设向外输出接红绿黄灯(pa.0-pa.5)。在电路仿真时为了便于观察红绿黄灯维持时间,将pb口设输出,接数码管显示红绿灯时间,pc口低四位输出,接数码管显示黄灯时间。因设计要求对数码管显示没有要求,在实体电路中省略数码管部分。具体设计如图3.4和图3.5所示。 图3.4 8255扩展模块 图3.5 数码管显示模块 3.2.4 led红绿灯显示 发光二极管正极接vcc,负极接8255 pa口,低电平灯亮。具体电路如图3.6所示: 图3.6 红绿灯显示模块电路 第四章 软件设计4.1 单片机和8255资源使用情况编写汇编程序时,用到了单片机的外部中断0,并且让它以下降沿有效方式工作;还用到定时器t0,让它工作在定时器方式1.p0、p2、p3口均有用到,且有用到p3口的第二功能。p0、p2作为扩展8255的端口地址,8255的pa、pb、pc均作为外设输出,控制红黄绿灯的亮灭和数码管显示倒计时。4.2 软件各模块介绍(1)延时子程序 延时程序实现延时1s,在显示函数中也有用到,由于时间比较短,就采用纯软件的方法延时。 定时初值的计算:(65536-a)x1us=50ms,a=15536d=3cb0h(2)按键处理和按键查询程序 按键处理程序主要是将从int0、int1取值向单片机发送中断请求,按键查询程序主要是判断按键是否有按下,如果有则调用按键处理程序。(3)外部中断程序 本设计是用外部中断程序来实现紧急放行。外部中断程序里面用到的延时1s和正常通车时用到的延时1s不是同一个延时函数,因为按键扫描时加在正常通车时的延时1s中,这样是为了防止其他按键影响中断服务的运行。(4)数码管显示子程序 显示程序主要完成数码管的动态显示,相应的段控码送往8255的pb口及pc口。实现显示需要的字符信息。(5)主程序 主程序是程序的入口,在主程序中设置硬件电路的初始状态,按状态转换顺序写入各状态,且一直调用延时子程序和显示程序,实现通车时间的控制。(6)主程序流程图 图4.1程序流程图第5章 调试与结果5.1 软件调试 软件调试主要是利用proteus仿真软件完成电路的搭建,运行以发现设计中的错误并及时改正。在此过程中有数码管显示倒计时时间,pb口和pc口低四位对数码管输入段控码。加载在c51单片机中的程序是在keil中编译生成的文件。图5.1、图5.2、图5.3为仿真过程中的截图。 图5.1仿真运行截图图5-1所示的状态是状态1,即东西方向绿灯,南北方向红灯,数码管左边两位显示的是东西绿灯倒计时时间,右边两位是显示黄灯倒计时时间。若此时按下紧急放行按键则黄灯开始闪烁,东西绿灯灭,3s后变为东西红灯亮,南北绿灯亮如图5.2。 图5.2 仿真运行截图 图5.3仿真运行截图图5.3所示的状态是状态4,即东西红灯,南北黄灯闪烁,数码管显示的分别是东西红灯倒计时时间和黄灯倒计时时间。5.2 硬件调试在软件仿真成功的基础上,领取元器件焊接实体电路。硬件调试主要是检查是否有短路、断路、虚焊等,所以在焊接电路时便一边用万用表检测是否存在这些问题。焊接完成后,使用单片机开发板将程序下载到单片机中,然后连接电源线和地线,上电观察系统工作现象。下面是调试过程中遇到的一些问题及其解决办法。(1) 第一次上电调试的现象是十二个发光二极管全亮。首先,检查电源与地线是否全部接上,是否有接反。确认无误后继续对照原理图,检查各个器件之间的连接是否连接正确,尤其是单片机与8255之间的连线,结果也不存在问题。最后检查连个芯片是否正常工作,通过查看c51的ale4端是否有脉冲信号输出来判断单片机是否工作,结果发现单片机芯片是坏的,8255正常。(2) 更换芯片后重新上电调试,结果发光二极管全是暗的。经过前面的检查几乎可以确定电路焊接是没有问题的,需要改变检查的思路。首先,分析灯亮的条件是发光二极管的负极即8255的pa口对应的引脚要输出低电平,检测结果是pa口引脚均为高电平。仔细分析得到的结论是:在前一次上电调试时8255的pa口全部是高电平,而此次调试中没有接8255的复位信号,所以pa口仍是输出高电平。将c51的rst引脚与8255的rest引脚连接后,再上电调试,系统正常工作,功能与设计要求相符。第6章 结论 此次课程设计实现的是一个交通灯模拟控制系统,用单片机扩展一片8255,用12 个发光二极管模拟一个十字交叉路口的红、绿、黄灯,并设置二个紧急放行按键。在正常情况下,东西、南北方向交替放行,绿灯维持10秒,红灯维持13秒,黄灯在绿灯灭后闪烁3秒。当东西或南北方向的紧急放行按键按下时,如果禁行方向为红灯,则红灯继续维持12 秒;如果禁行方向为绿灯,则立即变为黄灯闪烁3 秒;如果禁行方向为黄灯,则黄灯继续维持。本系统能够正常工作,切能实现设计要求中的各功能,此次课程设计是成功的。本次课程设计时间非常短暂,但获得的收获是非常大的。通过动手实际操作,对编程和焊接有了新的认识。本系统的程序不同于平时实验课上要求的简单程序,所以应该先编写各个模块的子程序,这样看起来简洁,增加了程序的易读性。本次课程设计为两人一组,在编写程序、硬件电路设计、焊接、调试等过程中都是一起努力,增强了同学之间学习上的交流,可以互相弥补各自的不足,也培养了团队合作能力。 参考文献1 张先庭,等.单片机原理、接口与c51应用程序设计.北京:国防工业出 版社,2011.12.2 楼然苗,等.51 系列单片机设计实例.北京:北京航空航天出版社,2009.3.3 李广弟,等.单片机基础.北京:北京航空航天出版社,2006.7.4 张友德,等.单片微型机原理、应用与实验.上海:复旦大学出版社,2006.5 苏家健,等.单片机原理即应用技术.北京:高等教育出版社,2004.6 李光飞.单片机课程设计实例指导.北京:北京航空航天大学出版社, 2004.附录a表一 元件清单元件名称性能参数数量元件名称性能参数数量stc89c511个82551个电容30pf2个电容47uf1个电阻10k3个电阻330欧12个电阻5k1个发光二极管红、黄、绿各4个晶振12mhz1个开关2个附录b 整体电路图附录c程序清单;*主程序org 0000h ;起始伪指令ajmp storg 000bh ;000bh为定时器0中断源服务程序入口地址 ajmp int_0org 0100hst: mov sp,#67h mov r1,#00hmov tmod,#01h ;选择定时器t0,方式1setb ea ;ea=1,开放中断setb et0 ;et0=1,t0的溢出中断允许mov dptr,#7fffh ;送8255控制口地址mov a,#80h ;送8255控制字,选择pa口方式0输出,pbmovx dptr,a 口方式0输出,pc口输出 ;*状态1lp:mov dptr,#1fffh ;8255a口地址mov a,#0deh ;红绿灯初始状态,东西绿灯,南北红灯movx dptr,asetb 40h clr 41hmov 31h,#200 mov r2,#10 ;绿灯维持10s mov 36h,#13 ;红灯维持13sacall dly_s ;调用延时子程序mov r7,#03h setb 41hmov r2,#2 ;*状态2lp0: mov dptr,#1fffh mov a,#0eeh ;东西黄灯亮,南北红灯亮movx dptr,amov 31h,#10acall dly_s ;调用延时子程序mov dptr,#1fffhmov a,#0feh ;东西黄灯灭,南北红灯亮movx dptr,amov 31h,#10acall dly_s djnz r7,lp0 ;通过黄灯交替亮灭三次实现黄灯闪烁3次 ;*状态3mov dptr,#1fffhmov a,#0f3h ;东西红灯,南北绿灯clr 40hclr 41hmovx dptr,amov 31h,#200mov r2,#13mov 36h,#10acall dly_smov r7,#03h mov 36h,#2 ;*状态4lp1: mov a,#0f5h ;南北黄灯亮,东西红灯setb 41hmov dptr,#1fffhmovx dptr,amov 31h,#10acall dly_smov dptr,#1fffhmov a,#0f7h ;南北黄灯灭,东西红灯movx dptr,aacall dly_sdjnz r7,lp1 ;黄灯闪烁三次ajmp lp ;*延时子程序dly_s: clr f0 mov 30h,#00hsetb tr0 ;启动定时器t0mov th0,#3ch ;送定时初值,3cb0h对应定时时间50msmov tl0,#0b0h (65536-a)x1us=50ms,a=15536d=3cb0h;*按键查询d0:jb p3.2,d1 ;查询外部中断0是否有中断请求,即按键是否acall megent 按下sjmp d2d1:jb p3.3,d2 ;查询外部中断0是否有中断请求,即按键是否 acall megent1 按下d2:mov r6,#20hdjnz r6,$ ;r6不减为0,则等待,20x50ms=1sacall displ ;调用数码管显示子程序jnb f0,d0clr tr0ret ;*紧急放行按键处理megent: ;南北放行按键处理 jnb40h,m1 jb 41h,m1 ;东西绿灯,南北红灯时响应中断,改变放行方 setb f0 向 m1:retmegent

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论