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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9074|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

初次學(xué)習(xí)單片機新手自己做的一個流水燈 大家多多鼓勵

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:338171 發(fā)表于 2018-8-14 16:55 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
一個單片機最小系統(tǒng)  然后12個上拉電阻470歐和12個LED燈 接到單片機P0口跟P2口  初次學(xué)習(xí)單片機自己焊接了12個燈 和電阻 然后直接接到開發(fā)板上面    程序是自己寫的  由于新手程序肯定是有很多漏洞跟不足 中間我嫌用16進(jìn)制麻煩就直接定義了IO口直接0和1控制了  希望大家多多鼓勵不噴哈  我會更加努力學(xué)習(xí)  然后自己做一些實物的東西調(diào)試來提高自己視頻鏈接:

電路原理圖如下:



圓圈燈圖:


完整部分下載: 程序文件和制作部分.zip (624.68 KB, 下載次數(shù): 7)




單片機程序部分:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uint unsigned int  
  4. #define uchar unsigned int  

  5. uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED從低位往高位移
  6. uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED從高位往低位移
  7. uchar code table2[]={0xef,0xdf,0xbf,0x7f};//P2口 LED2.4--2.7口
  8. uchar code table3[]={0x7f,0xbf,0xdf,0xef};//P2口 LED2.7--2.4口

  9. uchar temp,i,aa,bb,cc;
  10. sbit D0=P0^0;
  11. sbit D1=P0^1;
  12. sbit D2=P0^2;
  13. sbit D3=P0^3;
  14. sbit D4=P0^4;
  15. sbit D5=P0^5;
  16. sbit D6=P0^6;
  17. sbit D7=P0^7;
  18. sbit D8=P2^4;
  19. sbit D9=P2^5;
  20. sbit D10=P2^6;
  21. sbit D11=P2^7;
  22. void delay (uint z)
  23. {
  24.    uint x,y;
  25.       for(x=z;x>0;x--)
  26.           for(y=100;y>0;y--);
  27. }

  28. void disp()
  29. {

  30.        {D0=0;delay(100);}{D1=0;delay(100);}{D2=0;delay(100);}{D3=0;delay(100);}
  31.        {D4=0;delay(100);}{D5=0;delay(100);}{D6=0;delay(100);}{D7=0;delay(100);}  
  32.        {D8=0;delay(100);}{D9=0;delay(100);}{D10=0;delay(100);}{D11=0;delay(100);}

  33.        {D0=1;delay(100);}{D1=1;delay(100);}{D2=1;delay(100);}{D3=1;delay(100);}
  34.        {D4=1;delay(100);}{D5=1;delay(100);}{D6=1;delay(100);}{D7=1;delay(100);}  
  35.        {D8=1;delay(100);}{D9=1;delay(100);}{D10=1;delay(100);}{D11=1;delay(100);}

  36.        {D0=0;delay(50);}{D1=0;delay(50);}{D2=0;delay(50);}{D3=0;delay(50);}
  37.        {D4=0;delay(50);}{D5=0;delay(50);}{D6=0;delay(50);}{D7=0;delay(50);}  
  38.        {D8=0;delay(50);}{D9=0;delay(50);}{D10=0;delay(50);}{D11=0;delay(50);}

  39.        {D0=1;delay(50);}{D1=1;delay(50);}{D2=1;delay(50);}{D3=1;delay(50);}
  40.        {D4=1;delay(50);}{D5=1;delay(50);}{D6=1;delay(50);}{D7=1;delay(50);}  
  41.        {D8=1;delay(50);}{D9=1;delay(50);}{D10=1;delay(50);}{D11=1;delay(50);}

  42.        {D0=0;delay(25);}{D1=0;delay(25);}{D2=0;delay(25);}{D3=0;delay(25);}
  43.        {D4=0;delay(25);}{D5=0;delay(25);}{D6=0;delay(25);}{D7=0;delay(25);}  
  44.        {D8=0;delay(10);}{D9=0;delay(25);}{D10=0;delay(25);}{D11=0;delay(25);}

  45.        {D0=1;delay(25);}{D1=1;delay(25);}{D2=1;delay(25);}{D3=1;delay(25);}
  46.        {D4=1;delay(25);}{D5=1;delay(25);}{D6=1;delay(25);}{D7=1;delay(25);}  
  47.        {D8=1;delay(25);}{D9=1;delay(25);}{D10=1;delay(25);}{D11=1;delay(25);}


  48.        P0=0x00; P2=0x0f;
  49.          delay(5000);
  50.     //P0=0xff; P2=0xff;
  51.     //delay(3000);

  52.      for(i=0;i<10;i++)
  53.         {
  54.             P0=0x00; P2=0x0f; //打開P0口和P2.4到2.7口
  55.             delay(300);
  56.             P0=0xff; P2=0xff; //關(guān)掉P0口和P口
  57.             delay(300);
  58.         }
  59. }
  60. void disp0()                        
  61. {  

  62.      for(aa=0;aa<5;aa++)
  63.       {  
  64.         for(i=0;i<8;i++)
  65.           {
  66.             P0=table0[i];
  67.             delay(200);
  68.           }
  69.         P0=0xff;
  70.         for(i=0;i<4;i++)
  71.           {
  72.             P2=table2[i];               
  73.             delay(200);                        
  74.           }
  75.         P2=0xff;
  76.       }      
  77. }

  78. void disp1()

  79. {

  80.       for(bb=0;bb<5;bb++)
  81.        {   
  82.          for(i=0;i<4;i++)
  83.          {
  84.              P2=table3[i];
  85.              delay(200);         
  86.          }
  87.         P2=0xff;
  88.          for(i=0;i<8;i++)
  89.          {
  90.                 P0=table1[i];
  91.                 delay(200);         
  92.          }
  93.         P0=0xff;
  94.       }


  95. }
  96. void disp2()
  97. {
  98.     for(cc=0;cc<10;cc++)
  99.      {
  100.         P2=0xff;
  101.         for(temp=0;temp<8;temp++)
  102.         {
  103.                 P0=table0[temp];
  104.                 delay(25);         
  105.         }
  106.          P0=0xff;
  107.         for(temp=0;temp<4;temp++)
  108.         {
  109.                 P2=table2[temp];
  110.                 delay(25);         
  111.         }

  112.         for(temp=0;temp<4;temp++)
  113.         {
  114.              P2=table3[temp];
  115.              delay(25);         
  116.         }
  117.         P2=0xff;

  118.         for(temp=0;temp<8;temp++)
  119.         {
  120.                 P0=table1[temp];
  121.                 delay(25);         
  122.         }
  123.         P0=0xff;
  124.     }
  125.     P2=0xff;P0=0xff;
  126.     delay(3000);
  127. }


  128. void disp3()                        
  129. {  



  130.         for(i=0;i<1;i++)
  131.         {
  132.           D0=0;D6=0;        
  133.            delay(200);
  134.           D0=1;D6=1;
  135.            delay(100);              
  136.         }
  137.         for(i=0;i<1;i++)
  138.         {
  139.           D1=0;D7=0;        
  140.            delay(200);
  141.           D1=1;D7=1;
  142.            delay(100);              
  143.         }
  144.         for(i=0;i<1;i++)
  145.         {
  146.           D2=0;D8=0;        
  147.            delay(200);
  148.           D2=1;D8=1;
  149.            delay(100);              
  150.         }
  151.         for(i=0;i<1;i++)
  152.         {
  153.           D3=0;D9=0;        
  154.            delay(200);
  155.           D3=1;D9=1;
  156.            delay(100);              
  157.         }
  158.         for(i=0;i<1;i++)
  159.         {
  160.           D4=0;D10=0;        
  161.            delay(200);
  162.           D4=1;D10=1;
  163.            delay(100);              
  164.         }
  165.         for(i=0;i<1;i++)
  166.         {
  167.           D5=0;D11=0;        
  168.            delay(200);
  169.           D5=1;D11=1;
  170.            delay(100);              
  171.         }


  172.         for(i=0;i<1;i++)
  173.         {
  174.           D0=0;D1=0;        
  175.            delay(100);
  176.           D0=1;D1=1;
  177.            delay(200);              
  178.         }
  179.         for(i=0;i<1;i++)
  180.         {
  181.           D2=0;D3=0;        
  182.            delay(100);
  183.           D2=1;D3=1;
  184.            delay(200);              
  185.         }
  186.         for(i=0;i<1;i++)
  187.         {
  188.           D4=0;D5=0;        
  189.            delay(100);
  190.           D4=1;D5=1;
  191.            delay(200);              
  192.         }
  193.         for(i=0;i<1;i++)
  194.         {
  195.           D6=0;D7=0;        
  196.            delay(100);
  197.           D6=1;D7=1;
  198.            delay(200);              
  199.         }
  200.         for(i=0;i<1;i++)
  201.         {
  202.           D8=0;D9=0;        
  203.            delay(100);
  204.           D8=1;D9=1;
  205.            delay(200);              
  206.         }
  207.         for(i=0;i<1;i++)
  208.         {
  209.           D10=0;D11=0;        
  210.            delay(100);
  211.           D10=1;D11=1;
  212.            delay(200);              
  213.         }



  214. }
  215. void disp4()                        
  216. {  



  217.         for(i=0;i<1;i++)
  218.         {
  219.           D0=0;D6=0;D1=0;D7=0;        
  220.            delay(200);
  221.           D0=1;D6=1;D1=1;D7=1;
  222.            delay(100);              
  223.         }

  224.         for(i=0;i<1;i++)
  225.         {
  226.           D2=0;D8=0;D3=0;D9=0;        
  227.            delay(200);
  228.           D2=1;D8=1;D3=1;D9=1;
  229.            delay(100);              
  230.         }

  231.         for(i=0;i<1;i++)
  232.         {
  233.           D4=0;D10=0;D5=0;D11=0;        
  234.            delay(200);
  235.           D4=1;D10=1;D5=1;D11=1;
  236.            delay(100);              
  237.         }




  238. }
  239. void disp5()
  240. {
  241.       //P0=~P0;P2=~P2;
  242.       for(i=0;i<1;i++)
  243.         {
  244.             D0=0;      
  245.            delay(200);
  246.             D0=1;
  247.            delay(100);              
  248.         }
  249.       for(i=0;i<1;i++)
  250.         {
  251.             D1=0;D11=0;         
  252.            delay(200);
  253.             D1=1;D11=1;
  254.            delay(100);              
  255.         }
  256.       for(i=0;i<1;i++)
  257.         {
  258.             D2=0;D10=0;         
  259.            delay(200);
  260.             D2=1;D10=1;
  261.            delay(100);              
  262.         }
  263.       for(i=0;i<1;i++)
  264.         {
  265.             D3=0;D9=0;         
  266.            delay(200);
  267.             D3=1;D9=1;
  268.            delay(100);              
  269.         }
  270.       for(i=0;i<1;i++)
  271.         {
  272.             D4=0;D8=0;         
  273.            delay(200);
  274.             D4=1;D8=1;
  275.            delay(100);              
  276.         }
  277.       for(i=0;i<1;i++)
  278.         {
  279.             D5=0;D7=0;         
  280.            delay(200);
  281.             D5=1;D7=1;
  282.            delay(100);              
  283.         }
  284.       for(i=0;i<1;i++)
  285.         {
  286.             D6=0;         
  287.            delay(200);
  288.             D6=1;
  289.            //delay(100);              
  290.         }

  291. }

  292. void disp6()
  293. {
  294.       // P0=~P0;P2=~P2;
  295.       for(i=0;i<1;i++)
  296.         {
  297.             D6=0;        
  298.            delay(200);
  299.             D6=1;
  300.            delay(100);              
  301.         }
  302.       for(i=0;i<1;i++)
  303.         {
  304.             D5=0;D7=0;         
  305.            delay(200);
  306.             D5=1;D7=1;
  307.            delay(100);              
  308.         }
  309.       for(i=0;i<1;i++)
  310.         {
  311.             D4=0;D8=0;         
  312.            delay(200);
  313.             D4=1;D8=1;
  314.            delay(100);              
  315.         }
  316.       for(i=0;i<1;i++)
  317.         {
  318.             D3=0;D9=0;         
  319.            delay(200);
  320.             D3=1;D9=1;
  321.            delay(100);              
  322.         }
  323.       for(i=0;i<1;i++)
  324.         {
  325.             D2=0;D10=0;         
  326.            delay(200);
  327.             D2=1;D10=1;
  328.            delay(100);              
  329.         }
  330.       for(i=0;i<1;i++)
  331.         {
  332.             D1=0;D11=0;         
  333.            delay(200);
  334.             D1=1;D11=1;
  335.            delay(100);              
  336.         }
  337.       for(i=0;i<1;i++)
  338.         {
  339.             D0=0;        
  340.            delay(200);
  341.             D0=1;
  342.           // delay(100);              
  343.         }
  344. }
  345. void disp7()
  346. {
  347.        D3=0;D9=0;
  348.        delay(500);
  349.        D2=0;D10=0;D4=0;D8=0;         
  350.        delay(500);
  351.        D1=0;D5=0;D7=0;D11=0;         
  352.        delay(500);
  353.        D0=0;D6=0;
  354.        delay(500);
  355.        P0=0xff; P2=0xff;
  356.             delay(300);
  357.        D1=0;D2=0;D3=0;D4=0;D5=0;
  358.        delay(500);
  359.        D7=0;D8=0;D9=0;D10=0;D11=0;
  360.        delay(500);
  361.        D0=0;D6=0;
  362.        delay(500);

  363.        P0=0xff; P2=0xff;
  364.             delay(300);
  365. }
  366. void main()
  367. {
  368.    while(1)
  369.    {

  370.      disp();//流水然后熄滅三次 亮燈5秒 閃爍10次
  371.      disp0();//正向從D0開始流水燈5次
  372.      disp1();//反向從D11開始流水燈5次
  373.      disp2();//正反向從D0開始流水燈10次
  374.      disp3();//D0和D6 2個燈同時開始正方向開始流水
  375.      disp4();//D0,D1和D6,D7同時開始正方向開始流水
  376.      disp5();//D0亮燈后 2個燈一起橫著向下流水
  377.      disp6();//D6亮燈后 2個燈一起橫著向上流水
  378.      disp7();//D3,D9中間部位然后分4個燈一組向外擴散
  379.    }
  380. }
