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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

這是我做的交通燈

[復制鏈接]
跳轉到指定樓層
樓主
這是我用一星期做的交通燈,請大家多多指教。
  1. #include <reg51.h>
  2. #include<rtx51tny.h>
  3. #include<intrins.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. uchar table[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  7. uchar table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
  8. uint time=0;
  9. uint num=0;
  10. uint dis_num=0;
  11. sbit key1=P1^0;
  12. sbit key2=P1^1;
  13. sbit Y1=P2^0;
  14. sbit Y2=P2^1;
  15. sbit led1=P2^5;         //東西紅燈
  16. sbit led2=P2^7;         //東西黃燈
  17. sbit led3=P2^6;         //東西綠燈

  18. sbit led5=P2^3;         //南北綠燈
  19. sbit led6=P2^4;         //南北黃燈
  20. sbit led7=P2^2;         //南北紅燈
  21. /*-------------------------1ms延時子函數(1T、12T、主時鐘不同時,需做調整)------------*/
  22. void delay(uint t)
  23. {
  24.   uchar x;
  25.   while(t--)
  26.     for(x=0;x<250;x++);
  27. }

  28. void my_int() interrupt 3
  29. {
  30.         time++;
  31.         if(time==123)
  32.         {
  33.                 time=0;
  34.                    num++;
  35.                 if(num%60==0)
  36.                         dis_num++;
  37.         }  

  38.        
  39. }

  40. void timer()
  41. {
  42.         TMOD=0x00;
  43.         TH1=0x3c;
  44.         TL1=0xb0;
  45.         EA=1;
  46.         ET1=1;
  47.         TR1=1;
  48.         while(1)
  49.         {
  50.                 P0=0;
  51.                 Y1=0;Y2=1;
  52.                 P0=table[num%60/10];
  53.                 delay(2);
  54.                 P0=0;
  55.                 Y1=1;Y2=1;
  56.                 P0=table[num%60%10];
  57.                 delay(2);
  58.                 P0=0;
  59.                 Y1=0;Y2=0;
  60.                 P0=table[dis_num%60/10];
  61.                 delay(2);
  62.                 P0=0;
  63.                 Y1=1;Y2=0;
  64.                 P0=table1[dis_num%60%10];
  65.                 delay(2);
  66.         }
  67. }
  68. void key()
  69. {
  70.         if(P1!=0xff)
  71.         {
  72.                 delay(5);
  73.                 if(P1!=0Xff)
  74.                 {
  75.                         if(key1==0)
  76.                         {
  77.                             num++;
  78.                          while(key1==0)
  79.                          {
  80.                                  timer();
  81.                          }
  82.                         }
  83.                         if(key2==0)
  84.                         {
  85.                                 dis_num++;
  86.                                 while(key2==0)
  87.                                 {
  88.                                         timer();
  89.                                 }
  90.                         }
  91.                 }               
  92.         }
  93. }       
  94. /////////////////////////////////////////////

  95. /*---------------------鍵盤掃描子函數--------------------------------*/
  96. void job0() _task_ 0
  97. {
  98.    os_create_task(1);
  99.    os_create_task(2);
  100.    os_delete_task(0);

  101. }
  102. void job1() _task_ 1
  103. {
  104.         while(1)
  105.         {
  106.                 timer();
  107.                 key();
  108.         }       

  109. }
  110. void job2() _task_ 2
  111. {
  112.         uint i;
  113.         while(1)
  114.         {
  115.                 led7=0;                               //南北紅燈亮
  116.                 led3=0;                                                  //東西綠燈亮,車輛東西方向通行
  117.                 delay(1000);                   //狀態延時5s
  118.                 led3=1;                                      //東西綠燈滅,
  119.                
  120.                 for(i=0;i<3;i++)                //東西黃燈閃爍5次,
  121.                 {               
  122.                 led2=0;
  123.                 delay(100);
  124.                 led6=1,led2=1;
  125.                 delay(100);
  126.                 }
  127.                 _nop_ ();
  128.                 _nop_ ();
  129.                 led7=1;                                                        //南北紅燈滅

  130.                 led5=0;                                                        //南北綠燈亮,車輛南北方向通行
  131.                 led1=0;                                                        //東西紅燈亮
  132.                 delay(1000);                        //狀態延時5s
  133.                 led5=1;                                                        //南北綠燈滅
  134.        
  135.                 for(i=0;i<3;i++)                //南北黃燈閃爍5次
  136.                 {
  137.                 led6=0;               
  138.                 delay(100);
  139.                 led6=1,led2=1;
  140.                 delay(100);
  141.                 }
  142.                 led1=1;                                                //東西紅燈滅
  143.         }
  144. }
  145.        
復制代碼


Z${_$8(BUY3YTC`J~_`(L9L.png (14.61 KB, 下載次數: 22)

Z${_$8(BUY3YTC`J~_`(L9L.png

6W5P@Y}5NGL6W_P]7}]]K)F.png (108.71 KB, 下載次數: 24)

6W5P@Y}5NGL6W_P]7}]]K)F.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:313328 發表于 2018-11-12 20:18 | 只看該作者
很好用,值得學習
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人午夜网 | 午夜久久av | 国产精品国产三级国产a | 国内精品视频在线观看 | 91人人澡人人爽 | 欧美日韩视频一区二区 | 午夜免费精品视频 | 天堂一区二区三区 | 亚洲国产成人久久综合一区,久久久国产99 | 国产成人精品网站 | 亚洲毛片在线观看 | 久久久久国产视频 | 中文字幕乱码亚洲精品一区 | 颜色网站在线观看 | 精品一区二区三区在线视频 | 天天色图| av中文字幕在线播放 | 日韩中文一区二区三区 | 精品自拍视频在线观看 | 亚洲国产精品久久久久秋霞不卡 | 日韩三级精品 | 久久亚洲国产精品日日av夜夜 | 日日干夜夜草 | 91成人精品 | av黄色在线 | 91视频一区二区三区 | 人人玩人人添人人澡欧美 | 亚洲三区在线观看 | 天天干精品 | 国产精品综合色区在线观看 | 国产精品久久久久久久久动漫 | 欧美日韩一区二区在线播放 | 欧美日韩国产一区二区三区 | 国产羞羞视频在线观看 | 午夜激情小视频 | 啪一啪在线视频 | 欧洲一区视频 | av乱码| 97视频成人 | 欧美性一区二区三区 | 天天爽天天干 |