单片机控制的交通灯系统实验报告_第1页
单片机控制的交通灯系统实验报告_第2页
单片机控制的交通灯系统实验报告_第3页
单片机控制的交通灯系统实验报告_第4页
单片机控制的交通灯系统实验报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、系统实验报告 基于51单片机的交通灯设计 专 业: XX 学 生 姓 名: xx XX 学 号: 指 导 教 师: wwwwwwwwwww 2000年x月x日目 录 TOC o 1-3 h z u HYPERLINK l _Toc198029884 1 设计任务和性能指标 PAGEREF _Toc198029884 h 1 HYPERLINK l _Toc198029885 1.1设计任务 PAGEREF _Toc198029885 h 1 HYPERLINK l _Toc198029886 1.2性能指标 PAGEREF _Toc198029886 h 1 HYPERLINK l _Toc1

2、98029887 2 设计方案2 HYPERLINK l _Toc198029888 2.1任务分析2 HYPERLINK l _Toc198029889 2.2方案设计2 HYPERLINK l _Toc198029890 3 系统硬件设计3 HYPERLINK l _Toc198029891 3.1单片机的最小系统3 HYPERLINK l _Toc198029892 3.2电源电路4 HYPERLINK l _Toc198029893 3.3数码管显示时间电路设计 PAGEREF _Toc198029893 h 4 HYPERLINK l _Toc198029894 3.4信号灯控制电路

3、设计5 HYPERLINK l _Toc198029896 4 系统软件设计5 HYPERLINK l _Toc198029897 4.1 主程序设计5 HYPERLINK l _Toc198029901 5 调试及性能分析6 HYPERLINK l _Toc198029902 5.1 调试分析6 HYPERLINK l _Toc198029903 5.1.1 软件调试6 HYPERLINK l _Toc198029904 5.1.2 硬件调试6 HYPERLINK l _Toc198029905 5.1.3 系统功能调试6 HYPERLINK l _Toc198029907 6 心得体会6

4、HYPERLINK l _Toc198029908 参考文献8 HYPERLINK l _Toc198029909 附录1 系统原理图9 HYPERLINK l _Toc198029910 附录3 程序清单10附录3元器件清单.141 设计任务和性能指标1.1设计任务南北东西利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。用红、绿、黄发光二极管作信号灯。如图上图所示。设东西向为主干道,南北为支干道。1.2性能指标状态1:仅亮灯,数码管不

5、工作。按下键4,红/黄/绿三色灯交替亮:红(20秒)黄(闪烁)(5秒)绿(20秒) 黄(闪烁)(5秒)红2. 状态2:灯和数码管相结合,模拟十字路口的交通灯 在以上功能的基础上数码管倒计时显示时间。2 设计方案2.1任务分析模拟交通灯控制器就是使用单片机来控制一些LED 和数码管,模拟真实交通灯的功能。红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字路口的车辆及行人交通,计时牌显示路口通行转换剩余时间等2.2方案设计根据设计的要求可知,系统的硬件原理框图如下图所示。 系统硬件框图单片机选用AT89S52,它与8051系列单片机全兼容,但其内部带有4KB的FLASH ROM,设计时无

6、需外接程序存储器,为设计和调试带来极大的方便。南北向和东西向各采用2个数码管计时,同时需要对该方向的指示灯的点亮时间进行倒计时。键盘系统可以根据系统的需要设置不同的键的个数,可以选择线式键盘或矩阵式键盘,若单片机的IO口不够用时,可以考虑扩展8255或8155满足系统的要求。2. 软件方案 根据设计要求,程序框图如图1所示。软件可由汇编语言完成,也可由C语言完成。软件设计可以分为以下几个功能模块:主程序:初始化及键盘监控。计时程序模块:为定时器的中断服务子程序,完成0.1秒(或其他时间)和1秒的时间定时。 显示程序模块:完成60个发光二极管(实际上只需驱动30个)和8个LED数码管的显示驱动。

7、程序流程图见下一页:调用正常运行子程序调用紧急状态子程序判断当前状态初始化开始 程序流程图3 系统硬件设计3.1单片机的最小系统ATMEL公司生产的AT89S52单片机它是硬件电路的核心部分,时钟电路晶振使用12MHz,复位电路采取按键复位方式。具体连接图3.1和图3.2。单片机系统的时钟电路单片机系统的复位电路3.2电源电路设计 电源用5V直流变压器直接供电。3.3数码管显示电路 显示电路采用8个共阳数码管,P1口作为数码管的输入,P0.4、P0.5、P0.6 P0.7分别控制东西南北四路数码管的位选端C1,C2,C3,C4。 数码管显示电路(上图是共阴数码管)3.4信号灯控制电路 应急电路