復(fù)制代碼



評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:232923 發(fā)表于 2018-8-14 18:39 | 只看該作者
程序和電路略冗雜。建議加入3-8譯碼器改進(jìn)硬件電路,或者使用位操作里面的左移/右移改進(jìn)代碼
回復(fù)

使用道具 舉報

板凳
ID:338171 發(fā)表于 2018-8-15 08:43 | 只看該作者
CChen 發(fā)表于 2018-8-14 18:39
程序和電路略冗雜。建議加入3-8譯碼器改進(jìn)硬件電路,或者使用位操作里面的左移/右移改進(jìn)代碼

多謝前輩指點
回復(fù)

使用道具 舉報

地板
ID:349617 發(fā)表于 2018-8-15 15:29 | 只看該作者
硬件部分可以改為掃描方式點亮,這樣可以剩下很多IO口干其他事。軟件也得到提升。
回復(fù)

使用道具 舉報

5#
ID:273583 發(fā)表于 2018-8-16 05:06 | 只看該作者
作者這是 第一次第一個作品,程序不精練,但 這樣寫可以很深刻 理解單片機 控制原理 !
不說了,加10分!
再接再勵!
回復(fù)

使用道具 舉報

6#
ID:338171 發(fā)表于 2018-8-16 08:43 | 只看該作者
小李子鐵頭 發(fā)表于 2018-8-15 15:29
硬件部分可以改為掃描方式點亮,這樣可以剩下很多IO口干其他事。軟件也得到提升。

