找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2563|回復(fù): 0
收起左側(cè)

51單片機(jī) 交通燈修改版

[復(fù)制鏈接]
ID:166410 發(fā)表于 2017-2-24 16:30 | 顯示全部樓層 |閱讀模式
喜歡的 可以看一下
0.png
  1.   #include<reg52.h>

  2. #define uchar unsigned  char
  3. #define uint unsigned int
  4. #define led P0
  5. uchar tab[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
  6. uchar count, count0;

  7. void delay(uint x);
  8. void play();

  9. void main()
  10. {
  11.         TMOD = 0X01;//定時器0的工作方式為1;
  12.         TH0 = (65536 - 40000) / 256;
  13.         TL0 = (65536 - 40000) % 256;
  14.         EA = 1;//開中斷
  15.         ET0 = 1;//開定時器0中斷
  16.         TR0 = 1;//啟動定時器0

  17.         led = 0x0c;
  18.         while(1)
  19.         {       
  20.                 play();
  21.         }
  22. }

  23. void timer0() interrupt 1//定時器0中斷服務(wù)程序
  24. {
  25.         TH0 = (65536 - 40000) / 256;
  26.         TL0 = (65536 - 40000) % 256;


  27.         count++;//中斷次數(shù)累加
  28.         if(count == 50)
  29.         {                                                                  
  30.                 count = 0;//30次的50毫秒為1秒

  31.                 count0++;
  32.                 if((count0>=5)&&(count0<=8))
  33.                 {
  34.                         P2=~tab[8-count0];
  35.                 }
  36.                 else
  37.                 P2=0xff;
  38.                 if((count0>=13)&&(count0<=16))
  39.                 {
  40.                         P3=~tab[16-count0];
  41.                 }
  42.                 else
  43.                 P3=0xff;

  44.                 if(count0 == 16)
  45.                 {
  46.                         count0 = 0;
  47.                 }

  48.         }
  49.                
  50. }                  

  51. void play()
  52. {
  53.         if(count0 == 5)  //5s后南北黃,東西紅
  54.         {
  55.                 led = 0x0a;
  56.                 delay(100);
  57.                 led = 0x08;
  58.                 delay(100);
  59.                 led = 0x0a;
  60.                 delay(100);
  61.                 led = 0x08;
  62.                 delay(100);
  63.                 led = 0x0a;
  64.                
  65.         }
  66.         else if(count0 == 8)        //8s后南北紅,東西綠
  67.         {
  68.                 led = 0x21;
  69.         }
  70.         else if(count0 == 13)         //13s南北紅,東西黃
  71.         {
  72.                 led = 0x11;
  73.                 delay(100);
  74.                 led = 0x01;
  75.                 delay(100);
  76.                 led = 0x11;
  77.                 delay(100);
  78.                 led = 0x01;
  79.                 delay(100);
  80.                 led = 0x11;

  81.         }
  82.         else if(count0 == 0)          //16s后南北綠,東西紅
  83.         {
  84.                 led = 0x0c;
  85.         }
  86. }

  87. void delay(uint x)
  88. {
  89.         uint a, b;
  90.         for(a = x; a > 0; a--)
  91.                 for(b = 1000; b > 0; b--);
  92. }
復(fù)制代碼


0.png

單片機(jī) 交通燈 修改.rar

53.19 KB, 下載次數(shù): 9, 下載積分: 黑幣 -5

評分

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

查看全部評分

相關(guān)帖子

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表