模拟交通信号灯(附源程序)_第1页
模拟交通信号灯(附源程序)_第2页
模拟交通信号灯(附源程序)_第3页
模拟交通信号灯(附源程序)_第4页
模拟交通信号灯(附源程序)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、烟台大学 单片机课程设计单片机原理及其接口技术课程设计课题:模拟交通信号灯专业:测控技术与仪器班级: 姓名: 学号: 同组人: 指导老师: 目录第一章 课程设计任务书3 1.1摘要31.2 设计目的和意义 41.3 任务要求 4第二章 系统工作原理52.1 led显示原理52.2 红黄绿灯的控制 5第三章 程序框图73.1主程序框图73.2中断服务程序流程图下图所示8第四章 proteus软件仿真 9第五章 设计总结 12第六章 参考文献 13第七章 附页程序清单 14第一章 课程设计任务书课程设计内容:模拟交通灯1.1摘 要交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这

2、点更是体现的淋漓尽致。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。本系统采用单片机8051为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。本设计系统由单片机i/o口扩展系统、交通灯状态显示系统、led数码显示系统、紧急情况中断系统、复位电路等几大部分组成。系统除基本的交通灯功能外,还具有倒计时、紧急情况处理等功能,较好的模拟实现了十字路口可能出现的状况。软件上采用c51编程,主要编写了主程序,led数码管显示程序,中断程序延时程序等。经过整机调试,实现了对十

3、字路口交通灯的模拟。1.2设计目的和意义加强对单片机和c51语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、 选择芯片器件、模块化编程等多项知识。 1、用单片机模拟实现具体应用使个人设计系统能够真正使用。2、把理论知识与实践知识相结合,充分发挥个人能力,并在实践中得到锻炼。3、提高利用已学的知识分析和解决问题的能力。4、提高动手实践能力。1.3任务要求:1、主干道绿灯60秒,支干道绿灯30秒,黄灯都是三秒;2、要求用延时来实现定时时间;3、要求显示器同步显示主干道时间的倒计时; 4、如果有按键按下,表示有紧急车辆通过(救火车等),此时十字路都亮红灯,蜂鸣器响(十五秒钟后恢复正常)。

4、第二章 系统工作原理 2.1、数字led的显示原理:通过给51单片机p0口送入初始值,并用p0口来控制短选位,p1口来控制位显来实现动态显示,来显示各灯的显示时间。2.2红黄绿灯的控制1、黄红绿灯的亮灭8051单片机的p2口的六个端口接主干道和支干道的红、绿、黄灯,显示燃亮情况,通过两个八段显示器显示每个灯的燃亮时间,使灯和显示器时间同步。2、由软件编程来实现灯的燃亮时间,设置使主干道和支干道绿灯别为60秒、30秒循环。3、通过延时程序来实现时间的延时。4、带有紧急按钮,使按钮按下时会有出现中断,使其去执行中断程序,主干道与支干道都为红灯。总设计图如下:第三章 程序框图置主道放行标志0f0主道

5、放行时间送 r1主道亮绿灯,支道亮红灯开始延时1秒主道亮黄灯,支道亮红灯延时3秒置支道放行标志0-f0支道放行时间送r3主道亮红灯,支道亮绿灯延时1秒主道亮红灯,支道亮绿灯延时3秒r11=0r31=0 nn 中断服务程序流程图下图所示:主程序主干路支干路红灯亮判断是否有int1中断主程序第四章proteus软件系统仿真硬件系统的接线如图所示,如下图,主干道的红,黄,绿交通灯分别通过p2口的六个端口连在一起,同理,支道上的也互联。受89c51的p2.0-p2.5控制.紧急车请求通过时由按钮控制,通过中断来实现。根据功能要求分别仿真各种情况下的亮灯情况,具体如下:如下图仿真图所示,正常情况下主干道

6、方向亮绿灯,主干道放行。支干道方向亮红灯,支干道禁行:如下所示主干道方向亮黄灯3秒,支干道方向亮红灯:如下图仿真图所示,有紧急车通过时按下按键k0时,主、支干道均亮红灯特殊指示灯亮:第五章 设计总结 经过一学期的对单片机原理及应用的学习,在本学期末我们进行了为期两周的单片机课程设计,经过了小组的讨论我们选定了“模拟交通信号灯”的课题。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。在整个设计过

