资源描述:
《基于某51单片机地交通灯控制器实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用文档教师评阅意见:签名:年月日实验成绩:一、实验目的1.学会用8051单片机开发简单的计算机控制系统;2.学会用汇编语言和C语言开发系统软件;3.学会8051单片机开发环境wave或KeiluVision3软件的使用;4.学会Proteus软件的使用方法,会用Proteus单片机系统进行仿真;5.熟悉七位数码管显示的使用方法;6.了解交通灯控制系统的基本组成。二、实验内容及要求图1.十字路口交通灯配置示意图南北东西交通灯处在十字路口上。它有红﹑黄﹑绿三种颜色的灯组成。红灯亮时道路上的车辆停止运行;黄灯是一种过渡用的信号灯,
2、当它亮时,表示道路上的红绿色信号灯即将进行转换。下面拿东西南北四个方向来说明。当东西方向允许行车(或者左转)的时候,南北方向就禁止行车,即此时东西方向的绿灯亮红灯灭,而南北方向的绿灯灭红灯亮。反之当南北方向允许行车(或者左转)的时候,东西方向就禁止行车,即此时南北方向的绿灯亮红灯灭,而东西方向的绿灯灭红灯亮。交通灯配置示意图如图1所示。同时当有特殊的情况发生时,能手动控制各个方向的信号灯。设计任务就是将这一电路用单片机来实现具体的控制。文案大全实用文档三、实验原理模拟交通灯控制器就是使用单片机来控制一些LED和数码管,模拟真实
3、交通灯的功能。红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字路口的车辆及行人交通,计时牌显示路口通行转换剩余时间等。根据设计的要求可知,系统的硬件原理框图如下图所示。图2.系统硬件框图单片机选用AT89C51,南北向和东西向各采用2个数码管计时,同时需要对该方向的指示灯的点亮时间进行倒计时。键盘系统可以根据系统的需要设置不同的键的个数,可以选择线式键盘或矩阵式键盘,若单片机的IO口不够用时,可以考虑扩展8255或8155满足系统的要求。为了在后面的分析中便于说明,将东西方向绿灯亮,南北方向红灯亮命名为状态1,东西
4、方向绿灯闪,南北方向红灯亮命名为状态2,东西方向黄灯闪,南北方向红灯亮命名为状态3,将东西方向红灯亮,南北方向绿灯亮命名为状态4,东西方向红灯亮,南北方向绿灯闪命名为状态5,东西方向红灯亮,南北方向黄灯闪命名为状态6。假定红绿灯点亮的时间为20s,黄灯点亮的时间为5s。黄灯每隔500ms亮一次,之后灭500ms(亮灭一次叫作闪烁一次),一共闪烁5次,持续5s。各个状态之间的变换情况如下:状态2状态3状态4状态5状态6状态1状态1状态2状态3状态4状态5状态6状态1文案大全实用文档四、实验仪器、材料电脑、Proteus软件、Ke
5、iluVision3软件五、实验过程及原始记录5.1单片机的最小系统ATMEL公司生产的AT89C51单片机它是硬件电路的核心部分,时钟电路晶振使用12MHz,复位电路采取按键复位方式。具体连接图2和图3。图2.单片机系统的时钟电路图3.单片机系统的复位电路5.2数码管显示电路显示电路采用8个共阳数码管,P1口作为数码管的输入,P0.4、P0.5、P0.6P0.7分别控制东西南北四路数码管的位选端C1,C2,C3,C4。文案大全实用文档图4.数码管显示电路(上图是共阴数码管)六、实验结果及分析图6.交通灯仿真图(1)文案大全实
6、用文档图7.交通灯仿真图(2)图8.交通灯仿真图(3)通过软件仿真显示,系统基本能完成要求。结果分析:如上述图所示,交通灯状态显示电路由东西南北四个方向各三个LED灯组成,分别显示四个方向上红、黄、绿三个状态,用以指示十字路口各方向车辆的行驶。通过软件编程,可使路口交通变化情况为:南北方向和东西方向两条交叉道路上的车辆交替运行,主干道每次通行时间都设为20秒。在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;黄灯亮时每秒闪亮一次。七、实验体会文案大全实用文档通过这次系统实验,对以前学过的知识进行了巩固,自己做了电路编了程
7、序,通过和书上的对比,加深了对单片机的理解,提高了应用的能力,而且提高了我们的发现、分析、解决问题的能力,同时提高了大家对专业的认识及兴趣,对于我们工科生来说,对以后的学习很有帮助。附录主要程序清单;------------------------------------;程序实现功能;西南北路口直行与转弯交替通行,数码管显示直行通行倒计时,红绿黄灯显示包括人行道在内的道路交通状态。#include#defineucharunsignedcharucharcount,second,i,flag;sbith_r
8、ed=P2^1;//定义端口sbith_green=P2^2;sbith_yellow=P2^3;sbitl_red=P2^4;sbitl_green=P2^5;sbitl_yellow=P2^6;ucharcodetable[]={0x3F,0x06,0x5B,0x4F,0