基于单片机的交通灯控制系统设计毕业论文_第1页
基于单片机的交通灯控制系统设计毕业论文_第2页
基于单片机的交通灯控制系统设计毕业论文_第3页
基于单片机的交通灯控制系统设计毕业论文_第4页
基于单片机的交通灯控制系统设计毕业论文_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、基于单片机的交通灯控制系统设计摘 要:对基于单片机的交通灯控制系统进行了设计。系统功能为:以mcs-51系列单片机作为控制核心,设计并制作交通灯控制系统,东西南北四个方向具有左拐、右拐、直行及行人4种通行指示灯,用计时器显示路口通行转换剩余时间,在特种车辆如119、120通过路口时,系统可自动转为特种车辆放行,其他车辆禁止通行状态。在对系统功能分析的基础上,提出了三种设计方案,经比较,选择性能较优的led动态循环显示方案进行了设计。设计包括硬件和软件两大部分。硬件部分包括单片机最小系统、时间显示、交通灯显示三部分。选用atmel公司的at89s52单片机作为控制核心,东西南北四个方向设置了le

2、d时间显示和交通灯显示,时间显示采用三位led显示器,交通灯显示则采用红绿双色高亮发光二极管来模拟。软件采用了模块化的设计方法,主要分为主程序、定时器中断服务子程序、倒计时显示子程序、交通灯模拟显示子程序四部分。在实验板上制作了基于单片机的交通灯控制系统样机,对硬件和软件部分分别进行了调试,再进行了软硬件联调,得到的交通灯控制系统样机实物,可圆满地完成毕业设计任务书所要求的功能。关键词: 交通灯;单片机;at89s52目 录1 概 述11.1 课题研究背景与意义11.2 课题设计内容12 系统设计12.1设计方案论证12.系统硬件设计32.2.1控制模块32.2.2通行灯显示模块52.2.3时

3、间显示模块52.2.4电源电路模块52.2.5硬件电路中器件选择62.3 系统软件的设计112.3.1主程序112.3.2定时中断服务程序112.3.3特种车中断服务程序132.3.4算法分析143 系统调试143.1硬件调试153.1.1静态检查153.1.2通电检查153.2软件调试及软硬件联调153.2.1仿真器选择153.2.2仿真过程163.2.3通行灯输出调试173.2.4时间显示模块调试183.2.5特种车中断程序调试183.2.6脱机调试183.2.7实验结果194 结 束 语20参考文献21致 谢22附 录23附录1 基于单片机的交通灯控制系统电路原理图23附录2 基于单片机

4、的交通灯控制系统pcb图23附录3 基于单片机的交通灯控制系统程序清单23基于单片机的交通灯控制系统设计1 概 述 1.1 课题研究背景与意义随着经济的增长和人口的增加,人们生活方式不断变化,人们对交通的需求不断增加。城市中交通拥挤、堵塞现象日趋严重,由此造成巨大的经济与时间损失。资料显示,对日本东京268个主要交叉路口的调查估计表明:每年在交叉路口的时间延误,折成经济报失为20亿美元;而在我国北京市,当早晚交通高峰时,交叉路口处的排队长度竟达1000多米,有的阻车车队从一个交叉路口延伸到另一个交叉路口,这时一辆车为通过一交叉路口,往往需要半个小时以上,时间损失相当可观。我国是一个历史悠久、人

5、口众多的国家,城市数量随着社会的发展不断增多。随着城市化进程的大大加快,诱发的交通需求急剧增长,供需矛盾不断激化,严重的交通问题也随之而来。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊,这一切要归功于城市交通控制系统中的交通灯控制系统。交通灯控制系统对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果,使城市交通得以有效管理。交通灯可以采用plc、单片机等控制方法。利用单片机实