7、程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路.其次,这次课程设计让我充分认识到团

8、队合作的重要性,只有分工协作才能保证整个项目的有条不絮。另外在课程设计的过程中,当我们碰到不明白的问题时,指导老师总是耐心的讲解,给我们的设计以极大的帮助,使我们获益匪浅。最后,非常感谢王老师在设计过程中对我们的指导!第六章 参考文献1 汪贵平,李登峰,雷旭 新编单片机原理与应用 机械工业出版社 2 胡汉才 单片机原理及其接口技术(第二版)清华大学出版社20043 戴佳. 单片机c51语言应用程序设计. 电子工业出版社, 2006.7:168-1694 朱民雄.计算机语言技术. 北京航空航天大学出版社,2002.1:103-1055 李鸿. 单片机原理及应用. 湖南大学出版社. 2004:8:

9、72-736 刘建清. 单片机技术. 国防工业出版社, 2006.8: 104-105 7 杨宁,胡学军单片机与控制技术北京航空航天大学出版社,2005-03:306-32第七章 附页程序清单org 0000h ajmp main org 00013h ljmp int9 ; 跳到跳到特种车辆自动服务程序.数字显示代码. tab: db 3fh,6h,5bh,4fh,66h,6dh,7dh,7h,7fh,6fh/*主程序*/ org 0300h main: mov 25h,#60 ; 南北通行时间初始值,存到25h单元 mov 26h,#30 ; 东西通行时间初始值,存到26h单元 setb

10、it0 ; 外部中断一边沿触发 mov ie,#8fh ; 开中断.南北绿灯东西红灯. nbld: mov r1,25h ; 为南北方向显示时间做准备 nbld1: mov 20h,r1 ; 南北通行时间60秒(25h)=60,(nbld即东西绿灯) mov p2,#1eh ; 点亮南北绿灯东西红灯 mov a,r1 ; add a,#3 ; mov 21h,a ; 为东西方向显示时间做准备 lcall disp1 ; 显示通行所剩时间,其中有0.5秒延时 lcall disp1 ; 再次显示以便数码管不闪,且再延时0.5秒以便凑够一秒 djnz r1,nbld1 ; 判断60秒是否已完,若未

11、完则从新显示、延时.南北黄灯闪东西红灯.shanhd: mov r2,#3 ; 黄灯闪亮3秒 hd: mov p2,#1dh ; 点亮黄灯 mov 22h,r2 ; 为显示时间做准备 lcall disp2 ; 黄灯闪亮剩时显示 ,其中延时0.5秒 mov p2,#1fh ; 熄灭黄灯 lcall disp2 ; 显时,且再延时0.5秒以便凑够1秒 djnz r2,hd ; 判断3秒是否已完,若未完则从新闪灭、延时和显示.南北红灯东西绿灯 . dxld: mov r3,26h ; 东西通行30秒 (26h)=30, (dxld即东西绿灯) dxld1: mov p2,#33h ; 点亮南北红灯

12、东西绿灯 mov 24h,r3 ; 为东西方向显示时间做准备 mov a,r3 ; add a,#3 ; mov 23h,a ; 为南北方向显示时间做准备 lcall disp3 ; 时间显示 ,其中有0.5秒延时 lcall disp3 ; 凑够1秒时间 djnz r3,dxld1 ; 判断30秒是否已完.南北红灯东西黄灯闪.shanhd1: mov r2,#3 ; 转入黄灯闪亮3秒 hd1: mov 22h,r2 ; 为显示做准备 mov p2,#2bh ; 点亮南北红灯东西黄灯 lcall disp2 ; 显示时间,并延时0.5秒 mov p2,#3bh ; 点亮南北红灯关闭东西黄灯 l

13、call disp2 ; 显时,且再延时0.5秒以便凑够1秒 djnz r2,hd1 ; 判断3秒是否到,若未到继续闪灭东西黄灯 ajmp nbld ; 主程序到此完 .延时程序. . delay3: mov r6,#1 ; 5ms延时 ,(5ms=50*50*2us) de61: mov r0,#1 de71: djnz r0,de71 djnz r6,de61 ret delay: acall delay1 ; 10ms延时 acall delay1 ret delay1: mov r6,#50 ; 5ms延时 ,(5ms=50*50*2us) de6: mov r0,#50 de7: d