我改改試試  謝謝前輩
回復(fù)

使用道具 舉報

7#
ID:386779 發(fā)表于 2018-8-16 10:02 | 只看該作者
不錯不錯,我也參考參考。
回復(fù)

使用道具 舉報

8#
ID:334550 發(fā)表于 2018-8-17 14:23 | 只看該作者
你好 樓主 我也是初學(xué)者 我也在做流水燈,  但是沒有拖尾效果 你這個有嗎? 我看不到視頻  還有我用的15W204S 單片機 它的IO口是斷開的  可以用你這種方法嗎?
sbit A1 = P1^1;
sbit A2 = P1^0;
sbit A3 = P3^7;
sbit A4 = P3^6;
sbit A5 = P3^3;
sbit A6 = P3^2;
sbit A7 = P3^1;
sbit A8 = P3^0;
sbit A9 = P1^3;  

謝謝了
回復(fù)

使用道具 舉報

9#
ID:338171 發(fā)表于 2018-8-17 16:58 | 只看該作者
danpianji3501 發(fā)表于 2018-8-16 05:06
作者這是 第一次第一個作品,程序不精練,但 這樣寫可以很深刻 理解單片機 控制原理 !
不說了,加10分!  ...

多謝前輩鼓勵  我正在慢慢的精簡程序  認(rèn)真學(xué)習(xí)
回復(fù)

