标题: 交通信号灯protues+keil源码 [打印本页]

作者: oktanglong123    时间: 2017-2-13 16:50
标题: 交通信号灯protues+keil源码
交通信号灯protues+keil,有电子爱好者可加qq1822286794,一起来搞电子制作。加qq时请打上备注“电子爱好者”。


单片机源程序:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit RED_A=P0^0;    //东西向灯

  5. sbit YELLOW_A=P0^1;

  6. sbit GREEN_A=P0^2;

  7. sbit RED_B=P0^5;    //南北向灯

  8. sbit YELLOW_B=P0^4;

  9. sbit GREEN_B=P0^3;

  10. uchar Flash_Count=0,Operation_Type=1; //闪烁次数,操作类型变量

  11. void DelayMS(uint x)
  12.     {  
  13.      uchar i;
  14.      
  15.          while(x--)
  16.      
  17.          for(i=0;i<120;i++);
  18.      
  19.          }

  20. void Traffic_Light()
  21. {   
  22. switch(Operation_Type)

  23.     {        
  24.        case 1:   //东西向绿灯与南北向红灯亮     
  25.           RED_A=1;
  26.           YELLOW_A=1;
  27.           GREEN_A=0;     
  28.           RED_B=0;
  29.           YELLOW_B=1;
  30.           GREEN_B=1;     
  31.           DelayMS(3000);     
  32.           Operation_Type=2;     
  33.           break;
  34.                   
  35.                   
  36.           case 2:  //东西向黄灯闪烁,绿灯关闭
  37.             
  38.        
  39.                   DelayMS(500);          //延时下面的YELLOW_A=1的状态,YELLOW_A=1是从case1里的状态延续下来的
  40.                   YELLOW_A=~YELLOW_A;
  41.                   GREEN_A=1;     
  42.                   if(++Flash_Count!=10) return;      //当if里面的条件不成立,(return)就会返回到Traffic_Light,从新开始执行
  43.               Flash_Count=0;                                      //从新执行时由于swich语句是一个一个语句块的执行,下次执行依然会从语句块2开始执行
  44.                   Operation_Type=3;     
  45.                   break;   
  46.                   
  47.                   
  48.           case 3:   //东西向红灯,南北向绿灯亮     
  49.                   RED_A=0;
  50.                   YELLOW_A=1;
  51.                   GREEN_A=1;     
  52.                   RED_B=1;
  53.                   YELLOW_B=1;
  54.                   GREEN_B=0;     
  55.                   DelayMS(3000);     
  56.                   Operation_Type=4;     
  57.                   break;
  58.                   
  59.                   
  60.           case 4: //南北向黄灯闪烁 5 次绿灯关闭     
  61.                   DelayMS(500);         
  62.                   YELLOW_B=~YELLOW_B;
  63.                   GREEN_B=1;     
  64.                   if(++Flash_Count!=10) return;     
  65.                   Flash_Count=0;     
  66.                   Operation_Type=1;  
  67.    }
  68. }

  69.                   //主程序
  70.                   
  71.                   void main()
  72.                   {  
  73.                          while(1) Traffic_Light();
  74.                                  
  75.                    }


  76.                     
复制代码


资料下载:
5.交通灯.rar (53.32 KB, 下载次数: 111)

作者: 无双剣傷    时间: 2017-3-3 18:06
这个运行
作者: 老师我没抄作业    时间: 2017-6-15 16:01
运行不了啊
作者: minminaya    时间: 2017-6-18 11:38
楼主威武
作者: Kild    时间: 2017-6-27 09:22
厉害
作者: Albert1022    时间: 2017-7-17 10:41
厉害了
作者: laoleilgf    时间: 2017-10-11 19:55
6666666666666

作者: laoleilgf    时间: 2017-10-11 19:56
厉害了楼主
作者: jiankang333    时间: 2018-1-3 20:45
大神呀
作者: 736317205    时间: 2018-3-29 09:52
赞一个
作者: 墨坊丶    时间: 2019-6-17 11:14
大佬威武
作者: 13487086265    时间: 2020-3-29 21:16
proteus,不是protues




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1