访问电脑版页面

导航:老古开发网手机版51单片机51单片机与LED

51单片机上实现的交通灯程序

导读:
关键字:
交通灯,51单片机,

  这是我前几天无聊自己写的交通灯程序,在51单片机上实现的。基本的定时的交通灯转换是实现了,根据时间来改变交通灯的变换。可以下载下来看看的,电路图和原程序都有,代码就自己下载吧。我不全放上了。

  仿真原理图如下:

  单片机源程序:

  #include

  sbit beiR=P1^0;

  sbit beiY=P1^1;

  sbit beiG=P1^2;

  sbit nanR=P1^3;

  sbit nanY=P1^4;

  sbit nanG=P1^5;

  uint a,b,c,type,j,i;

  void Delay(uint x) //延时

  {

  uchar i;

  while(x--)for(i=0;i《120;i++);

  }

  void delay_ms(uint q) //延时

  {

  uint i,j;

  for(i=q;i》0;i--)

  for(j=141;j》0;j--);

  }

  void shumaguan(uint k) //数码管显示

  {

  b=k/10;

  c=k%10;

  P3=11111101;

  P2=smg_dw;//选段码

  delay_ms(20);//延时5ms

  P3=11111110;

  P2=smg_dw[c];//选段码

  delay_ms(20);//延时5ms

  }

  main()

  {

  TMOD=0x01; //设置定时器T0为工作方式1定时

  TH0=(65536-50000)/256;

  TL0=(65536-50000)%256;

  TR0=1; //启动T0计数

  ET0=1; //允许T0中断

  EX0=1; //允许外部中断0中断

  EA=1; //开中断

  IT0=1; //允许外部中断0为边沿触发方式

  a=10; //倒计时10s

  type=1;

  while(1){

  switch(type)

  {

  case 1: //东西向绿灯与南北向红灯亮

  beiR=0;beiY=1;beiG=1;

  nanR=1;nanY=1;nanG=0;

  shumaguan(a);

  break;

  case 2: //东西向黄灯闪烁,绿灯关闭

  if(a%2!=0)

  {

  beiR=1;beiY=0;beiG=1;

  }

  if(a%2==0)

  {

  beiR=1;beiY=1;beiG=1;

  }

  shumaguan(a);

  break;

  case 3: //东西向红灯,南北向绿灯亮

  beiR=1;beiY=1;beiG=0;

  nanR=0;nanY=1;nanG=1;

  shumaguan(a);

  break;

  case 4: //南北向黄灯闪烁3次

  if(a%2!=0)

  {

  nanR=1;nanY=0;nanG=1;

  }

  if(a%2==0)

  {

  nanR=1;nanY=1;nanG=1;

  }

  shumaguan(a);

  break;

  }

  }

  }

来源:电工学习网   作者:电工学习网  2020/7/15 17:34:00
栏目: [ 51单片机与LED]

相关阅读

51单片机通过程序控制心形led灯闪烁的设计

AT89S51单片机控制八个发光二极管左移右移重复循环发光的设计

AT89S51单片机多路开关控制发光二极管显示的设计

AT89S51单片机对6位LED数码管实现显示时计方式的设计

51单片机实现LED点阵屏动态扫描显示的设计

AT89C51单片机的流水灯控制设计

51单片机上实现的交通灯程序

LED流星雨灯的制作(51单片机程序代码)

AT89S51单片机发光二极管多功能闪烁的设计

51单片机通过I/O口对LED进行控制的设计

AT89S51单片机广告灯电路的设计

51单片机对闪烁灯的控制设计

51单片机对八路发光二极管广告灯的设计

以51单片机为核心的LED彩灯控制器设计

AT89S51单片机对8X8点阵LED的控制设计

74LS164在2051单片机LED显示电路中的应用

51单片机流水灯电路图大全(六款单片机流水灯电路图介绍)

8051单片机进行8路LED模拟分支控制

基于C51单片机开发的彩灯霓虹灯控制电路

51单片机对LED点阵屏的设计