標(biāo)題: LED燈模擬交通燈的簡單單片機(jī)仿真 [打印本頁]

作者: 51黑ff    時(shí)間: 2016-9-25 15:35
標(biāo)題: LED燈模擬交通燈的簡單單片機(jī)仿真

單片機(jī)交通燈所有資料下載:
LED模擬交通燈.rar (45.06 KB, 下載次數(shù): 24)


源程序:
  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^3;
  8. sbit YELLOW_B=P0^4;
  9. sbit GREEN_B=P0^5;//南北向燈
  10. uchar Flash_Count=0,a=1; //閃爍次數(shù),操作類型變量
  11. void delay(uint x)   
  12. {    uchar i;
  13.      while(x--)
  14.      {   
  15.           for(i=0;i<120;i++);
  16.      }
  17. }
  18.                                      //延時(shí)
  19. void Traffic_Light()
  20. {
  21.      switch(a)
  22.      {            
  23.                 case 1://東西向綠燈與南北向紅燈亮
  24.                                       RED_A=1;YELLOW_A=1;GREEN_A=0;
  25.                                 RED_B=0;YELLOW_B=1;GREEN_B=1;
  26.                                         delay(2000);
  27.                                         a=2;
  28.                                         break;
  29.                         case 2://東西向黃燈閃爍,綠燈關(guān)閉
  30.                                 delay(300);
  31.                                       YELLOW_A=~YELLOW_A;GREEN_A=1;
  32.                     if(++Flash_Count!=10)//閃爍5 次
  33.                        return;
  34.                                         Flash_Count=0;
  35.                                           a=3;
  36.                                         break;
  37.                         case 3://東西向紅燈亮,南北向綠燈亮
  38.                                 RED_A=0;YELLOW_A=1;GREEN_A=1;
  39.                                 RED_B=1;YELLOW_B=1;GREEN_B=0;
  40.                                         delay(2000);
  41.                                         a=4;
  42.                                         break;
  43.                         case 4://南北向黃燈閃爍5次,綠燈關(guān)閉
  44.                                 delay(300);
  45.                                       YELLOW_B=~YELLOW_B;GREEN_B=1;
  46.                     if(++Flash_Count!=10)//閃爍5 次
  47.                                         return;
  48.                                         Flash_Count=0;
  49.                                         a=1;
  50.           }
  51. }
  52. void main()
  53. {
  54.      while(1)
  55.      {
  56.            Traffic_Light();
  57.      }
  58. }
復(fù)制代碼




作者: diamond99    時(shí)間: 2017-6-26 14:10
有程序框圖嗎?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1