14、jnz r0,de7 djnz r6,de6 ret.南北通行的时间显示子程序. disp1: mov p0,#0 ; 熄灭数码管 mov r7,#25 ; 以下调用四次5毫秒延时程序,故25*4*5毫秒=0.5秒 rp1: mov a,20h ; 南北方向要显示时间移到寄存器a mov dptr,#tab ; 要显示的数字代码表首地址 mov b,#10 div ab ; 要显示的时间与10相除,求出十位和个位 movc a,a+dptr ; 找到十位的显示代码 mov p1,#00001110b; 选择南北数码管十位片 mov p0,a ; 送出十位显示代码 lcall delay1 ;

15、延时5ms以点亮数码管 mov a,b ; 把个位数移到寄存器a movc a,a+dptr ; 找到个位数显示代码 mov p1,#00001101b ; 选择南北数码管个位片 mov p0,a ; 送出个位数显示代码 lcall delay1 ; 延时5ms以点亮数码管 mov a,21h ; 东西方向要显时间移到寄存器a mov dptr,#tab ; 要显示的数字代码表首地址 mov b,#10 div ab ; 要显示的时间与10相除,求出十位和个位 movc a,a+dptr ; 找到十位的显示代码 mov p1,#00001011b; 选择东西数码管的十位片 mov p0,a ;

16、 送出十位显示代码 lcall delay1 ; 延时5ms以点亮数码管 mov a,b ; 把个位数移到寄存器a movc a,a+dptr ; 找到个位的显示代码 mov p1,#00000111b ; 选择东西数码管的个位片 mov p0,a ; 送出个位显示码 lcall delay1 djnz r7,rp1 ; 是否已循环25次 ret.黄灯的时间显示子程序. disp2: mov p0,#0 ; 熄灭数码管 mov r7,#25 ; 以下调用两次0.01秒延时程序, rp2: mov a,22h ; 要显示的时间移到寄存器a mov dptr,#tab ; 要显示的数字代码表首地址

17、 mov b,#10 div ab ; 要显示的时间与10相除,求出十位和个位 movc a,a+dptr ; 找到十位的显示代码 mov p1,#00001010b; 选择南北数码管十位片和东西数码管十位片 mov p0,a ; 送出十位显示代码 lcall delay ; 延时10ms以点亮数码管 mov p1,#00000101b ; 选择东西南北数码管个位片 mov a,b ; 把个位数移到寄存器a movc a,a+dptr ; 找到个位数显示代码 mov p0,a ; 送出个位数显示代码 lcall delay ; 延时10ms一点亮数码管 djnz r7,rp2 ret.东西通行

18、的时间显示子程序. disp3: mov p0,#0 ; 熄灭数码管 mov r7,#25 ; 以下调用4次调用延时程序, rp3: mov a,23h ; 要南北方向显示的时间移到寄存器a mov dptr,#tab ; 要显示的数字代码表首地址 mov b,#10 div ab ; 要显示的时间与10相除,求出十位和个位 movc a,a+dptr ; 找到十位的显示代码 mov p1,#00001110b; 选择南北数码管十位片 mov p0,a ; 送出十位显示代码 lcall delay1 ; 延时5ms以点亮数码管 mov a,b ; 把个位数移到寄存器a movc a,a+dpt

19、r ; 找到个位数显示代码 mov p1,#00001101b; 选择南北道数码管个位片 mov p0,a ; 送出个位数显示代码 lcall delay1 ; 延时5ms一点亮数码管 mov a,24h ; 要东西方向显示的时间移到寄存器a mov b,#10 div ab ; 要显示的时间与10相除,求出十位和个位 movc a,a+dptr ; 找到十位的显示代码 mov p1,#00001011b ; mov p0,a ; 送出十位显示代码 lcall delay1 ; 延时5ms以点亮数码管 mov a,b movc a,a+dptr mov p1,#00000111b ; 选择东西数码管个位片 mov p0,a ; 送出个位显示代码 lcall delay1 djnz r7,rp3 ret.特殊车辆通过的时间显示子程序. disp4: mov p0,#0 ; 熄灭数码管 mo

温馨提示

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

评论

0/150

提交评论