6、现对交通信号灯的实时控制,只要采用一块单片机,加上简单的接口与驱动放大电路,即可实现,具有成本低,可靠性高的特点。1.2 课题设计内容本课题对基于单片机的交通灯控制系统进行设计。以mcs-51系列单片机为控制核心,设计并制作交通灯控制系统,用于十字路口的车辆及行人的交通管理。东西南北四个路口具有左拐、右拐、直行及行人4种通行指示灯,并分别用计时器显示路口通行转换剩余时间,在特种车辆如119、120通过路口时,系统可自动转为特种车辆放行,其他车辆禁止通行状态。设计交通灯控制系统硬件电路与软件控制程序,对硬件电路与软件程序分别进行调试,并进行软硬件联调,要求获得调试成功的实物。2 系统设计2.1

7、设计方案论证 根据设计内容要求,提出了如下三种方案:方案一:采用at89s52单片机作为控制核心,采用四组高亮红绿双色二极管作为东西南北四个路口的通行指示灯;采用四组3位led数码管作为四个路口的通行倒计时显示器,led显示采用动态扫描方式,以节省端口数。按以上系统构架设计,单片机端口资源刚好满足要求。方案一设计框图如图-1所示。图2-1 方案一:采用led动态扫描的交通灯控制系统方案二:采用at89c2051单片机作为控制器,通行倒计时显示采用1616点阵led发光管,左拐、右拐、直行及行人4种通行指示也采用1616点阵双色led发光管。方案二设计框图如图2-2所示,led点阵的列驱动采用7

8、4ls595,用串行端口扩展实现,行驱动采用1/16译码器74ls154动态扫描,译码器74ls154生成16条行选通信号线,再经过驱动器驱动对应的行线。每条行线上需要较大的驱动电流,应选用大功率三极管作为驱动管。图2-2 方案二:采用1616点阵led发光管设计的交通灯控制系统方案三:采用at89c2051单片机作为控制器,通行倒计时及左拐、右拐、直行、行人通行指示采用单块lcd液晶点阵显示器。三种方案的特点比较如下:方案一具有电路简单,设计方便,显示亮度高,耗电较少,可靠性高等特点;方案二的图案显示逼真,单片机占用端口资源少,缺点是需要大量的硬件,电路复杂,耗电量大,不太适合于模型制作;方

9、案三设计占用单片机的端口最少,硬件也少,耗电也最少;虽然显示图案也很精美,但由于亮度太暗,晚上还得开背光灯,不够实用。可见方案一优于其他两种方案,因此本设计选用方案一:采用led动态扫描的方案进行设计。2. 系统硬件设计采用led动态扫描的交通灯控制系统电路原理图如图2-3所示。(为排版起见,该图放在下一页)。系统由控制模块、通行灯显示模块、时间显示模块、电源模块四部分组成。2.2.1 控制模块 控制模块电路如图2-4所示。主控制器采用at89s52。at89s52是atmel公司生产的一款性能稳定的8位单片机,具有1个8kb的flash程序存储器,1个512字节的ram,3个16的定时/计数

10、器,4个8位的双向可位寻址i/o端口, 1个串行口,6个中断源,两个中断优先级。图2-4 控制模块原理图at89s52的p1口用于控制南北通行灯,p2口用于控制东西通行灯,p0口用于3位led显示器的段码控制,p3.0p3.2口用于3位led显示器的位码控制,手动/自动转换采用p3.7扳键。/vpp接5v电源端。晶振及复位按典型电路设计,元器件参数如图2-4中所示。晶振频率为12mhz。2.2.2 通行灯显示模块通行灯显示模块如图2-5所示。通行灯指示采用高亮度共阴红绿双色发光二极管,左拐、直行、右拐及行人各一个。双色发光二极管的共阴极通过电阻接地,阳极接p1口或p2口(南北为p1口,东西为p

11、2口),经74hc244控制。当发光电流为6ma时,限流电阻按公式r=(5-1.8)/0.006计算,应为510。由于通行时南北双向指示牌相同,东西双向指示牌相同,因此每个端口应具有12ma的吸收电流能力,在单片机的输出口接驱动电路74hc244,以保护单片机的输出端口。图2-5 通行灯输出显示模块2.2.3 时间显示模块通行剩余时间显示模块如图2-6所示(以北路口为例)。路口通行剩余时间采用高亮红色7段共阳led发光数码管显示,采用共阳数码管,如用单片机吸收电流驱动,列扫描驱动使用三级管,按每段6ma电流算,全显示字型“8”时,每个数码管需6ma8=48ma。由于时间显示每个路口相同,4组需