使用道具 舉報

10#
ID:338171 發(fā)表于 2018-8-17 17:01 | 只看該作者
bosschen 發(fā)表于 2018-8-17 14:23
你好 樓主 我也是初學(xué)者 我也在做流水燈,  但是沒有拖尾效果 你這個有嗎? 我看不到視頻  還有我用的15W204 ...

你這個單片機我不熟悉  個人認(rèn)為只要原理上相同 應(yīng)該是可以借鑒這種方法的  你多調(diào)試程序看看效果  明白原理之后就好辦了
回復(fù)

使用道具 舉報

11#
ID:300629 發(fā)表于 2018-8-17 20:59 | 只看該作者
視頻看不了,換兩個瀏覽器都不行,緩沖不出來
回復(fù)

使用道具 舉報

12#
ID:338171 發(fā)表于 2018-8-18 10:43 | 只看該作者
lsshuainiao 發(fā)表于 2018-8-17 20:59
視頻看不了,換兩個瀏覽器都不行,緩沖不出來

視頻鏈接: https://v.youku.com/v_show/id_XMzc4MDIwMzEwNA==.html
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91久久久久 | h片在线看 | 亚洲视频二区 | 超碰在线97国产 | 91视视频在线观看入口直接观看 | 国产一区二区三区在线视频 | 久久一区二区视频 | 一区二区精品 | 欧美一区二区在线 | 精品一区二区三区免费视频 | 中文字幕亚洲一区二区三区 | 日韩在线国产 | www.久久久久久久久久久 | 精品国产三级 | 国产欧美日韩综合精品一区二区 | 男女网站免费 | 国产乱码高清区二区三区在线 | 国产乱一区二区三区视频 | 国产激情视频在线观看 | 精品国产乱码久久久久久闺蜜 | 免费观看日韩精品 | 欧美一区二区三区的 | 午夜成人免费电影 | 亚洲国产黄色av | 免费的av网站 | 亚洲精品一区二区三区蜜桃久 | 五月天综合网 | 亚洲播放| 一区二区视频 | 日韩在线| 涩涩视频网站在线观看 | 一区二区三区国产 | 成人在线 | 精品久久久久久久久久久下田 | 中文字幕在线一区二区三区 | 精品美女视频在免费观看 | 影视先锋av资源噜噜 | www久久国产 | 三区在线 | 久久lu| 久久精品视频12 |