找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4583|回復: 1
打印 上一主題 下一主題
收起左側(cè)

LED模擬交通燈(帶左轉(zhuǎn)向)proteus仿真與單片機源碼

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:308289 發(fā)表于 2018-5-2 21:43 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
交通燈運行一周耗時40秒,運行情況是東西方向綠燈亮10秒后滅,黃燈閃爍3秒后滅,左轉(zhuǎn)向燈亮4秒后滅,黃燈閃爍3秒后滅,紅燈亮20秒
南北方向交通燈運行情況是紅燈亮20秒后滅,綠燈亮10秒后滅,黃燈閃爍3秒后滅
左轉(zhuǎn)向燈亮4秒后滅,黃燈閃爍3秒

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include <reg52.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 LEFT_A=P2^0;
  8. sbit RED_B=P0^3;
  9. sbit YELLOW_B=P0^4;
  10. sbit GREEN_B=P0^5;
  11. sbit LEFT_B=P2^1;

  12. uchar Flash_Count = 0;
  13. Operation_Type = 1;

  14. void DelayMS(uint x)
  15. {
  16.         uchar t;
  17.         while(x--)
  18.         {
  19.                  for(t=120;t>0;t--);
  20.         }
  21. }

  22. void Traffic_lignt()
  23. {
  24.         switch(Operation_Type)
  25.         {
  26.                  case 1:
  27.                         RED_A=1;YELLOW_A=1;GREEN_A=0;LEFT_A=1;
  28.                         RED_B=0;YELLOW_B=1;GREEN_B=1;LEFT_B=1;
  29.                         DelayMS(10000);
  30.                         Operation_Type = 2;
  31.                         break;
  32.                 case 2:
  33.             GREEN_A=1;
  34.                         DelayMS(300);
  35.                         YELLOW_A=~YELLOW_A;
  36.                         if(++Flash_Count !=10)
  37.                                 return;
  38.                         Flash_Count=0;
  39.                         Operation_Type = 3;
  40.                         break;
  41.                 case 3:
  42.                         RED_A=1;YELLOW_A=1;GREEN_A=1;LEFT_A=0;
  43.                 //        RED_B=0;YELLOW_B=1;GREEN_B=1;LEFT_B=1;
  44.                         DelayMS(4000);
  45.                         Operation_Type = 4;
  46.                         break;       
  47.         case 4:
  48.                         LEFT_A=1;
  49.             DelayMS(300);
  50.                         YELLOW_A=~YELLOW_A;
  51.                         if(++Flash_Count !=10)
  52.                                 return;
  53.                         Flash_Count=0;
  54.                         Operation_Type = 5;
  55.                         break;       

  56.         case 5:
  57.             RED_A=0;YELLOW_A=1;GREEN_A=1;LEFT_A=1;
  58.             RED_B=1;YELLOW_B=1;GREEN_B=0;LEFT_B=1;
  59.             DelayMS(10000);
  60.                         Operation_Type = 6;
  61.                         break;
  62.         case 6:
  63.                    GREEN_B=1;  
  64.             DelayMS(300);
  65.                         YELLOW_B=~YELLOW_B;
  66.                         if(++Flash_Count !=10)
  67.                                 return;
  68.                         Flash_Count=0;
  69.             Operation_Type = 7;
  70.                         break;
  71.          case 7:
  72.          //  RED_A=0;YELLOW_A=1;GREEN_A=1;LEFT_A=1;
  73.            RED_B=1;YELLOW_B=1;GREEN_B=1;LEFT_B=0;
  74.            DelayMS(4000);
  75.            Operation_Type = 8;
  76.                    break;
  77.         case 8:
  78.             LEFT_B=1;
  79.            // RED_A=0;YELLOW_A=1;GREEN_A=1;LEFT_A=1;       
  80.             DelayMS(300);
  81.                         YELLOW_B=~YELLOW_B;
  82.                         if(++Flash_Count !=10)
  83.                                 return;
  84.                         Flash_Count=0;
  85.             Operation_Type = 1;
  86. ……………………

  87. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
LED模擬交通燈(帶左轉(zhuǎn)向).zip (70.12 KB, 下載次數(shù): 46)





評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:455395 發(fā)表于 2019-1-4 11:59 | 只看該作者
都是錯誤還發(fā)什么
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表