12、192ma,因此设计中采用功率三极管s9012驱动。由于单片机每个段码输出口需吸收48ma电流,因此在电路设计中也使用了驱动集成块74hc244。2.2.4 电源电路电源电路如图2-7所示。整个系统采用的电源电压只需+5v电压,将交流电经变压器变换为15v交流电,再用整流桥得到13.5v左右的直流电,采用不可调的3端稳压器件lm7805将电源稳定在5v直流输出。图2-6 时间显示模块电路图2-7 电源电路2.2.5 硬件电路中器件选择a. at89s52单片机 at89系列单片机是atmel公司的8位flash单片机。这个系列单片机最吸引人的特点就是在片内含有flash存储器,不需要再外扩存储

13、器,与80c51插座兼容,由于这些优点,使它有着十分广泛的用途,特别是在便携式和需要特殊信息保存的仪器和系统中显得更为有用。89系列单片机典型型号有at89c51,at89lv51,at89c52,at89lv52,at89c2051, at89s52,at89c1051, at89s51和at89s8252。本设计选用at89s52。它内部具有1个8kb的flash的程序存储器,1个512字节的ram,4个8位的双向可位寻址i/o端口,3个16的定时/计数器、1个串行口、6个二级中断源和两个中断优先级。引脚如图2-8所示。图2-8 at89s52引脚按功能,引脚大致分为4部分:a)i/o口线

14、p0口:8位、漏级开路的双向i/o口。当使用片外存储器及外扩i/o口时,p0口作为低字节地址/数据复用线。在编程时,p0口用于接受指令代码字节;在程序校验时,p0口可输出指令字节(这时需要加外部上拉电阻)。p1口:8位、准双向i/o口,具有内部上拉电阻。p1口是为用户准备的i/o双向口。在编程和校验时,可用做输入低8位地址。用做输入时,应先将输出锁存器置1。p1口可驱动4个ttl负载。p2口:8位、准双向i/o口,具有内部上拉电阻。p2口也可做普通i/o口使用。用做输入时,应先将输出锁存器置1。p2口可驱动4个ttl负载。p3口:8位、准双向i/o口,具有内部上拉电阻。p3口可作为普通i/o口

15、,用做输入时,将输出锁存器置1。在编程/校验时,p3口接受某些控制信号。b)控制信号线rst:复位输入信号,高电平有效。在振荡器稳定工作时,在rst脚施加两个机器周期(即24个晶振周期)以上的高电平,将器件复位。/vpp:外部程序存储器访问允许信号。当引脚接地时,仅使用64kb的片外程序存储器,cpu从外部0000hffffh的地址空间取指令;当引脚接vcc时,cpu从片内0000h地址开始取指令,当pc值超过1fffh时,自动转到外存储器2000hffffh地址空间执行程序。:片外程序存储器读选通信号,低电平有效。ale/:低字节地址锁存信号。c)电源线: vcc为电源电压输入引脚,gnd为

16、地线。d)外部晶振引线:xtal1:片内振荡器反相放大器和时钟发生线路的输入端。使用片内振荡器时,连接外部石英晶体和微调电容。xtal2:片内振荡器反相放大器的输出端。当使用片内振荡器时,外接石英晶体和微调电容。b.74hc244简单输出接口扩展通常使用的典型芯片为74hc244, 由该芯片可构成三态数据缓冲器。74hc244芯片的引脚排列与内部结构分别如图2-9(a)(b)。(a)引脚排列 (b)内部结构图2-974hc24474hc244芯片内部共有两组四位三态缓冲器, 使用时可分别以1和2作为它们的选通工作信号。1脚为低电平时只有4个缓冲器工作,输入2,4,6,8对应输出18,16,14

