基于51单片机的交通灯控制器实验

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1一、实验目的1.学会用8051单片机开发简单的计算机控制系统;2.学会用汇编语言和C语言开发系统软件;3.学会8051单片机开发环境wave或KeiluVision3软件的使用;4.学会Proteus软件的使用方法,会用Proteus单片机系统进行仿真;5.熟悉七位数码管显示的使用方法;6.了解交通灯控制系统的基本组成。二、实验内容及要求交通灯处在十字路口上。它有红﹑黄﹑绿三种颜色的灯组成。红灯亮时道路上的车辆停止运行;黄灯是一种过渡用的信号灯,当它亮时,表示道路上的红绿色信号灯即将进行转换。下面拿东西南北四个方向来说明。当东西方向允许行车(或者左转)的时候,南北方向就禁止行车,即此时东西方向的绿灯亮红灯灭,而南北方向的绿灯灭红灯亮。反之当南北方向允许行车(或者左转)的时候,东西方向就禁止行车,即此时南北方向的绿灯亮红灯灭,而东西方向的绿灯灭红灯亮。交通灯配置示意图如图1所示。同时当有特殊的情况发生时,能手动控制各个方向的信号灯。设计任务就是将这一电路用单片机来实现具体的控制。教师评阅意见:签名:年月日实验成绩:南北东西图1.十字路口交通灯配置示意图2三、实验原理模拟交通灯控制器就是使用单片机来控制一些LED和数码管,模拟真实交通灯的功能。红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字路口的车辆及行人交通,计时牌显示路口通行转换剩余时间等。根据设计的要求可知,系统的硬件原理框图如下图所示。单片机键盘LED显示三色指示灯图2.系统硬件框图单片机选用AT89C51,南北向和东西向各采用2个数码管计时,同时需要对该方向的指示灯的点亮时间进行倒计时。键盘系统可以根据系统的需要设置不同的键的个数,可以选择线式键盘或矩阵式键盘,若单片机的IO口不够用时,可以考虑扩展8255或8155满足系统的要求。为了在后面的分析中便于说明,将东西方向绿灯亮,南北方向红灯亮命名为状态1,东西方向绿灯闪,南北方向红灯亮命名为状态2,东西方向黄灯闪,南北方向红灯亮命名为状态3,将东西方向红灯亮,南北方向绿灯亮命名为状态4,东西方向红灯亮,南北方向绿灯闪命名为状态5,东西方向红灯亮,南北方向黄灯闪命名为状态6。假定红绿灯点亮的时间为20s,黄灯点亮的时间为5s。黄灯每隔500ms亮一次,之后灭500ms(亮灭一次叫作闪烁一次),一共闪烁5次,持续5s。各个状态之间的变换情况如下:状态2状态3状态4状态5状态6状态1状态1状态2状态3状态4状态5状态6状态13四、实验仪器、材料电脑、Proteus软件、KeiluVision3软件五、实验过程及原始记录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图4.数码管显示电路(上图是共阴数码管)六、实验结果及分析图6.交通灯仿真图(1)5图7.交通灯仿真图(2)图8.交通灯仿真图(3)通过软件仿真显示,系统基本能完成要求。结果分析:如上述图所示,交通灯状态显示电路由东西南北四个方向各三个LED灯组成,分别显示四个方向上红、黄、绿三个状态,用以指示十字路口各方向车辆的行驶。通过软件编程,可使路口交通变化情况为:南北方向和东西方向两条交叉道路上的车辆交替运行,主干道每次通行时间都设为20秒。在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;黄灯亮时每秒闪亮一次。七、实验体会通过这次系统实验,对以前学过的知识进行了巩固,自己做了电路编了程序,6通过和书上的对比,加深了对单片机的理解,提高了应用的能力,而且提高了我们的发现、分析、解决问题的能力,同时提高了大家对专业的认识及兴趣,对于我们工科生来说,对以后的学习很有帮助。附录主要程序清单;------------------------------------;程序实现功能;西南北路口直行与转弯交替通行,数码管显示直行通行倒计时,红绿黄灯显示包括人行道在内的道路交通状态。#includereg51.h#defineucharunsignedcharucharcount,second,i,flag;sbith_red=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,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//*********************************//主程序7//*********************************voidmain(){P1=0x00;//关闭显示P3=0x00;flag=1;//置标志位second=20;//状态1,4,红绿灯亮20sTMOD=0x01;//设置定时器0,为方式100000001TH0=0x3c;//置定时器的初始值,定时50ms100msTL0=0xb0;TR0=1;//启动定时器IE=0x82;//允许中断while(1);}//***********************************//状态1,东西方向绿灯亮,南北方向红灯亮//***********************************voidstate1(void){h_red=1;//东西方向绿灯亮h_green=0;h_yellow=0;l_red=0;l_green=1;l_yellow=0;//南北方向红灯亮}//************************************┇//***************************************//中断程序8//***************************************voidint_0()interrupt1using0{count++;TH0=0x3c;TL0=0xb0;switch(flag){case1://标志位为1,则显示第一种状态case2://标志位为2,则显示第三种状态case3://标志位为3,则显示第三种状态case4://标志位为4,则显示第四种状态case5://标志位为5,则显示第五种状态case6://标志位为6,则显示第六种状态default:break;}}

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功