8、4 系统软件设计开始4.1 主程序设计 参数初始化显示子程序中断处理紧急中断子程序系统程序流程图 5 调试及性能分析5.1 调试分析5.1.1 软件调试 软件调试主要是利用proteus仿真软件完成电路的搭建,运行以发现设计中的错误及时改正。5.1.2 硬件调试硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。具体步骤及测试结果如下:(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接,对未连接的进行修复。(2)参照原理图,检查各个器件之间的连接是否连接正确,是否存在虚焊,经测试,各连接不存在问题。(3)以上两项检查并修复完后,给该硬件电路上电,电源指示灯点亮。5

9、.1.3 系统功能调试 通过软件仿真显示,系统基本能完成要求。6 心得体会 这次系统实验历时两周的时间,在这实验过程里我们巩固了从编程、焊板到调试的专业知识,逻辑思维和动手能力都得到了很大的提高。 对于交通灯这个题目,由于以前学单片机这个课程时,做过类似相关的实验,觉得这个比较简单而且做出的东西也比较直观,查阅了大量的资料,在老师的讲解帮助下,我们对如何通过单片机控制交通灯这个题目,有了进一步的理解。 要解决的主要问题就是程序的设计了,虽然感觉交通灯程序没什么难的,就是数码管倒计时显示加几个闪烁的二极管就完事,但是也许是起初想的太简单,设计时到了细节处,也出了不少问题,而且很难被检查出来,但是

10、最后经过我们的不断努力,还是写出来正确的代码。 上周终于拿到了PCB板,怀着紧张的心情一个器件一个器件的完成板子的焊接,最后通过串口线把程序下载到板子上,但是板子却没有意料中的效果,而且没一点现象,用万用表检查单片机的电压差不多为零,查出了问题所在松了口气,后来在网上查资料知道原来变压器的接口那三个引脚,两个GND必须短接,要不就不能正常供电,本以为短接后就正常了,但是数码管还是没反应,二极管基本可以正常显示,这时候真是一种煎熬,差了很久找不到原因,后来对照着原理图一个个的检查,最后发现原来是数码管封装错了,板子上的数码管公共极是3、8两个引脚,但是原理图上封装的事1、6,当时也没有注意,以为

11、只要是共阴管就没问题了,没想到软件本身就存在错误。通过这次系统实验,对以前学过的知识进行了巩固,加深了理解,提高了应用的能力,而且提高了我们的发现、分析、解决问题的能力,同时提高了大家对专业的认识及兴趣,对于我们工科生来说,对以后就业很有帮助。最后,尤其要感谢xx和xx老师的指导和帮助,我们才得以顺利完成这次系统试验。参考文献1 邹丽新.单片微型机原理及应用苏州大学出版社,2006.122 彭伟.单片机C语言程序设计实训100例.北京:电子工业出版社,2009。8附录1 系统原理图 系统原理图附录2 程序清单;程序实现功能;西南北路口直行与转弯交替通行,数码管显示直行通行倒计时,红绿黄灯显示包

12、括人行道在内的道路交通状态。;某一方向道路拥挤时,可以人工控制调节东西南北方向通行时间。;紧急情况时,各路口交通灯显示红灯,数码管保持数据不变。 #include#define uchar unsigned char#define uint unsigned intsbit key1=P10;sbit key2=P11;sbit key3=P12;sbit key4=P13;sbit smgwe1=P04;sbit smgwe2=P05;sbit smgwe3=P06;sbit smgwe4=P07;sbit smgdot=P27;sbit south_green=P20;sbit south

13、_red=P21;sbit south_yellow=P22;sbit east_green=P23;sbit east_red=P24;sbit east_yellow=P25;sbit num_a=P00;sbit num_b=P01;sbit num_c=P02;sbit num_d=P03;uchar count;uchar type=1;uchar num;uchar south_dispnum=10,east_dispnum=5;void delay_ms(uint z)uchar x,y;for(x=0;xz;x+)for(y=0;y123;y+);void timer0_ini

14、t()TMOD=0 x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;EA=1;TR0=1;void display(uchar south_dispnum,uchar east_dispnum)uchar south_dispnum1,south_dispnum2;uchar east_dispnum1,east_dispnum2;south_dispnum1=south_dispnum/10;south_dispnum2=south_dispnum%10;east_dispnum1=east_dispnum/10;east_disp

15、num2=east_dispnum%10;smgwe1=1;smgwe2=0;smgwe3=0;smgwe4=0;num_d=south_dispnum1/8;num_c=south_dispnum1%8/4;num_b=south_dispnum1%4/2;num_a=south_dispnum1%2;delay_ms(1);smgwe1=0;smgwe2=1;smgwe3=0;smgwe4=0;num_d=south_dispnum2/8;num_c=south_dispnum2%8/4;num_b=south_dispnum2%4/2;num_a=south_dispnum2%2;del

16、ay_ms(1);smgwe1=0;smgwe2=0;smgwe3=1;smgwe4=0;num_d=east_dispnum1/8;num_c=east_dispnum1%8/4;num_b=east_dispnum1%4/2;num_a=east_dispnum1%2;delay_ms(1);smgwe1=0;smgwe2=0;smgwe3=0;smgwe4=1;num_d=east_dispnum2/8;num_c=east_dispnum2%8/4;num_b=east_dispnum2%4/2;num_a=east_dispnum2%2;delay_ms(1);void traffi

17、c_light()switch(type)case 1:south_red=1; south_green=0; south_yellow=0; east_red=0; east_green=1; east_yellow=0;display(south_dispnum,east_dispnum);if(east_dispnum=0) east_dispnum=5;south_dispnum=5; type=2; break;case 2:south_red=1; south_green=0;/ south_yellow=0; east_red=0; east_green=0;/ east_yel

18、low=0; display(south_dispnum,east_dispnum); if(east_dispnum=0) south_dispnum=5;east_dispnum=10;type=3; break;case 3:south_red=0; south_green=1; south_yellow=0; east_red=1; east_green=0; east_yellow=0; display(south_dispnum,east_dispnum); if(south_dispnum=0) south_dispnum=5;east_dispnum=5; type=4; br

19、eak;case 4:south_red=0; south_green=0;/ south_yellow=0; east_red=1; east_green=0;/ east_yellow=0; display(south_dispnum,east_dispnum); if(east_dispnum=0) south_dispnum=10;east_dispnum=5;type=1; break;void main()timer0_init();while(1)traffic_light();void timer0_isr() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;if(count=5)if(type=2)east_yellow=!east_yellow;if(type=4)south_yellow=!south_yellow;if(count=20) count=0;south_dispnum-;east_dispnum-; 附录1 元器件清单数量 器件类型 原理图符号 封装Used Part Type Designator Footprin

温馨提示

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

评论

0/150

提交评论