17、,12;1为高电平时这4个缓冲器为高阻。19引脚为低电平另外四个缓冲器工作,同样,输入11,13,15,17,对应输出9,7,5,3;19为高电平时这四个缓冲器为高阻。c. lm 7805lm7805的外形如图2-10所示。lm7805三端集成稳压电源内部由基准电压回路、恒流源、过流保护、过压保护和短路保护回路等8部分组成,具有低功耗,高效率,纹波系数小,输出电压稳定等优点。图2-10 lm7805的外形图d.七段led数码管7段数码管是一种常用的显示器件,其外观与内部电路连接见图2-11。它使用7个笔画显示09共10个数字,加上一个小数点共8个显示段,每一个笔画都是由发光二级管组成的。led

18、数码管根据led的接法不同分为共阴和共阳两类,图2-11 (b)是共阳极数码管的内部电路,将八只led的阳极连在一起,其中ag为7个笔画的驱动端;dp为小数点驱动端;com为公共引脚。 (a)外观 (b)内部电路连接图2-11 led数码管09共10个字符的字形码如表2-1所示。e.双色发光二极管双色发光二极管是在一个封装结构内设置两只不同单色的发光二极管。共阴红绿双色发光电气符号图与内部电路连接如图2-12所示。有3根引出线,圆形和长方形两种封装。其中第一只发光二极管的负(或正极)与第二只发光二极管的负(或正极)极相互连接后再向外引出。表2-1 led数码管显示字符的字形码字形p0.7p0.

19、6p0.5p0.4p0.3p0.2p0.1p0.0字形编码dpgfedcba共阳共阴011000000c0h3fh111111001f9h06h210100100a4h5bh310110000b0h4fh41001100199h66h51001001092h6dh61000001082h7dh711111000f8h07h81000000080h7fh91001000090h6fh(a)外形(b)共阴双色发光二极管内部电路连接图2-12 双色发光二极管发光双色二极管的判别与检测方法:将万用表打在电阻档,用万用表黑表笔接在双色发光二极管中间的负极上,红表笔接在双色发光二极管的正极上,每次都亮,该

20、双色发光二极管是共阴极的,并且是好的。f.三极管90129012为一pnp型的三极管,外形与引脚图如图2-13所示。其中1脚为发射极,2脚为基极,3脚为集电极。g.整流桥整流桥的外形如图2-14所示。整流桥的是作用将交流电转换成直流电,本次设计电源电路中选用1a,220v的整流桥。图2-13 9012外形图及引脚图 图2-14整流桥的外形如图2.3 系统软件的设计交通灯控制系统软件分为主程序、定时中断程序与特种车实时响应程序三部分。2.3.1 主程序主程序主要负责总体程序管理功能,包括初始化部分与人机交互设定部分。由于采用动态扫描方式显示时间,因此主程序大部分时间要调用扫描显示程序。主程序流程

21、图如图2-15所示。图2-15主程序流程图初始化部分主要完成内存规划,定时器的工作模式、中断方式等的设定。由于子程序调用较多,因此初始化时堆栈指针设于80h处。定时器t0、t1设为16位定时器模式,定时时间为50ms,t0为秒计时用,t1为通行结束闪烁用。2.3.2 定时中断服务程序定时中断服务程序主要用于车辆与行人的通行指示,按照通行规则,红绿灯控制转换逻辑表如表2-2所示。通行规则如下:a.车辆南北直行、各路右拐,南北向行人通行。南北向通行时间为1min(60s),各路右拐比直行滞后10s开放。b.车辆南北向左拐、各路右拐,行人禁行。通行时间为1min(60s)。c.车辆东西直行、各路右拐

22、,东西向行人通行。东西向通行时间为1min(60s),各路右拐比直行滞后10s开放。d.车辆东西向左拐、各路右拐,行人禁行。通行时间为1min(60s)。表2-2 路口通行方式控制码数据表 南 北 方 向端口控制功能120-110s110-70s70-60s60-10s10-0sp1.7左拐红1(亮)1(亮)1(亮)0(暗)0(暗)p1.6左拐绿0(暗)0(暗)0(暗)1(亮)1/0(提示)p1.5直行红0(暗)0(暗)0(暗)1(亮)1(亮)p1.4直行绿1(亮)1(亮)1/0(提示)0(暗)0(暗)p1.3右拐红1(亮)0(暗)0(暗)0(暗)0(暗)p1.2右拐绿0(暗)1(亮)1(亮)

