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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機的八位花樣流水燈程序及原理圖

[復制鏈接]
跳轉到指定樓層
樓主
通過外中斷,兩個按鍵可實現流水燈加速減速控制,從左到右,從右到左,從中間到兩端,從兩端到中間等。大家可以參考下


單片機源程序如下:
  1. #include<reg51.h>

  2. #define uchar unsigned char

  3. #define uint unsigned int

  4. uchar j,k;

  5. void delay(int ms)

  6. {     uchar i;

  7. while(ms--)

  8. for(i=0;i<123;i++);

  9. }

  10. uchar codetab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,

  11.      0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,

  12.      0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,

  13.      0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,

  14.       0xff,0xe7,0xc3,0x81,0x00,0x7e,0x3c,0x18,

  15.       0x00,};

  16. void EXINTinit()

  17. {

  18. EA=1;EX0=1;EX1=1;IT0=1;IT1=1;

  19. }

  20. void main()

  21. {

  22.       EXINTinit();  P0=0xfe;

  23.       while(1)

  24. {

  25.     switch(k)

  26.   {

  27.                  case 0:

  28.    {

  29.          for(j=0;j<16;j++)

  30.          {

  31.               if(k!=0)  break;

  32.               P0=tab[j];

  33.               delay(300);

  34.               }

  35.               for(j=0;j<16;j++)

  36.          {

  37.               if(k!=0)

  38.               break;

  39.               P0=tab[j+16];

  40.               delay(300);

  41.                     }

  42.              for(j=0;j<9;j++)

  43.          {

  44.              if(k!=0)

  45.                 break;

  46.               P0=tab[j+32];

  47.              delay(300);

  48.                         }

  49.               for(j=0;j<16;j++)

  50.          {

  51.              if(k!=0)

  52.                break;

  53.                     P0=0x00;

  54.              delay(300);

  55.                         }

  56.               for(j=8;j>0;j--)

  57.               {

  58.                      if(k!=0)

  59.                      break;

  60.                      P0=0x55;

  61.                      delay(300);

  62.                      P0=0xaa;

  63.                      delay(300);

  64.                      }

  65.                }break;

  66.               

  67.           case 1:

  68.    {

  69.    for(j=0;j<16;j++)

  70.          {

  71.        if(k!=1)

  72.        break;

  73.        P0=tab[j];

  74.        delay(100);

  75.               }

  76.               for(j=0;j<16;j++)

  77.          {

  78.        if(k!=1)

  79.        break;

  80.        P0=tab[j+16];

  81.        delay(100);

  82.                }

  83.              for(j=0;j<9;j++)

  84.          {

  85.         if(k!=1)

  86.           break;

  87.         P0=tab[j+32];

  88.         delay(100);

  89.                  }

  90.               for(j=0;j<16;j++)

  91.          {

  92.         if(k!=1)

  93.           break;

  94.                P0=0x00;

  95.         delay(100);

  96.                  }

  97.               for(j=8;j>0;j--)

  98.               {

  99.                      if(k!=1)

  100.                      break;

  101.                      P0=0x55;

  102.                      delay(300);

  103.                      P0=0xaa;

  104.                      delay(100);

  105.                      }     

  106.           };break;

  107.           case 2:

  108.    {

  109.          for(j=0;j<16;j++)

  110.          {

  111.               if(k!=2)

  112.               break;

  113.               P0=tab[j];

  114.               delay(600);

  115.               }

  116.               for(j=0;j<16;j++)

  117.          {

  118.               if(k!=2)

  119.               break;

  120.               P0=tab[j+16];

  121.               delay(600);

  122.                     }

  123.              for(j=0;j<9;j++)

  124.          {

  125.              if(k!=2)

  126.                 break;

  127.               P0=tab[j+32];

  128.              delay(600);

  129.                         }

  130.               for(j=0;j<16;j++)

  131.          {

  132.              if(k!=2)

  133.                break;

  134.                     P0=0x00;

  135.              delay(600);

  136.                         }

  137.               for(j=8;j>0;j--)

  138.               {

  139.                      if(k!=2)

  140.                      break;

  141.                      P0=0x55;

  142.                      delay(600);

  143.                      P0=0xaa;

  144.                      delay(600);

  145.                      }

  146.           };break;

  147.      default: break;

  148.   }

  149. }

  150. }

  151.        voidEX0INT() interrupt 0

  152.        {

  153.              k=1;

  154.        }

  155.        voidEX1INT() interrupt 2

  156.        {     k=2;
  157.        }   
復制代碼


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

使用道具 舉報

沙發
ID:666705 發表于 2019-12-28 01:13 | 只看該作者
應該是52單片機吧?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99久久精品免费看国产四区 | 天堂资源最新在线 | 中文字幕在线网 | 日本一区二区三区视频在线 | 国产福利在线 | 国产精品视频免费播放 | 欧美久久久久久 | 中文字幕日韩欧美 | 国产精品国产精品国产专区不片 | 欧美在线视频网 | 国产一二三区免费视频 | 欧美不卡视频 | 精品一区二区三区在线观看国产 | 亚洲精品久久久久久下一站 | 国产精品资源在线 | 美女福利网站 | 午夜精品久久久久久不卡欧美一级 | 视频一区 亚洲 | 色婷婷久久 | 四虎永久免费地址 | 精品久久久久久亚洲精品 | 日日操av| 一区中文字幕 | 久久国产精品久久 | 97伊人| 二区视频 | 久久精品欧美一区二区三区不卡 | 国产不卡视频 | 成人欧美一区二区三区色青冈 | 国产精品久久久久久久久久久免费看 | 久久精品国产v日韩v亚洲 | 欧美高清视频一区 | 欧美精品福利 | 日韩欧美中文字幕在线观看 | 日韩欧美三区 | 91资源在线观看 | 亚洲欧美精品在线 | 国产免费拔擦拔擦8x高清 | 国产精品久久久久久久久免费高清 | 国产婷婷色综合av蜜臀av | 久久精品国产亚洲a |