利用单片机实现对交通灯的模拟控制

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:guomingjie000111
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文主要介绍了利用单片机LY-51SV2.3开发板实现对交通灯的模拟控制,通过本实例的设计与制作,使我们对单片机的学习有一个更深入的理解与掌握,并加强C语言的编程能力。希望通过本实例的学习,对以后进一步学习单片机提供一个良好的基础。
  关键词:单片机;交通灯;C语言
  中图分类号:TP319
  目前,交通信号灯可以说随处可见,只要有交通的地方的就有交通控制灯,我们在街道随处可以见到红、黄、绿三色信号灯,交通灯在生活中是至关重要的,没有交通灯,交通就会陷入瘫痪,人们的出行就会受到影响,所以本文利用LY-51SV2.3开发板,通过C语言编程模拟实现对交通灯的简单控制,使初学者对LY-51SV2.3开发板有一个基本的了解与掌握,对C语言编程有个基本的掌握,为以后的进一步学习提供基础。
  1设计要求
  双干线十字路口交通灯控制规则如下:
  A:放行线:绿灯亮放行25秒,黄灯亮警告5秒,然后红灯禁行;
  B:禁行线:红灯亮30秒禁止通行,绿灯亮放行。
  设计能控制东、南、西、北四个路口的红、黄、绿信号灯正常工作;
  当东西方向放行时,南北方向禁行,反之亦然;
  利用P1口控制LED灯实现;用数码管显示时间
  2接线
  根据设计要求,连接开发板线路端口。
  3函数与端口说明
  主函数voidmain(void)
  定时器中断程序(LED显示)voidtimer0()interrupt1
  共阴数码管显示函数voidDisplay(unsignedcharFirstBit,unsignedcharNum);
  延时函数voidDelayMs(unsignedchart);
  注:LED显示采用多分支选择语句
  sbitRED_A=P1^0;//南北
  sbitYELLOW_A=P1^1;sbitGREEN_A=P1^2;
  sbitRED_B=P1^3;//东西
  sbitYELLOW_B=P1^4;sbitGREEN_B=P1^5;
  unsignedchartime_A,time_B;
  unsignedcharoperation_type=1;
  unsignedcharms;
  #defineDataPortP0//定义数据端口程序中遇到DataPort则用P0替换
  sbitLATCH1=P2^2;//定义锁存使能端口段锁存
  sbitLATCH2=P2^3;//位锁存
  unsignedcharcodedofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  unsignedcharcodedofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7funsignedcharTempData[8];//存储显示值的全局变量
  voidDelayUs2x(unsignedchart);voidDelayMs(unsignedchart);
  voidDisplay(unsignedcharFirstBit,unsignedcharNum);
  4实现过程
  voidmain(void)
  { TMOD=0x01; //使用模式1,16位定时器
   TH0=(65536-50000)/256; //给定初值
   TL0=(65536-50000)%256;
   EA=1; ET0=1; TR0=1;
   time_A=25;time_B=30;
  while(1)//主循环
  {TempData[0]=dofly_DuanMa[time_A/10];
  TempData[1]=dofly_DuanMa[time_A%10];
  TempData[2]=dofly_DuanMa[time_B%10];
  TempData[3]=dofly_DuanMa[time_B%10];
   Display(0,4); }}
  voidDelayUs2x(unsignedchart)
  {while(--t);}
  voidDelayMs(unsignedchart)
  {while(t--){DelayUs2x(245); DelayUs2x(245);}}
  voidDisplay(unsignedcharFirstBit,unsignedcharNum)
  {unsignedchari; for(i=0;i  {DataPort=0;//清空数据,防止有交替重影
  LATCH1=1;LATCH1=0;
  DataPort=dofly_WeiMa[i+FirstBit];//取位码
  LATCH2=1;LATCH2=0;
  DataPort=TempData[i];//取显示数据,段码
  LATCH1=1;LATCH1=0;
  DelayMs(2);//扫描间隙延时,时间太长会闪烁,太短会造成重影}}
  voidtimer0()interrupt1
  { TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
   ms++; if(ms==20)
   {ms=0;time_A--; time_B--;}
   switch(operation_type)
   { case1:RED_A=1;YELLOW_A=1;GREEN_A=0; //南北绿灯 25S
   RED_B=0;YELLOW_B=1;GREEN_B=1; //东西红灯 30S
   if(time_A!=0)return; //25S时间到
   time_A=5;operation_type=2; break;
   case2:YELLOW_A=0;GREEN_A=1; //南北黄灯5S
   if(time_A!=0)return; //5S时间到
   time_A=30;time_B=25; //南北30S,东西25S
   operation_type=3; break;
   case3:RED_A=0;YELLOW_A=1;GREEN_A=1; //南北红灯30S
   RED_B=1;YELLOW_B=1;GREEN_B=0; //东西绿灯25S
   if(time_B!=0)return; //25S时间到
   time_B=5; //5S
   operation_type=4;break;
   case4:YELLOW_B=0;GREEN_B=1; //东西黄灯5S
   if(time_B!=0)return; //5S时间到
   time_A=25;time_B=30; //东西25S,南北30S
   operation_type=1; break; }
  5总结
  到此,我们通过对设计要求的理解,对开发板的线路端口的正确连接以及C语言编程,我们对整个实例就完成了,虽然本实例有很多不完善的地方,但是希望通过本实例的设计与制作,使我们对使用单片机开发模拟控制交通灯有个简单的理解与掌握,也希望通过进一步的学习,能设计制作出更优秀的作品来。
  参考文献:
  [1]郑锋.51单片机典型应用开发范例大全[M].北京:中国铁道出版社,2011,10.
  [2]郭天祥.新概念51单片机C语言教程[M].北京:电子工业出版社.
  [3]郑锋.51单片机应用系统典型模块开发大全[M].北京:中国铁道出版社,2013,2.
  
其他文献
在油气行业,为保证生产的高效、安全,HSE考核体系必不可少。一套科学、客观、合理的HSE指标考核体系是一次高质量HSE考核的基础。目前,还没有一种客观、科学、简单的筛选体系。
分析了高校信息检索课网络化教学的优势,论述了网络教学系统开发设计的原则,着重介绍了开发设计的信息检索课网络教学系统五大模块的功能与结构。
【正】 在中国封建王朝中,隋朝是一个短命的王朝,只存世30余年(公元581—618年),不过,它却以上承北朝遗绪,下开李唐盛业的特殊历史地位,受到了历史研究者的重视。近几十年来,
本文研究了DOS的重定向技术的实现原理及其实现技术。
软件开机自动运行,为用户操作使用频率高的软件提供了便利,它是基于操作系统的系统“启动项”实现。分析系统启动项的设置方法,在应用程序开发中,可以通过“写入注册表”和“
【正】 《金瓶梅词典》(王利器主编,吉林文史出版社1988年出版。以下简称《词典》)旁征博引,对书中生僻难解的方言市语多有精当的解释。但千虑一失,偶有疏漏,自或不免。今略
从减少环境污染,改善工人操作条件出发,采用新型煮练助剂,改进传统亚麻粗纱亚-氧煮漂工艺为氧漂工艺,获得较为满意的效果。
本文测定了新型层状混合金属簇合物(a)Fe2Mo2Te4和(b)Fe2Ta2Te4的穆斯堡尔谱。由穆斯堡尔参数确定这两个簇合物的Fe原子都属高自旋+3价,处四面体配位中心。簇合物(a)中两个铁原子是等价的,而簇合物(b)中两铁原子却
摘 要:随着社会的发展,科技的进步,人们的生活水平不断提高。智能化的产品极大的改变着人们的生活品质和方式。物联网技术作为一门新兴的技术学科,正被更多的应用于各个生产和生活领域。本文针对目前国内智能家居系统设计的局限性,在家庭内部引入传输距离远、成本低廉的ZigBee技术,实现网络传输从有线到无线转变,便于家居系统的施工。在家居内部的中央控制器实现了对传感器模块的信息采集和控制。各个模块通过ZigB
以互联网为核心的远程教育的发展,正以惊人的方式改变着人的学习方式,给我们提供了一个全新的教育空间。本文在交互研究的基础上充分挖掘Web2.0对异步交互所带来的重大潜在优势