23、1(亮)1/0(提示)p1.1行人红0(暗)0(暗)0(暗)1(亮)1(亮)p1.0行人绿1(亮)1(亮)1/0(提示)0(暗)0(暗)路口控制字99h95h95h/84h66h66h/22h 东 西 方向 p2.7左拐红1(亮)1(亮)1(亮)1(亮)1(亮)p2.6左拐绿0(暗)0(暗)0(暗)0(暗)0(暗)p2.5直行红1(亮)1(亮)1(亮)1(亮)1(亮)p2.4直行绿0(暗)0(暗)0(暗)0(暗)0(暗)p2.3右拐红1(亮)0(暗)0(暗)0(暗)0(暗)p2.2右拐绿0(暗)1(亮)1(亮)1(亮)1/0(提示)p2.1行人红1(亮)1(亮)1(亮)1(亮)1(亮)p2.0

24、行人绿0(暗)0(暗)0(暗)0(暗)0(暗)路口控制字aaha6ha6ha6ha6h/ a2h交通灯的4种通行规则,是以给控制红绿灯端口送控制码的方式实现的。它的原理是,将按不同规则通行时的各路口的红绿灯亮灭情况转换为单片机端口控制码。红绿灯指示功能通过t0定时中断服务程序实现。定时器t0定时溢出中断周期设为50ms,中断累计20次(即1s)时对120s倒计时单元减一操作。设计中将4种通行规则分成几种不同的亮灯方式,通过查询秒倒计时单元的数据,实现在不同的时间段给控制端口送不同的控制数据码。控制码分为5个时间段:120110s、11070s、7060s、6010s、100s。交通管理定时功能

25、程序流程图如图2-16所示。图2-16 交通管理定时功能程序2.3.3 特种车中断服务程序将按钮s3按下,给int1引脚输入低电平信号来模拟特种车通过信号,此时外部中断1被触发,中断处理流程如图2-17所示。图2-17特种车中断服务程序流程图总的程序清单见附录二。2.3.4 算法分析a.定时器/计数器本设计涉及到120110s、11070s、7060s、6010s、100s五段计时,首先须将它们转为16进制代码。 120=716+8=78h 110=616+14=6eh 70=416+6=46h 60=316+12=3ch 10=016+10=0ahb.定时时间初值与tmod的设置t0、t1为

26、16位定时器,由于定时时间大于8192s,应选用工作方式一。由于晶振频率为12mhz,tcy=1s,故有 t=(65536-x)tcy=(65536-x)1s =50ms计算初值 x=15536=3cb0h即th0=3ch ,tl0=0b0h。tmod的格式如图2-18所示。d7d6d5d4d3d2d1d0gatec/m1m0gatec/m1m0图2-18 tmod的格式tmod各位的内容确定如下:由于定时器/计数器0设为定时器,选用工作方式一,所以c/(tmod.2)=0,m1(tmod.1)=0,m0 (tmod.0)=1,gate(tmod.3)=0;定时器/计数器1没有使用,相应的d7

27、d4为随意状态“x”。若取“x”为0,则(tmod)=00000001b=01hc.中断系统ie的取值ie的格式如图2-19所示。d7d6d5d4d3d2d1d0ea-et2eset1ex1et0ex0图2-19ie的格式ie每一位都由软件置1或清零。本设计中cpu允许中断即ea=1,定时器/计数器0中断允许位et0及外部中断0中断允许位ex0可申请中断,即et0=1,ex0=1,其余不允许中断,均设为0,所以ie=10000011h=83h3 系统调试根据前述第2大节中硬件和软件设计,制作了基于单片机的交通灯控制系统样机实物。对样机的硬件和软件分别进行了调试,最后进行了软件、硬件联调。调试成

