单片机课程设计智能交通灯报告_第1页
单片机课程设计智能交通灯报告_第2页
单片机课程设计智能交通灯报告_第3页
单片机课程设计智能交通灯报告_第4页
单片机课程设计智能交通灯报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、东莞理工学院城市学院单片机课程设计实验报告 评分 实验名称: 智能交通灯控制系统 专业班级: 2011级电子信息2班 学生姓名: 黄静军 学 号: 201143503213 指导老师: 葛卫清 实验日期: 2014-1-8 智能交通灯控制系统设计一、设计内容和功能: 交通信号灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭。用80c52做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。在一个交通十字路口有一条主干道(东西方向),一条从干道(南北方向),主干道的通行时间比从干道通行时间长,四个路口安装红,黄,绿,灯各一盏;如图所示: 1、设计一个十字路口的交通灯控制电

2、路,要求东西方向(主干道)车道和南北方向(从干道)车道两条交叉道路上的车辆交替运行。2、在绿灯转为红灯时,要求黄灯闪烁,才能变换运行车道3、黄灯亮时,要求每秒闪亮一次。 4、紧急情况发生,如消防车、救护车等紧急车辆通过时,要求四个路口同时加亮黄灯闪烁,并且倒计时显示装置关闭,四个路口的信号灯全部变成红灯。5当东西或南北方向车流量大时,四个路口同时加亮黄灯进行闪烁,并且倒计时显示装置关闭,黄灯闪烁5秒后,只允许东西或南北方向车辆通行。二、各功能模块说明及系统使用说明;2.1总体设计电路如图所示2.2交通灯电路为了方便实验,可以用发光二极管作为交通灯来使用,单片机的i/o接口直接和交通灯(发光二极

3、管)连接。在十字路口的四组红、黄、绿三色交通灯中,东西方向道路上的两组同色灯连接在一起,南北方向道路上的两组同色的灯也彼此连接在,受单片机p1.0p1.5控制。单片机的i/o接口与交通灯电路的具体连接方式为:p1.0p1.2分别接东西方向的红、黄、绿共6个放光二极管,p1.3p1.5分别接南北方向的红、黄、绿共6个发光二极管。12个发光二极管采用了共阳极的连接方式,因此i/o口输出低电平时,与之相连的发光二极管会亮,i/o口输出高电平是,相应的发光二极管会灭。交通灯电路如图所示。2.3倒计时显示电路该交通灯控制系统在正常情况下,每60s循环一次,为方便提示路上行人及车辆交通灯转换的剩余时间,专

4、门为控制系统设计了一个倒计时显示装置。该显示装置选用七段数码管来显示交通灯转换的剩余时间,根据控制要求,每个路口需要两个数码管,这样四个路口就要求八个数码管;由于四个路口显示时间一样,所以实验只采用一组数码管。有序at89c51单片机的i/o作为输出时,具有较强吸收电流能力,因此我们可以选用共阳型数码管,这样由单片机的i/o就可以直接驱动,从而简化硬件电路的设计。四个路口倒计时显示被置在同一时刻显示相同的数字,期中p0口用来显示时间的十位,p2口用来显示时间的个位;考虑到at89c52单片机所能提供i/o接口的数量以及该控制系统所需要的i/o的个数并结合我们的实际能力,数码管在本系统采用的是静

5、态显示。采用静态显示时,占用cpu的资源较少,单片机只要把要显示的字符代码发送到接口电路即可,直到要显示新的数据时,再发送新的字形码。倒计时显示电路如图所示。2.4紧急通行电路该系统的k1、k2、k3三个按键分别于单片机的p3.0、p3.1、p3.6相接,它们可以在特殊的交通情况下使用。例如,当有紧急情况发生时,如消防车、救护车等紧急车辆通过时,按下k1键,四个路口同时加亮黄色信号灯并进行闪烁(闪烁时间为5秒)。并且倒计时显示装置关闭,黄灯5s闪烁完成后,四个路口的信号灯全部变成红灯,从而保证紧急车辆的及时通过,待紧急车辆通过后,松开k1键,紧急情况消除,交通灯控制系统恢复正常工作;按下k2键

