欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3524|回復: 0
打印 上一主題 下一主題
收起左側

基于51單片機控制的四組交通燈proteus+代碼

[復制鏈接]
跳轉到指定樓層
樓主
單片機控制的交通燈。仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include <REG51.H>
  2. unsigned char t0,t1;     //定義全局變量,用來保存延時時間循環次數
  3. void delay0_5s1()
  4. {  
  5.    for(t0=0;t0<0x0a;t0++)        // 采用全局變量t0作為循環控制變量
  6.    {            
  7.       TH1=0x3c;                  // 設置定時器初值
  8.       TL1=0xb0;
  9.       TR1=1;               // 啟動T1
  10.       while(!TF1);        // 查詢計數是否溢出,即定時50ms時間到,TF1=1
  11.       TF1=0;               // 50ms定時時間到,將定時器溢出標志位TF1清零
  12.    }
  13. }
  14. //函數功能:實現0.5秒~128秒延時,延時時間為0.5秒×t
  15. void delay_t1(unsigned char t)
  16. {
  17.    for(t1=0;t1<t;t1++)         // 采用全局變量t0作為循環控制變量
  18.    delay0_5s1();
  19. }
  20. //函數功能:外部中斷0中斷函數,緊急情況處理,當CPU響應外部中斷
  21. //0的中斷請求時,自動執行該函數,實現兩個方向紅燈同時亮10秒
  22. void int_0() interrupt 0               // 緊急情況中斷
  23. {
  24.    unsigned char i,j,k,l,m;
  25.    i=P1;                             // 保護現場,暫存P1口、t0、t1、TH1、TH0
  26.    j=t0;
  27.    k=t1;
  28.    l=TH1;
  29.    m=TH0;
  30.    P1=0xdb;                       // 兩個方向都是紅燈
  31.    delay_t1(20);                   // 延時10秒
  32.    P1=i;               // 恢復現場,恢復進入中斷前P1口、t0、t1、TH1、TH0
  33.    t0=j;
  34.    t1=k;
  35.    TH1=l;
  36.    TH0=m;
  37. }
  38. //函數功能:外部中斷1中斷函數,特殊情況處理,當CPU響應外部中斷
  39. //1的中斷請求時,自動執行該函數,實現A道放行5秒
  40. void int_1() interrupt 2              // 特殊情況中斷
  41. {
  42.    unsigned char i,j,k,l,m;
  43.    EA=0;                                //關中斷
  44.    i=P1;                                // 保護現場,暫存P1口、t0、t1、TH1、TH0
  45.    j=t0;
  46.    k=t1;
  47.    l=TH1;
  48.    m=TH0;
  49.    EA=1;                                      // 開中斷
  50.    P1=0xf3;                             // A道放行
  51.    delay_t1(10);                         // 延時5秒
  52.    EA=0;                                     // 關中斷
  53.    P1=i;                   // 恢復現場,恢復進入中斷前P1口、t0、t1、TH1、TH0
  54.    t0=j;
  55.    t1=k;
  56.    TH1=l;
  57.    TH0=m;
  58.    EA=1;                                      //開中斷
  59. }
  60. void main()                //主函數                       
  61. {
  62.    unsigned char k;
  63.    TMOD=0x10;                // T1工作在方式1
  64.    EA=1;                        // 開放總中斷允許位
  65.    EX0=1;                    // 開外部中斷0中斷允許位
  66.    IT0=1;                        // 設置外部中斷0為下降沿觸發
  67.    EX1=1;                    // 開外部中斷1中斷允許位
  68.    IT1=1;                        // 設置外部中斷1為下降沿觸發
  69.    while(1) {
  70.       P1=0xf3;                // A綠燈,B紅燈,延時5秒
  71.       delay_t1(10);                                  
  72.       for(k=0;k<3;k++)         // A綠燈閃爍3次
  73.      {             
  74.          P1=0xf3;
  75.          delay0_5s1();                // 延時0.5秒
  76.          P1=0xfb;
  77.          delay0_5s1();                // 延時0.5秒
  78.       }
  79. P1=0xeb;                // A黃燈,B紅燈,延時2秒
  80.    delay_t1(4);
  81.    P1=0xde;                // A紅燈,B綠燈,延時5秒
  82.    delay_t1(10);
  83.    for(k=0;k<3;k++)        // B綠燈閃爍3次
  84.    {               
  85.       P1=0xde;
  86.       delay0_5s1();                // 延時0.5秒
  87.       P1=0xdf;
  88.       delay0_5s1();                // 延時0.5秒
  89.    }
  90.    P1=0xdd;                // A紅燈,B黃燈,延時2秒
  91.    delay_t1(4);                               
  92.   }
  93. }
復制代碼

所有資料51hei提供下載:
四組交通燈.rar (66.71 KB, 下載次數: 24)


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

使用道具 舉報

無效樓層,該帖已經被刪除
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

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