28、功的实物照片如图3-1所示。图3-1 调试成功的单片机控制交通灯系统实物照片调试过程中遇到了不少问题,并已将其逐一解决。最终得到了调试成功的交通灯系统,可以完成本设计1.2节中设计内容的要求。3.1 硬件调试3.1.1 静态检查根据硬件电路图核对了元器件的型号、极性,安装是否正确,检查硬件电路连线是否与电路原理图一致,检查电路元器件是否都已经连接好,用万用表一一测试。3.1.2 通电检查首先调试电源部分。整个电路只需要+5v的电压,接上电源,将220v交流电通入,测试变压器的输出端,整流桥输出,lm7805的输出电压是否和理论计算值一致,再用示波器检测单片机的复位和晶振电路是否有复位信号和振荡

29、信号。3.2软件调试及软硬件联调对软件先用仿真器进行了调试。用仿真器运行正常后,再用烧写器将程序烧到at89s52单片机中,进行了脱机调试。3.2.1仿真器选择单片机仿真器有很多型号,本次设计采用南京电子有限公司生产的伟福系列仿真器h51/s。仿真头类型采用pod-h8x5x。3.2.2仿真过程a建立程序选择菜单文件| 新建文件出现一个文件名为noname1 的源程序窗口,如图3-2所示,输入程序段(此处以p18页时间显示程序段为例)。图3-2建立程序窗口将文件存为扩展名为.asm的文件进行保存。b建立项目建立项目分如下三步:a) 加入模块文件。(将上述a中建立的asm文件加入)b) 加入包含

30、文件。(若无包含文件,此步加以取消)c) 保存项目。c仿真器的设置选择菜单设置| 仿真器设置功能或按“仿真器设置”快捷图标打开“仿真器设置”对话框,如图3-3所示。在“仿真器”栏中,选择仿真器类型和配置的仿真头以及所要仿真的单片机。在“语言”栏中,“编译器选择”选择为“伟福汇编器”。编译项目。选择菜单项目| 编译功能或按编译快捷图标,编译项目。在编译过程中,如果有错可以在信息窗口中显示出来,双击错误信息,可以在源程序中定位所在行。纠正错误后,再次编译直到没有错误。在编译之前,软件会自动将项目和程序存盘。在编译没有错误后,就可调试程序了。图3-3 “仿真器设置”对话框3.2.3通行灯输出调试对于

31、通行灯输出程序的调试,首先看左拐灯、直行灯、右拐灯、行人灯是否能正常工作。编制了以下测试灯亮灭的程序: org 0000h start: mov a,#0aah;让东西南北四个路口的四个红灯全亮 mov p1,a mov p2,a acall delay ;延时一段时间 mov a,#55h ;让东西南北四个路口的绿灯全亮 mov p1,a mov p2,a acall delay ;延时一段时间 sjmp start; 到start处循环以上操作 delay: mov r7,#01h ;延时子程序 mov r6,#81h dl1: nop nop nop djnz r6,dl1 djnz r

32、7,dl1 ret将上述程序输入电脑,经仿真器传输到系统运行后,发现有一红灯不亮,而其他指示灯都按指令运行出现正确的结果。用万用表仔细检测,发现该灯的阳极被误接地了,没有接到单片机的并行口上。经修改,每个指示灯均能正确的显示了,至此,说明通行灯的接线完全正确。判断出通行灯接线正确后,对于整个电路的通行控制,根据逻辑状态表2-2编制了相应的程序(程序段见附录2中的t0中断服务程序)多次、反复调试,直到逻辑关系正确。调试时南北方向、东西方向指示灯同时进行。3.2.4时间显示模块调试对于时间模块,首先看显示的数字是否正常,显示的亮度是否合适。对于图2-3所示的电路,尽管led数码管为共阳极,但是各位

33、的位选为p3.0, p3.1 ,p3.2经pnp型晶体管9012后提供,p3.i(i=0,1,2)必须提供低电平才能点亮相应的显示器,须输出clr p3.i指令(i=0,1,2)。先编制了led静态显示的程序,测试p3.i引脚上的led是否可以正常显示,相应程序如下:org 0000h start: mov a,#01h mov dptr,#tab ;取段码表地址 movc a,a+dptr ;查显示数据对应段码 mov p0,a clr p3.0 ; 开启p3.0口 setb p3.1 ; 关闭p3.1口 setb p3.2 ; 关闭p3.2口 sjmp start tab: db 0c0h

