单片机系统课程设计报告-基于单片机系统的交通灯设计.doc_第1页
单片机系统课程设计报告-基于单片机系统的交通灯设计.doc_第2页
单片机系统课程设计报告-基于单片机系统的交通灯设计.doc_第3页
单片机系统课程设计报告-基于单片机系统的交通灯设计.doc_第4页
单片机系统课程设计报告-基于单片机系统的交通灯设计.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

单片机系统课程设计报告 题目: 基于单片机系统的交通灯设计 专业: 姓 名 学号: 同组人: 指 导 教 师: 完成日期:2010年12月26日南北东西1 设计任务和性能指标1.1设计任务利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。用红、绿、黄发光二极管作信号灯。如图右图所示。设东西向为主干道,南北为支干道。1.2性能指标(1)处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。(2)干道均有车时,两者交替允许通行,主干道每次放行60秒,支干道每次放行40秒,设立60秒、40秒计时、显示电路。(3)绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。黄灯亮时,原红灯按1hz的频率闪烁。(4)支干道通行时间及黄灯亮的时间均可在099秒内任意设置。2 设计方案2.1任务分析模拟交通灯控制器就是使用单片机来控制一些led 和数码管,模拟真实交通灯的功能。红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字路口的车辆及行人交通,计时牌显示路口通行转换剩余时间等2.2方案设计根据设计的要求可知,系统的硬件原理框图如下图所示。 系统硬件框图单片机可选用at89c51,它与8051系列单片机全兼容,但其内部带有4kb的flash rom,设计时无需外接程序存储器,为设计和调试带来极大的方便。南北向和东西向各采用2个数码管计时,同时需要对该方向的指示灯的点亮时间进行倒计时。键盘系统可以根据系统的需要设置不同的键的个数,可以选择线式键盘或矩阵式键盘,若单片机的io口不够用时,可以考虑扩展8255或8155满足系统的要求。2. 3软件方案 根据设计要求,程序框图如图所示。软件可由汇编语言完成,也可由c语言完成。软件设计可以分为以下几个功能模块:主程序:初始化及键盘监控。计时程序模块:为定时器的中断服务子程序,完成0.1秒(或其他时间)和1秒的时间定时。 显示程序模块:完成60个发光二极管(实际上只需驱动30个)和8个led数码管的显示驱动。调用紧急状态子程序调用正常运行子程序判断当前状态初始化开始 程序流程图3系统硬件设计3.1单片机的最小系统atmel公司生产的at89c52单片机它是硬件电路的核心部分,时钟电路晶振使用12mhz,复位电路采取按键复位方式。具体连接图3.1和图3.2。 单片机系统的时钟电路 单片机系统的复位电路3.2电源电路设计 电源用5v直流变压器直接供电。 3.3数码管显示电路 显示电路采用8个共阴数码管,p1口作为数码管的输入,p3.4、p3.5、p3.6 p3.7分别作为东西南北四路数码管的位选端。 数码管显示电路3.4信号灯控制电路 中断处理显示子程序参数初始化开始 应急电路4 系统软件设计4.1 主程序设计 紧急中断子程序中断处理 系统程序流程图 5 调试及性能分析5.1 调试分析5.1.1 软件调试 软件调试主要是利用proteus仿真软件完成电路的搭建,运行以发现设计中的错误及时改正。5.1.2 硬件调试硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。具体步骤及测试结果如下:(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接,对未连接的进行修复。(2)参照原理图,检查各个器件之间的连接是否连接正确,是否存在虚焊,经测试,各连接不存在问题。(3)以上两项检查并修复完后,给该硬件电路上电,电源指示灯点亮。5.1.3 系统功能调试 通过软件仿真显示,系统基本能完成要求,由于设计思路出现问题,键盘没有正确的做出来,没有键盘电路,紧急情况也可以通过一个按钮来采取相关的动作。6 心得体会 由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。经过这次单片机设计,我认识到自己在这方面的很大不足,还好有同学的帮助,一起研究,同时查阅了许多资料,最后终于把这个交通灯的设计搞出来。以前我们做实验也做出来过交通灯这个项目,但是那跟这个相比很容易了,因为那只需要输入并不需要芯片的程序设计,而这个设计则完全是我们一手起草并借鉴前人经验而做成的,很有成就感,感觉单片机这门课真的很重要,因为它功能太强大了,我们学好了可以做许多有用的东西。以前对单片机还心里面一直对单片机害怕,感觉太深奥了不好理解。但是经过这次仿真,给人以很真实的感觉,它确实就是这样,从现象观察发现,我们的思维是对的,程序是正确的,因此,感觉单片机又不是那样难以理解,我以后要更加的努力学习更多的关于单片机设计的知识,把它学好,以后能够用到的。我相信自己是能够做到的! 参考文献1李朝青.单片机原理及接口技术(第3版).北京:北京航空航天大学出版社2 徐维祥.单片微型机原理及应用 大连理工大学出版社3 胡汉才.单片机原理与接口技术m.北京: 清华大学大学出版社4 闫胜利.altium designer 6.中文版使用教程电子工业出版社附录1 系统原理图 附录2 系统仿真图 附录3 程序清单;-;程序实现功能;西南北路口直行与转弯交替通行,数码管显示直行通行倒计时,红绿黄灯显示包括人行道在内的道路交通状态。;某一方向道路拥挤时,可以人工控制调节东西南北方向通行时间。;紧急情况时,各路口交通灯显示红灯,数码管保持数据不变。;工作寄存器及存储单元分配;1.工作寄存器;r2设置为定时器定时中断次数,r6、r7用于延时程序中的寄存器;2.片内存储单元;30h、31h作为两组数码管显示数据存储单元;32h、33h作为交通灯初始状态存储单元;40h、41h作为交通灯显示数据存储单元;3.标志位;00h:南北通行标志位 ; 01h:东西通行标志位;02h:紧急事件标志位 ;-snf equ 00h ;南北通行标志位ewf equ 01h ;东西通行标志位urf equ 02h ;紧急事件标志位org 0000hljmp main ;上电转主程序org 000bh ;定时中断入口ljmp dszd org 0003h ;紧急中断入口ljmp urzdorg 0030h main: lcall init ;调用初始化子程序loop: lcall dis ;循环执行显示子程序 ajmp loop;/初始化程序init: setb snf setb ewf setb urf mov r2,#20 ;定时器中断20次为1s mov tmod,#01h ;初始化定时器 mov tl0,#0b0h mov th0,#3ch setb ea ;开定时中断与紧急中断 setb et0 setb tr0 setb ex0 setb it0 ;设置中断程控方式 mov dptr,#tab ;数值首地址放入dptr中 mov 40h,#40 ;东南西北通行时间设置 mov 41h,#40 mov 30h,#40 ;通行时间初始化 mov 31h,#60 mov p0,#4ch ;初始化时南北通行并把交通灯状态分别放在32h和33h中 mov 32h,#4ch mov p2,#15h mov 33h,#15h ret;/显示子程序dis: mov p3,#0dfh ;选中南北方向的十位数码管 mov a,30h ;把显示数据送人数码管显示 mov b,#10 div ab movc a,a+dptr mov p1,a ; lcall d1ms mov p3,#0efh ;选中南北方向的个位数码管 mov a,b ;送入数码管显示 movc a,a+dptr mov p1,a lcall d1ms mov p3,#7fh ;选中第东西方向的十位数码管 mov a,31h ;送入数码管显示 mov b,#10 div ab movc a,a+dptr mov p1,a lcall d1ms mov p3,#0bfh ;选中第东西方向的个位数码管 mov a,b movc a,a+dptr mov p1,a lcall d1ms setb p3.0 setb p3.1 jnb p3.0,dis_s ;查询是否第一个按键按下 jnb p3.1,dis_e ;查询是否第二个按键按下 ajmp dis_r ;没有键按下则返回dis_s:lcall d5ms ;按键去抖 jnb p3.0,dis_sn ajmp dis_r dis_sn:mov 40h,#50 ;对通行时间从新分配,南北通行时间加长 mov 41h,#30 ajmp dis_rdis_e:lcall d5ms ;按键去抖 jnb p3.1,dis_ew ajmp dis_rdis_ew:mov 40h,#30 ;东西通行时间加长 mov 41h,#50dis_r:ret ;/定时中断处理程序ds_c: ljmp ds_r ;接力跳转dszd: push acc ;保护现场 push psw clr tr0 ;关定时器及中断标志位并重新赋值 clr tf0 mov tl0,#0b0h mov th0,#3ch djnz r2,ds_c ;判断1m时间是否到达 mov r2,#20 ;到达重新赋值 dec 30h ;南北方向通行时间减一 mov a,30h ;把减一后的时间送入显示存储单元;南北通行到达最后4秒时黄灯闪烁ds_10:cjne a,#4,ds_11 ;如果通行时间剩余4秒 jnb snf,ds_11 ;判断是否是南北通行 mov p0,#8ah mov 32h, #8ah ;把交通灯状态存入存储单元(后面类似)ds_11:cjne a,#3,ds_12 ;不是剩余3秒,返回 jnb snf,ds_12 ;不是南北通行时间,返回 mov p0,#88h mov 32h, #88hds_12:cjne a,#2,ds_13 jnb snf,ds_13 mov p0,#8ah mov 32h, #8ah ds_13:cjne a,#1,ds_14 jnb snf,ds_14 mov p0,#88h mov 32h, #88h;-ds_14:jnz ds_ne ;通行时间没有结束转向改变东西方向的数码管 cpl snf ;如果通行时间结束则对标志位取反 jnb snf,ds_1 ;判断是否南北通行 mov 30h,40h ;是,点亮相应的交通灯 mov p0,#4ch mov 32h,#4ch ;存储交通灯状态 mov p2,#15h mov 33h, #15h ;存储交通灯状态ds_ne:dec 31h ;东西方向通行时间减一 mov a,31h ;把通行剩余时间送入显示存储单元;东西方向通行时间剩余4秒钟黄灯闪烁(程序注释与南北方向类似 略)ds_20:cjne a,#4,ds_21 jb ewf,ds_21 mov p0,#51h mov 32h, #51hds_21:cjne a,#3,ds_22 jb ewf,ds_22 mov p0,#41h mov 32h, #41hds_22:cjne a,#2,ds_23 jb ewf,ds_23 mov p0,#51h mov 32h, #51hds_23:cjne a,#1,ds_24 jb ewf,ds_24 mov p0,#41h mov 32h, #41h;-ds_24:jnz ds_r ;东西方向时间没有结束,返回 cpl ewf ;对通行状态取反 jnb ewf,ds_2 ;东西方向通行时间到来,跳转 mov 31h,#80 ;东西方向通行结束,重新显示时间 mov p0,#89h ;点亮相应的交通灯 mov 32h, #89h mov p2,#29h mov 33h, #29h ajmp ds_r ds_1: mov 30h,#80 ;南北通行时间结束,重新对显示存储单元赋值 mov p0,#89h ;执行转弯状态1 mov 32h, #89h mov p2,#26h mov 33h, #26h ajmp ds_ne ds_2: mov 31h,41h ;东西方向开始通行,赋值予显示存储单元 mov p0,#61h ;点亮相应的交通灯 mov 32h, #61h mov p2,#15h mov 33h, #15hds_r: setb tr0 pop psw ;恢复现场 pop acc reti;/紧急中断处理程序urzd: push acc ;保护现场 push psw clr ie0 ;清除中断标志位 clr tr0 ;关定时器 cpl urf ;紧急事件标志位 jb urf,ur_con ;紧急结束;跳转 mov p0,#49h

温馨提示

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

评论

0/150

提交评论