6、,四个路口同时加亮黄色信号灯并进行闪烁(闪烁时间为5秒),并且倒计时显示装置关闭,黄色等5s闪烁完成后,只允许东西方向车辆准行、南北方向车辆禁行,松开k2键,交通灯控制系统又开始正常工作;按下k3键,四个路口同时加亮黄色信号灯并进行闪烁(闪烁时间为5秒),并且倒计时显示装置关闭,黄色等5s闪烁完成后,只允许南北方向车辆准行、东西方向车辆禁行,松开k3键,交通灯控制系统又开始正常工作。按键电路如图所示。三.系统程序设计3.1 主程序流程图开始东西亮绿灯,南北亮红灯东西准行,南北禁行显示子程序系统初始化扫描键盘有键按下调用键盘子程序东西亮绿灯,南北亮红灯同时黄灯进行闪烁调用键盘子程序扫描键盘显示子

7、程序东西准行,南北禁行东西,南北方向换向有键按下yny3.2定时中断子程序开始循环次数减一定时开始重新给循环次数赋初值显示子程序产生中断设定中断的循环次数给定时器赋初值定时器初始化返回定时时间到循环次数=1?ynyn3.3显示子程序流程图提取倒计时数据的十位数调用1s延时子程序获取十位数字型码并送到p0口取倒计时数值获取个位数字型码并送到p2口提取倒计时数据的个位数开始返回3.4按键子程序流程图东西南北均变红灯k3键按下?k2键按下?k3键按下?k2键按下?关闭倒计时显示南北变绿灯东西变红灯黄灯进行5s闪烁黄灯进行5s闪烁键盘扫描关闭倒计时显示东西变绿灯南北变红灯黄灯进行5s闪烁关闭倒计时显示

8、有键按下?k1键按下?返回k1键按下?开始4、 仿真电路与实物图对比4.1东西方向通行,南北方向禁止4.2东西方向禁止,南北方向通行4.3 k1键按下,全路口禁止通行4.4 k2键按下,东西方向通行,南北方向禁止4.5 k3键按下,东西方向禁止,南北方向通行5、 实验遇到的问题与解决1、实验进行程序编译时,发现设计的程序有错误,无法进行编译解决办法:对程序进行检查,发现跳转指令ljmp跳转指定不明,没有跳转到指定的子程序中,对ljmp指令进行修改后,再进行编译,程序可以运行。2、在用proteus软件进行仿真时,设计的电路能正常运行,但按下k3键,发现k3键为无效键位,无法实现东西方向禁止,南

9、北方向通行的紧急情况。解决办法:查看k3键位的判断键位语句:jnb acc.3,k3 发现程序设计的键位口和仿真连的键位口不同,仿真用的是p3.6口,所以程序应改为:jnb acc.6,k3再运行程序,k3键可以实现 东西方向禁止,南北方向通行的紧急情况。3、按照proteus软件仿真的设计图焊接电路,进行调试时,发现数码显示管有些数字会出现乱码解决办法:对数码管焊接电路进行检查,发现数码管的两个公共端有一个没有焊接电源,焊接后进行调试,发现还是有数字会乱码;质询老师后,发现程序数码显示字模写错,对程序进行改进后调试,最终顺利完成实验要求的内容。6、 实验心得这是第一次进行单片机的课程实验设计

10、,尽管有些准备不足,但是还是从中学习到了很多的东西。从查找实验方案用keil编写程序用proteus软件仿真最后焊接调试,每一步都是自己慢慢研究和摸索,了解了自己所设计的交通灯每一步所执行和运行的情况,并且能胜利地排除实验设计中所遇到的困难和实验中的错误。在这次的单片机的课程设计中,我学会了对方案更精明的选择,要做出和别人不一样的东西出来,实现自己想要达到的功能;还有对keil程序编写软件和proteus仿真软件这两个软件更加的熟练运用自如,这对以后有关单片机课程设计有很大的帮助;而且通过这次课程设计,我对实验遇到的难题的解决能力有了很大的提高,可以通过自己解决很多遇到的问题。最后,感谢葛老师