34、,0f9h,0a4h,0b0h,99h, end运行后p3.0引脚上接的显示器显示为1,同理可分别测试p3.1 ,p3.2引脚上的led显示器是否可以正常显示。经检测各位led可以正常显示,但是发光的亮度偏暗,有些模糊,这说明电路连接没有问题,但选用的电阻过大了,以至于电流很小,显示器不太亮,在保证9012正常工作的情况下,将电阻从47k调整为10k,显示亮度合适,这部分调试成功。将附录2中的显示子程序进行了调试,四个路口的三个数码管均可以动态显示。至此,显示模块调试成功。整个程序设计中采用了两种倒计时显示方式,120s倒计时适用于车流量较大的大城市,60s倒计时可用于中小型城市,两种倒计时由

35、p3.7上的开关进行转换。3.2.5特种车中断程序调试将附录3中的119、120特种车程序进行调试,所有绿灯自动关闭,红灯全亮。3.2.6脱机调试 用仿真器与硬件电路连接调试成功后,又将附录3的程序烧写到at89s52中去,接上电源,发现led不能正常显示,而通行灯输出一切正常。经检查at89s52的p0口需要加外部上拉电阻,在仿真器上不存在此问题,因为仿真器的p0口有外部上拉电阻。接510的上拉电阻,接通电源交通灯与倒计时显示器可以正常运行,至此调试工作全部完成。3.2.7实验结果对实验板通电后,显示器从120s开始倒计时,每秒钟自动减一,四个路口的红绿灯按通行规则正确显示。显示图片如图3-

36、1所示。将s1开关打在合上的位置,显示器从60s开始倒计时,每秒钟自动减1,四个路口的红绿灯按通行规则正确显示。按下s3按钮,所有绿灯全部关闭,红灯全亮,呈现特种车辆放行状态。实验结果表明,本次设计并制作的交通灯可以很好地满足设计任务书的要求。4 结 束 语拿到课题后,开始着手设计。查阅了大量相关资料,结合毕业设计任务书中的指标要求,进行了方案论证,确定了设计方案:将系统分为控制模块、通行灯显示模块、时间显示模块、电源模块四部分。设计方案与元器件参数确定后,就开始采购元器件,然后进行硬件制作。在制作硬件的过程中,每制作一步,都要检查这一步的正确性,可靠性。最后硬件制作完毕后,先进行了静态调试,

37、根据硬件电路图核对了元器件的型号,极性,安装是否正确,检查硬件电路连线是否与电路图一致。然后是通电调试,先调试电源部分。将220v交流电通入,测试变压器的输出端整流桥输出,lm7805的输出电压是否和理论计算值一致。再调试单片机的复位和晶振电路。硬件电路制作完毕后,采用仿真器进行了软件调试,这个过程相当复杂艰难,出现了很多问题,例如输出灯不按规律显示,倒计时数码管显示不正确等。每一个问题都相当棘手,遇到这些问题后,首先检测硬件电路,对硬件电路排查完毕并确定无误后,对软件进行修改及再调试。问题一一被解决后最后得出所需软件部分。这个过程让我学到很多东西:首先必须具有的是耐心和细心,问题出现后,必须

38、分析问题,找出可能出现此种问题的原因,然后进行一一检测,进行多次修改后才得到所需结果。最后是软硬件联调,将程序烧入到at89s52,进行调试直到成功。基于单片机的交通灯控制系统的pcb板已进行了设计,但是由于时间紧迫,布线还不十分合理,需进一步调整,初步设计的pcb图见附录2。通过本次设计,本人的知识领域得到进一步扩展,专业技能得到进一步提高,同时提高了分析和解决实际问题的综合能力。另外,也培养了自己严肃认真的科学态度和严谨求实的作风。由于本人水平有限,本次设计还存在一些不足之处,请评阅与答辩的各位老师批评指正。参考文献1王幸之.at89系列单片机原理与接口技术m .北京:北京航空航天大学出版

