久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3455|回復: 3
收起左側

基于單片機的交通信號燈仿真和源碼

[復制鏈接]
ID:396301 發表于 2018-9-11 00:47 | 顯示全部樓層 |閱讀模式
基于單片機的信號燈仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png

單片機源程序如下:

  1. /*****************************************************
  2. *   王瑾畢設-交通燈
  3. *
  4. *
  5. *
  6. *****************************************************/
  7. #include<include.h>

  8. sbit NS_GRE = P2^5;      
  9. sbit NS_YEL = P2^4;
  10. sbit NS_RED = P2^3;   
  11. sbit EW_GRE = P2^2;  
  12. sbit EW_YEL = P2^1;  
  13. sbit EW_RED = P2^0;   



  14. uint8  EW_Timer = unused8;  //東西方向紅燈定時器
  15. uint8  NS_Timer = unused8;  //南北方向紅燈定時器
  16. uint8  YEL_Timer = unused8; //黃燈 5s定時器

  17. int main(void)
  18. {

  19.     Timer_Init();    //定時器初始化
  20.     INT0_Init();     //外部中斷初始化   
  21.     EA=1;            //打開全局中斷
  22.    
  23.     NS_GRE = OFF;    //所有的燈都滅   
  24.     NS_YEL = OFF;
  25.     NS_RED = OFF;   
  26.     EW_GRE = OFF;  
  27.     EW_YEL = OFF;  
  28.     EW_RED = OFF;   
  29.     P3 = 0xFF;      //所有顯示滅

  30.     //先讓東西方向紅燈亮 南北方向通行
  31.     EW_Timer = EWTime_Count;//東西方向開始計時

  32.     while(1)
  33.     {
  34.            
  35.            if((EW_Timer != unused8) && (EW_Timer != 0)){ //東西方向做紅燈倒計時
  36.                 display1(EW_Timer/10, EW_Timer%10);      //東西方向顯示時間 南北方向不顯示
  37.                 EW_RED_ON();                             //東西方向保持紅燈
  38.                 NS_GRE_ON();                             //南北方向保持綠燈
  39.            }
  40.            else if((EW_Timer != unused8) && (EW_Timer == 0) && (YEL_Timer == unused8)){//東西方向紅燈計時到 東西方向保持紅燈 南北方向變黃燈 開始黃燈5s計時
  41.                 EW_RED_ON();                             //東西方向紅燈
  42.                 NS_YEL_ON();                             //南北方向黃燈
  43.                 YEL_Timer = YELTime_Count;               //5s計時
  44.            }
  45.            if((EW_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){
  46.                 display1(YEL_Timer/10, YEL_Timer%10);    //東西方向顯示時間 南北方向不顯示
  47.            }
  48.            if((EW_Timer != unused8) && (YEL_Timer == 0)){    //東西方向紅-南北方向黃燈5s計時到 東西紅燈定時器關 黃燈定時器關 南北紅燈 東西綠燈 南北計時器開
  49.                 EW_Timer = unused8;                      //東西紅燈定時器關
  50.                 YEL_Timer = unused8;                     //黃燈定時器關
  51.                 NS_RED_ON();                             //南北變紅燈
  52.                 EW_GRE_ON();                             //東西變綠燈
  53.                 NS_Timer = NSTime_Count;                 //南北紅燈定時器開
  54.            }



  55.            if((NS_Timer != unused8) && (NS_Timer != 0)){ //南北紅燈定時器正在計時
  56.                 display2(NS_Timer/10, NS_Timer%10);      //南北方向顯示時間 東西方向不顯示
  57.                 EW_GRE_ON();                             //東西保持綠燈
  58.                 NS_RED_ON();                             //南北保持紅燈
  59.            }
  60.            else if((NS_Timer != unused8) && (NS_Timer == 0) && (YEL_Timer == unused8)){ //南北方向紅燈計時到 南北方向保持紅燈 東西方向變黃燈 開始黃燈5s計時
  61.                 NS_RED_ON();                             //南北方向保持紅燈
  62.                 EW_YEL_ON();                             //東西方向變黃燈
  63.                 YEL_Timer = YELTime_Count;               //5s計時
  64.            }
  65.            if((NS_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){   
  66.                 display2(YEL_Timer/10, YEL_Timer%10);   //南北方向顯示時間 東西方向不顯示
  67.            }
  68.            if((NS_Timer != unused8) && (YEL_Timer == 0)){  //南北方向紅-東西方向黃燈5s計時到 南北方向定時器關 黃燈定時器關 東西方向變紅燈 南北方向變綠燈 東西方向紅燈計時器開始計時
  69.                 NS_Timer = unused8;
  70.                 YEL_Timer = unused8;
  71.                 EW_RED_ON();                           //東西方向變紅燈
  72.                 NS_GRE_ON();                           //南北方向變綠燈
  73.                 EW_Timer = EWTime_Count;               //東西方向開始計時
  74.            }


  75.            if(Flag_Key == 1){        //如果急停按鍵按下 則全紅燈 顯示滅
  76.                 P3 = 0xFF;           //所有顯示滅
  77.                 EW_RED_ON();         //東西方向紅燈
  78.                 NS_RED_ON();         //南北方向紅燈
  79.                
  80.                 EW_Timer = unused8;  //關閉所有定時器
  81.                 NS_Timer = unused8;
  82.                 YEL_Timer = unused8;
  83.            }
  84.     }
  85. }
復制代碼

所有資料51hei提供下載:
基于AT89C51的十字路口交通燈仿真.zip (200.94 KB, 下載次數: 45)


回復

使用道具 舉報

ID:380354 發表于 2018-9-20 17:34 | 顯示全部樓層
最近剛好學這個,學習一下!
回復

使用道具 舉報

ID:660825 發表于 2019-12-11 15:40 | 顯示全部樓層
為啥用keil4整進去有錯誤
回復

使用道具 舉報

ID:668086 發表于 2019-12-19 11:43 | 顯示全部樓層
最近剛好學這個,學習一下!
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人免费在线视频 | 成人伊人网 | 老司机午夜性大片 | 黄免费在线 | 视频三区 | 亚洲国产成人精品女人久久久 | 亚洲三级视频 | 亚洲一区视频在线 | 亚洲乱码一区二区 | 中文精品视频 | 色本道 | 福利在线看| 欧美日韩中文字幕在线 | 中文字幕亚洲一区二区三区 | 日韩免费视频一区二区 | 99爱视频| 久久精品中文字幕 | 超碰人人91 | 亚洲视频免费在线观看 | 久久久久国产精品一区二区 | 精品久久久久一区 | 亚洲一区二区三区四区在线观看 | 国产第二页 | 亚洲天堂一区 | 在线一区视频 | 在线三级网址 | 国产精品乱码一二三区的特点 | 成人性视频在线播放 | 日韩高清国产一区在线 | 久久久国产一区二区三区四区小说 | 99精品国产在热久久 | 国产精品一区二区三区免费观看 | 欧美日韩精品一区二区三区蜜桃 | 国产精品国产精品国产专区不卡 | www.久草.com | 精品国产欧美一区二区 | 特级生活片 | 91久久久久久久久 | 亚洲性视频| 成人片网址 | 91精品国产综合久久久久久 |