11、对我们的实验指导,让我们从单片机课程设计中学习到了很多在课本学习不到的东西,让我们把课本上的知识运用到了实际中,理论与实际的结合,让我们更加深刻地清楚自己所学习的知识。七、源程序代码org 0000hljmp mainorg 001bh ;定时器t1中断入口ljmp kk org 0100h ;主程序入口;*;*主程序*;*;main:mov sp,#60h mov tmod,#10h ;定时器t1工作在方式1mov th1,#9eh ;给定时器t1赋初值mov tl1,#58hsetb ea;开中断系统总开关setb et1;开定时器t1中断开关setb tr1;启动定时器t1here:mo

12、v 88h,#15h;设置中断循环次数mov 33h,#3dh;设置倒计时显示数值mov p1,#0f3h;使交通灯东西绿,南北红mov r7,#37hmm:lcall dispmov a,p3;键盘扫描cjne a,#0ffh,readkeydjnz r7,mmmov p1,#0e1h;交通灯东西绿,南北红同时加亮黄灯mov 20h,#02hnn:mov a,p3cjne a,#0ffh,readkeysetb p1.1;黄灯进行5秒闪烁setb p1.4 lcall disp clr p1.1 lcall disp;调显示子程序djnz 20h,nnsetb p1.1setb p1.4 l

13、call disp mov p1,#0deh;交通灯南北绿,东西红mov r7,#37hpp:lcall dispmov a,p3cjne a,#0ffh,readkeydjnz r7,ppmov p1,#0cch;交通灯南北绿,东西红同时加亮黄灯mov 20h,#02hqq:mov a,p3;扫描p3口cjne a,#0ffh,readkeysetb p1.1setb p1.4 lcall dispclr p1.4 lcall dispdjnz 20h,qqsetb p1.1setb p1.4 lcall disp lcall qwqw:sjmp hereret;*;*1秒延时子程序*;*;

14、delay:mov r1,#0ah delay0:mov r2,#0c8hdelay1:mov r3,#0f8hnopdelay2:djnz r3,delay2djnz r2,delay1djnz r1,delay0ret;*;键盘扫描子程序;*;readkey: mov a,#0ffhmov p3,amov a,p3jnb acc.0,k1;判断k1键是否按下jnb acc.1,k2 ;判断k2键是否按下jnb acc.6,k3 ;判断k3键是否按下ret k1:mov p0,#0ffh;关断倒计时显示装置mov p2,#0ffhlcall xxlcall yysjmp readkeyk2:

15、mov p0,#0ffh;关断倒计时显示装置mov p2,#0ffhlcall xxlcall yy1sjmp readkeyk3:mov p0,#0ffh;关断倒计时显示装置mov p2,#0ffhlcall xxlcall yy2sjmp readkeyxx:mov 20h,#03hlcall bbret;*;*黄灯进行5秒闪烁*;*;bb: setb p1.1setb p1.4 lcall delay clr p1.1clr p1.4 lcall delay djnz 20h,bbret yy:mov p1,#0f6h;四个路后均变成红灯mov a,#0ffhmov p3,amov a,

16、p3jnb acc.0,yy;判断k1键是否仍然按下lcall qwyy1:mov p1,#0f3h;东西方向亮绿灯,南北方向亮红灯mov a,#0ffhmov p3,amov a,p3jnb acc.1,yy1;判断k2键是否仍然按下lcall qwyy2:mov p1,#0deh;南北方向亮绿灯,东西方向亮红灯mov a,#0ffhmov p3,amov a,p3jnb acc.6,yy2;判断k3键是否仍然按下lcall qwret;*;*中断处理程序*;*;org 0200h ;中断程序入口地址kk:dec 88hmov a,88hcjne a,#01h,bn;判断循环次数是否为1mo

17、v 88h,#15h;重新给循环次数赋值lcall dispbn:mov th1,#9eh;重新给定时器t1赋初值mov tl1,#58hreti;*;*显示子程序*;*;disp: dec 33hmov a,33hcjne a,#01h,dir1mov 33h,#3dh;重新给倒计时数赋初值dir1:mov b,#0ahdiv ab;提取出倒计时数值的十位数和个位数mov dptr,#tab;字形表的入口地址movc a,a+dptr;查表获取十位数的字型码mov 30h,amov a,bmovc a,a+dptr;查表获取个位数的字型码mov 31h,amov a,30hmov p0,a;将十位数字型码送到p0口mov a,31hmov p2,a;将个位数字

温馨提示

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

评论

0/150

提交评论