39、社,2004.2李忠国.单片机应用技能实训m .北京:人民邮电出版社,2006.3先锋工作室.单片机程序设计实例m .北京:清华大学出版社,2003.4 李朝青.单片机原理及接口技术(修订版)m .北京:北京航空航天大学出版社,1998.5 余永权.世界流行单片机技术手册美国系列m .北京:北京航空航天大学出版社,2004. 6 李广弟.单片机基础m .北京:北京航空航天大学出版社,1992.7 张毅刚.单片机原理及接口技术m .哈尔滨:哈尔滨工业大学出版社,1990.8 潘永雄.电子线路cad实用教程m .西安:西安电子科技大学出版社,2004.9 何立民.单片机应用技术大全m .北京:北京

40、航空航天大学出版社, 1994.10 楼然苗.单片机课程设计指导m .北京:北京航空航天大学出版社,2007.11 谭浩强.单片机课程设计m .北京:清华大学出版社,1989.附 录附录1 基于单片机的交通灯控制系统电路原理图附录2 基于单片机的交通灯控制系统程序清单附录2 基于单片机的交通灯控制系统程序清单;*;交通灯控制程序;*;以下是初始化部分time equ 50h ;秒记数用timesfr equ 51h ;临时寄存器conr5 equ 52h ;t1秒定时记数用timed0 equ 55h ;单向最大定时时间,直行开始,人行开始(120s)timed1 equ 56h ;各路右拐开

41、始时间(110s)timed2 equ 57h ;前行结束提醒(70s)timed3 equ 58h ;前行结束,人行结束,左拐开始(60s)timed4 equ 59h ;左拐结束提醒timed5 equ 5ah ;左拐结束timed6 equ 5bhtimed7 equ 5chsn equ p1 ;南北口ew equ p2 ;东西口scan equ p3 ;扫描口ledout equ p0 ;段码口snewflag bit 09h ;东西口与南北口转换标志;按键在扫描口的最高位,按一下,全红灯。p3.7扳键开关扳向合上位置,则为60秒倒计时;定时器t0t1溢出周期为50ms,t0为秒记数用

42、;*中断入口程序*org 0000h ;程序执行开始地址ljmp start ;跳到标号start执行org 0003h ;外中断0中断程序入口reti ;外中断0中断返回org 000bh ;定时器t0中断程序入口ljmp intt0 ;跳至intt0执行org 0013h ;外中断1中断程序入口ljmp int11 ;外中断1、119120中断org 001bh ;定时器t1中断程序入口ljmp intt1 org 0023h ;串行中断程序程序返回reti;*主程序*start: mov sp, # 80h mov r0, # 00h ;清00h8eh内存单元 mov r7, # 8fh

43、cleardisp: mov r0, # 00h inc r0 djnz r7, cleardisp mov timed0, # 78h ;单向最大定时时间,直行开始,人行开始 mov timed1, # 6eh ;各路右拐开始时间(110s) mov timed2, # 46h ;前行结束提醒(70s) mov timed3,# 3ch ;前行结束,人行结束,左拐开始(60s) mov timed4,# 0ah ;左拐结束提醒 clr snewflag ;南北先通行标志位 mov tmod, # 01h ;设t0,t1为16位定时器 mov tl0, #0b0h ;50ms定时初值(t0记时

44、用) mov th0, #3ch ;50ms定时初值 mov tl1, #0b0h ;50ms定时初值(t1闪烁定时用) mov th1, #3ch ;50ms定时初值 jb scan.7, ssst ;120s管理;以下为60s管理 lcall dl1ms lcall dl1ms lcall dl1ms jb scan.7, ssst ;干扰 mov timed0, #60 ;单向最大定时时间,直行开始,人行开始 mov timed1, #55 ;各路右拐开始时间(55s) mov timed2, #35 ;前行结束提醒(35s) mov timed3, #30 ;前行结束,人行结束,左拐开始(30s) mov timed4, #05 ;左拐结束提醒sswait: jnb scan.7, sswait lcall dl1

温馨提示

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

评论

0/150

提交评论