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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6286|回復: 8
收起左側

51單片機交通燈控制實訓 可實現 警燈 夜間等功能 帶仿真 程序 原理圖

  [復制鏈接]
ID:122781 發表于 2016-5-24 09:28 | 顯示全部樓層 |閱讀模式
可實現 警燈 夜間 等功能的51單片機交通燈

0.png
51單片機交通燈的仿真圖
0.png
交通燈的電路原理圖

源程序:
  1. #include<reg51.h>
  2. #define smg P1
  3. #define bit P3

  4. sbit red1=P0^0;//1方向紅燈
  5. sbit green1=P0^1;//1方向綠燈
  6. sbit yellow1=P0^2; //1方向黃燈
  7. sbit red2=P0^3;//2方向紅燈
  8. sbit green2=P0^4; //2方向綠燈
  9. sbit yellow2=P0^5; //2方向黃燈
  10. sbit setkey=P2^0; //設置按鍵
  11. sbit upkey=P2^1;//時間加
  12. sbit downkey=P2^2;//時間減
  13. sbit backkey=P2^3;//退出鍵
  14. sbit choosekey=P2^4;//選擇鍵
  15. unsigned char  tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  16. unsigned char time,s,s1,s2,t,t2,x1,x2,flag,temp,r,q;
  17. int t1;
  18. void delay(int x); //延時程序
  19. void timer0(void); //中斷
  20. void set();//設置程序
  21. void int0();//秒計數

  22. void main(void)         //主函數
  23. {  t=60;
  24.    s=1;
  25.    r=0;
  26.    timer0();         
  27.    int0();
  28.    while(1)
  29.   {   
  30.       set();
  31.           t1=t-s;
  32.           if(t1==-1)
  33.               {s=1;}
  34.           s1=t1%10;s2=t1/10;
  35.           bit=0xfd;smg=tab[s1];delay(2);bit=0xfe;smg=tab[s2];delay(2);   //個位,十位顯示賦值
  36.           if(t1==-1){r++;q=r%2; if(r==4){r=2;}}        //當數碼管顯示時間為-1時,對r進行加1并通過求余操作,產生兩種不同的紅綠燈狀態。
  37.           if(q==1){red1=0;green1=1;yellow1=0;red2=1;green2=0;yellow2=0;         //狀態1燈光。
  38.                            if(t1<3&&t1>-1){green1=0;if(time>9){yellow1=~yellow1;}}}        //狀態1黃燈閃爍。
  39.           if(q==0){red1=1;green1=0;yellow1=0;red2=0;green2=1;yellow2=0;          //狀態2燈光。
  40.                            if(t1<3&&t1>-1){ green2=0;if(time>9){yellow2=~yellow2;}}}        //狀態2黃燈閃爍。  
  41.            if(TF0==1)//定時器溢出操作
  42.          {TF0=0;break;}
  43.            }
  44.   }

  45. void set()
  46. {
  47.   if(setkey==0)
  48.   { delay(5); //防抖操作
  49.     if(setkey==0)
  50.       {flag=1;
  51.           while(flag)
  52.                   { TR0=0;
  53.                               bit=0xfd;smg=0x00;delay(1);        //數碼管全滅
  54.                     bit=0xfe;smg=0x00;delay(1);
  55.                                 if(backkey==0)
  56.                       {delay(15);
  57.                        if(backkey==0)          //設置程序返回操作
  58.                          {flag=0;TR0=1;}
  59.                        }
  60.                    if(choosekey==0)
  61.                       {delay(60);
  62.                        if(choosekey==0)
  63.                          {++temp;
  64.                           if(temp==6){temp=1;}
  65.                                         if(temp==1)
  66.                               {while(temp)  //時間加減操作
  67.                                                        {x1=t%10; x2=t/10;  
  68.                                     bit=0xfd;smg=tab[x1];delay(2);bit=0xfe;smg=tab[x2];delay(2);
  69.                                                                 if(upkey==0){delay(60);if(upkey==0)t++;if(t==100)t=10;}
  70.                                                                 if(downkey==0){delay(60);if(downkey==0)t--;if(t==9)t=10;}
  71.                                                                 red1=1;green1=0;yellow1=0;red2=1;green2=0;yellow2=0;
  72.                                                                 if(setkey==0){ delay(60);if(setkey==0){break;} }}
  73.                                                 }
  74.                                             else if(temp==2) {red1=1;green1=0;yellow1=0;red2=1;green2=0;yellow2=0;}        //禁行模式
  75.                                  else if(temp==3){red1=0;green1=1;yellow1=0;red2=1;green2=0;yellow2=0; }//方向1通行模式
  76.                                      else if(temp==4){red1=1;green1=0;yellow1=0;red2=0;green2=1;yellow2=0; } //方向2通行模式
  77.                                        else if(temp==5){red1=0;green1=0; red2=0;green2=0; //夜間模式
  78.                                                            while(1){delay(255);
  79.                                                                          yellow1=~yellow1;
  80.                                                                  yellow2=~yellow2;
  81.                                                                                    if(backkey==0)
  82.                                                                         {  delay(15);
  83.                                                                                                                                          if(backkey==0)
  84.                                                                                                                                          {break;}
  85.                                                                              }}}}}        
  86. }}}}
  87. void timer0(void)
  88. {   TMOD = 0x01;     
  89.     TH0  = 0x3C;         
  90.     TL0  = 0xB0;
  91.     EA   = 1;         
  92.     ET0  = 1;                 
  93.     TR0  = 1;        
  94. }
  95. void int0() interrupt 1 using 0        
  96. {
  97.         TH0=0x3C;
  98.         TL0=0xB0;
  99.         time++;
  100.         if(time==20)
  101.         {  s++;
  102.        time=0;}
  103. }
  104. void delay(int x)
  105. {   int i,j;
  106.     for(i=x;i>0l;i--)
  107.      for(j=255;j>0;j--);
  108. }
復制代碼



0.png
交通燈所有資料下載:
1352200108_趙曉杰_交通燈.rar (9.46 MB, 下載次數: 84)

評分

參與人數 2黑幣 +55 收起 理由
空夢 + 5 很給力!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:302686 發表于 2018-4-10 10:01 | 顯示全部樓層
想學習一下
回復

使用道具 舉報

ID:364505 發表于 2018-7-4 09:19 | 顯示全部樓層
很好,很給力

評分

參與人數 1黑幣 +5 收起 理由
zzzzzzz665 + 5

查看全部評分

回復

使用道具 舉報

ID:364505 發表于 2018-7-4 09:30 | 顯示全部樓層
想學習一下
回復

使用道具 舉報

ID:371540 發表于 2018-7-15 08:02
黑黑黑,為什么我邀請朋友注冊了這個網站,沒有送我30黑幣呀。

ID:413051 發表于 2018-10-21 12:21 | 顯示全部樓層
想學習下。
回復

使用道具 舉報

ID:313328 發表于 2018-11-12 20:21 | 顯示全部樓層
感謝分享,讓我們學習
回復

使用道具 舉報

ID:358801 發表于 2018-12-24 09:03 | 顯示全部樓層
很好!!優秀
回復

使用道具 舉報

ID:149799 發表于 2018-12-24 11:46 | 顯示全部樓層
單片機無所不能
回復

使用道具 舉報

ID:562096 發表于 2019-6-13 20:48 | 顯示全部樓層
對我學單片機很有幫助
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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