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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

新手制作心形燈 附單片機源程序+原理圖+仿真

  [復制鏈接]
跳轉到指定樓層
樓主
單片機心形燈仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


兩張圖 也是效果圖 也可以跟著焊接

原理圖 和程序在壓縮包里
適合初學者學習



單片機源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. uchar flag=200;
  4. ///////////////////////////////////////////////////////////////////////
  5. uchar code Tab1[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF};//暗中左移  向下
  6. uchar code Tab2[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF};//暗中右移  向上
  7. uchar code Tab3[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00};//亮中左移         向下
  8. uchar code Tab4[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00};//亮中右移  向上
  9. uchar code Tab11[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0xff};//暗中左移  向下
  10. uchar code Tab22[]={0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0xff};
  11. ////////////////////////////////////////////////////////////////////
  12. uchar code Tab33[]={0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF};
  13. uchar code Tab44[]={0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};
  14. uchar code Tab55[]={0x08,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff};
  15. uchar code Tab5[]={0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xff};
  16. uchar code Tab6[]={0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xff};
  17. uchar code Tab7[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
  18. uchar code Tab8[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  19. ////////////////////////////////////////////////////////////////
  20. void shansuo();
  21. void xl();
  22. ///////////////////////////////////////////////////////////////
  23. void delay(void)   
  24. {
  25.    unsigned char m,n;
  26.          for(m=0;m<flag;m++)
  27.           for(n=0;n<250;n++)          
  28.            ;
  29. }
  30. ///////////////////////////////////
  31. void hy1(void)  //點亮狀態逆時針旋轉90度(一個一個滅)
  32. {
  33.   unsigned char i;
  34.   for(i=0;i<8;i++)
  35.     {
  36.                 P0=Tab11[i];P1=Tab22[i];
  37.            P2=Tab11[i];P3=Tab22[i];
  38.                 delay();
  39.          }
  40.   for(i=0;i<8;i++)
  41.     {
  42.                 P0=Tab44[i];P1=Tab55[i];
  43.            P2=Tab44[i];P3=Tab55[i];
  44.                 delay();
  45.          }
  46. }
  47. ///////////////////////////////////////////
  48. void hy2(void)  //暗中逆時針轉360。(一個一個點亮)
  49. {
  50.   unsigned char i;
  51. for(flag=250;flag>0;flag=flag-50)
  52.   {
  53.         P0=0xff;P1=0xff;P2=0xff;P3=0xff;
  54.         for(i=0;i<8;i++)
  55.     {
  56.                 P0=Tab11[i];
  57.                 delay();
  58.          }
  59.   for(i=0;i<8;i++)
  60.     {
  61.            P2=Tab11[i];
  62.                 delay();
  63.          }
  64.   for(i=0;i<8;i++)
  65.     {
  66.                 P3=Tab22[i];
  67.                 delay();
  68.          }
  69.   for(i=0;i<8;i++)
  70.     {
  71.            P1=Tab22[i];
  72.                 delay();
  73.          }
  74.         }
  75. flag=250;
  76. }
  77. ////////////////////////////////////////////////
  78. void hy3(void)  //點亮中逆時針轉360°(一個一個滅)
  79. {
  80.   unsigned char i;
  81.                 flag=50;
  82.                 P0=0x00;P1=0x00;P2=0x00;P3=0x00;
  83.   for(i=0;i<8;i++)
  84.     {
  85.                 P0=Tab44[i];
  86.                 delay();
  87.          }
  88.   for(i=0;i<8;i++)
  89.     {
  90.            P2=Tab44[i];
  91.                 delay();
  92.          }
  93.   for(i=0;i<8;i++)
  94.     {
  95.                 P3=Tab33[i];
  96.                 delay();
  97.          }
  98.   for(i=0;i<8;i++)
  99.     {
  100.            P1=Tab33[i];
  101.                 delay();
  102.          }
  103.     flag=150;
  104. }
  105. ///////////////////////////////////////////////////
  106. void hy4(void)  //點亮狀態順時針旋轉90度(一個一個滅)
  107. {
  108.   unsigned char i;
  109.   for(i=0;i<8;i++)
  110.     {
  111.                 P1=Tab11[i];P0=Tab22[i];
  112.            P3=Tab11[i];P2=Tab22[i];
  113.                 delay();
  114.          }
  115.   for(i=0;i<9;i++)
  116.     {
  117.                 P1=Tab6[i];P0=Tab5[i];
  118.            P3=Tab6[i];P2=Tab5[i];
  119.                 delay();
  120.          }
  121. }
  122. /////////////////////////////////////////
  123. void hy2_1(void)  //暗中逆時針轉90度。(一個一個點亮)
  124. {
  125.   unsigned char i;
  126.                 flag=200;
  127.                 P0=0xff;P1=0xff;P2=0xff;P3=0xff;
  128.   for(i=0;i<9;i++)
  129.     {
  130.                 P0=Tab11[i];
  131.                 delay();
  132.          }
  133.                 flag=110;
  134.   for(i=0;i<9;i++)
  135.     {
  136.            P2=Tab11[i];
  137.                 delay();
  138.          }
  139.                 flag=80;
  140.   for(i=0;i<9;i++)
  141.     {
  142.                 P3=Tab22[i];
  143.                 delay();
  144.          }
  145.                 flag=80;
  146.   for(i=0;i<9;i++)
  147.     {
  148.            P1=Tab22[i];
  149.                 delay();
  150.          }
  151. }
  152. ////////////////////////////////////////////////
  153. void hy2_2(void)  //暗中逆時針轉180度。(一個一個點亮)
  154. {
  155.   unsigned char i;
  156.                 P0=0xff;P1=0xff;P2=0xff;P3=0xff;
  157.   for(i=0;i<8;i++)
  158.     {
  159.                 P0=Tab11[i];
  160.                 delay();
  161.          }
  162.   for(i=0;i<8;i++)
  163.     {
  164.            P2=Tab11[i];
  165.                 delay();
  166.          }
  167.                 P0=0xff;P2=0xff;
  168.   for(i=0;i<8;i++)
  169.     {
  170.                 P3=Tab22[i];
  171.                 delay();
  172.          }
  173.   for(i=0;i<8;i++)
  174.     {
  175.            P1=Tab22[i];
  176.                 delay();
  177.          }
  178.                 P1=0xff;P3=0xff;
  179. }
  180. ///////////////////////////////////////////////////
  181. void hy2_3(void)  //暗中向下180。(一個一個點亮)
  182. {
  183.   unsigned char i;
  184.                 P0=0xff;P1=0xff;P2=0xff;P3=0xff;
  185.   for(i=0;i<8;i++)
  186.     {
  187.                 P0=Tab11[i];
  188.            P1=Tab11[i];
  189.                 delay();
  190.          }
  191.   for(i=0;i<8;i++)
  192.     {
  193.            P2=Tab11[i];
  194.                 P3=Tab11[i];
  195.                 delay();
  196.          }
  197. ///////////////////////
  198.     flag=100;
  199.   for(i=0;i<8;i++)
  200.     {
  201.                 P2=Tab33[i];
  202.            P3=Tab33[i];
  203.                 delay();
  204.          }
  205.   for(i=0;i<8;i++)
  206.     {
  207.            P0=Tab33[i];
  208.                 P1=Tab33[i];
  209.                 delay();
  210.     flag=200;
  211.          }
  212. }
  213. ///////////////////////////////////////////////////
  214. void hy2_4(void)  //暗中逆時針轉360。(一個一個點亮)
  215. {
  216.   unsigned char i;
  217.                 P0=0xff;P1=0xff;P2=0xff;P3=0xff;
  218.   for(i=0;i<8;i++)
  219.     {
  220.                 P0=Tab11[i];
  221.                 P3=Tab22[i];
  222.                 delay();
  223.          }
  224.   for(i=0;i<8;i++)
  225.     {
  226.            P2=Tab11[i];
  227.                 P1=Tab22[i];
  228.                 delay();
  229.          }
  230. ///////////////////////
  231.     flag=100;
  232. for(i=0;i<8;i++)
  233.     {
  234.                 P0=Tab44[i];
  235.                 P3=Tab5[i];
  236.                 delay();
  237.          }
  238.   for(i=0;i<8;i++)
  239.     {
  240.            P2=Tab44[i];
  241.                 P1=Tab5[i];
  242.                 delay();
  243.          }
  244.     flag=200;
  245. }

  246. ///////////////////////////////////

  247. void hy5(void)  //先向下伸展,然后向上伸展逐漸點亮
  248. {
  249.   unsigned char i;
  250.   for(i=0;i<8;i++)
  251.     {
  252.                 P0=Tab8[i];
  253.                 P1=Tab8[i];
  254.                 delay();
  255.          }
  256.         P0=0xff;
  257.         P1=0xff;
  258.   for(i=0;i<8;i++)
  259.     {
  260.                 P2=Tab8[i];
  261.                 P3=Tab8[i];
  262.                 delay();
  263.          }
  264.         P2=0xff;
  265.         P3=0xff;
  266.   for(i=0;i<8;i++)
  267.     {
  268.                 P2=Tab7[i];
  269.                 P3=Tab7[i];
  270.                 delay();
  271.          }
  272.         P2=0xff;
  273.         P3=0xff;
  274.   for(i=0;i<8;i++)
  275.     {
  276.                 P0=Tab7[i];
  277.                 P1=Tab7[i];
  278.                 delay();
  279.          }
  280.         P0=0xff;
  281.         P1=0xff;
  282. }
  283. /////////////////////////////
  284. void jr(void)//聚攏
  285. {
  286.   unsigned char i;
  287.   for(i=0;i<9;i++)  //8位控制碼
  288.     {
  289.            P0=Tab1[i];P1=Tab1[i];
  290.            P2=Tab2[i];P3=Tab2[i];           
  291.                 delay();
  292.          }  
  293.   for(i=0;i<9;i++)
  294.     {
  295.            P0=Tab2[i];P1=Tab2[i];
  296.              P2=Tab1[i];P3=Tab1[i];
  297.                 delay();
  298.          }           
  299. ///////////////////////////
  300.   for(i=0;i<9;i++)  
  301.     {
  302.            P0=Tab1[i];P1=Tab1[i];
  303.            P2=Tab2[i];P3=Tab2[i];           
  304.                 delay();
  305.          }
  306.   for(i=0;i<9;i++)
  307.     {
  308.            P0=Tab2[i];P1=Tab2[i];
  309.              P2=Tab1[i];P3=Tab1[i];
  310.                 delay();
  311.          }
  312.         xl(); //星星眨眼
  313.         xl(); //星星眨眼
  314. ///////////////////////////
  315.   for(i=0;i<9;i++)
  316.     {
  317.            P0=Tab3[i]; P1=Tab3[i];
  318.            P2=Tab4[i]; P3=Tab4[i];
  319.                 delay();
  320.          }
  321.   for(i=0;i<9;i++)
  322.     {
  323.            P0=Tab4[i];P1=Tab4[i];
  324.              P2=Tab3[i];P3=Tab4[i];
  325.                 delay();
  326.          }
  327. ////////////////////////////////
  328.   for(i=0;i<9;i++)
  329.     {
  330.            P0=Tab1[i];P1=Tab1[i];
  331.            P2=Tab2[i]; P3=Tab2[i];           
  332.                 delay();
  333.          }
  334.           
  335.   for(i=0;i<9;i++)  
  336.     {
  337.            P0=Tab4[i];P1=Tab4[i];
  338.              P2=Tab3[i];P3=Tab3[i];
  339.                 delay();           
  340.          }
  341. /////////////////////////////
  342.   for(i=0;i<9;i++)
  343.     {
  344.            P0=Tab3[i]; P1=Tab3[i];
  345.              P2=Tab4[i];P3=Tab4[i];
  346.                 delay();
  347.          }
  348.   for(i=0;i<9;i++)
  349.     {
  350.            P0=Tab2[i];P1=Tab2[i];
  351.              P2=Tab1[i];P3=Tab1[i];
  352.                 delay();
  353.          }
  354. }
  355. ////////////////////////////////////
  356. void azzy(void)  //暗中向下
  357. {
  358.   unsigned char i;
  359.         flag=200;
  360.   for(i=0;i<8;i++)
  361.     {
  362.                 P2=0xff;P3=0xff;
  363.            P1=Tab1[i];P0=Tab1[i];
  364.                 delay();           
  365.           }
  366.   for(i=0;i<9;i++)
  367.     {
  368.                 P1=0xff;P0=0xff;
  369.            P2=Tab1[i];P3=Tab1[i];
  370.                 delay();
  371.           }
  372. }
  373. /////////////////////////////////
  374. void azyy(void)  //暗中you移
  375. {
  376.   unsigned char i;
  377.   for(i=0;i<8;i++)
  378.     {
  379.                 P0=0xff;P1=0xff;
  380.            P2=Tab2[i];P3=Tab2[i];
  381.                 delay();
  382.           }
  383.   for(i=0;i<9;i++)
  384.     {
  385.            P0=Tab2[i];P1=Tab2[i];
  386.                 delay();
  387.           }
  388. }
  389. //////////////////////////////////
  390. void led_flow1(void)  
  391. {
  392.   unsigned char i;
  393.   for(i=0;i<9;i++)
  394.     {
  395.                 P2=0;P3=0;
  396.            P1=Tab3[i];P0=Tab3[i];
  397.                 delay();           
  398.           }
  399.   for(i=0;i<9;i++)  
  400.     {
  401.            P2=Tab3[i];P3=Tab3[i];
  402.                 delay();
  403.           }
  404. }
  405. ///////////////////////////////////
  406. void lzyy(void)  //亮中右移
  407. {
  408.   unsigned char i;
  409.   for(i=0;i<9;i++)  
  410.     {
  411.                 P0=0x00;P1=0x00;
  412.            P2=Tab4[i];P3=Tab4[i];
  413.                 delay();           
  414.           }
  415.   for(i=0;i<9;i++)  
  416.     {
  417.            P0=Tab4[i];P1=Tab4[i];
  418.                 delay();
  419.           }
  420. }
  421. //////////////////////////////////
  422. void shansuo(void)//全部燈閃爍
  423.         {
  424. uchar i;
  425. for(i=0;i<3;i++)
  426. {
  427. P0=0xff;        P1=0xff;        P2=0xff;        P3=0xff;
  428. delay();        delay();
  429. P0=0x00;        P1=0x00;        P2=0x00;        P3=0x00;
  430. delay();        delay();
  431. }
  432.         }

  433. void xl(void)//相鄰倆個變換
  434. {
  435. uchar i;
  436. for(i=0;i<3;i++)
  437. {
  438. P0=0xAA;P1=0xAA;P2=0xAA;P3=0xAA;
  439. delay();delay();
  440. P0=0x55;P1=0x55;P2=0x55;P3=0x55;
  441. delay();delay();
  442. }
  443. }
  444. //////////////////////////////
  445. void sxb(void)//上下半
  446. {
  447.   unsigned char i;
  448. P0=0xff;P1=0xff;
  449. P2=0x00;P3=0x00;
  450. delay();delay();delay();delay();
  451.   for(i=0;i<8;i++)
  452.     {
  453.                 P0=Tab11[i];
  454.            P1=Tab11[i];
  455.                 delay();
  456.          }
  457.   for(i=0;i<8;i++)
  458.     {
  459.                 P0=Tab11[i];
  460.            P1=Tab11[i];
  461.                 delay();
  462.          }
  463.   for(i=0;i<8;i++)
  464.     {
  465.                 P0=Tab11[i];
  466.            P1=Tab11[i];
  467.                 delay();
  468.          }
  469. for(i=0;i<3;i++)
  470. {
  471. P0=0x00;P1=0x00;
  472. delay();delay();
  473. P0=0xff;P1=0xff;
  474. delay();delay();
  475. }
  476. }
  477. //////////////////////////////
  478. void jc(void)//
  479. {
  480. uchar i;
  481.   for(i=0;i<3;i++)
  482. {
  483. P0=0x00;
  484. P3=0x00;
  485. P1=0xff;
  486. P2=0xff;
  487. delay();delay();delay();delay();
  488. P1=0x00;
  489. P2=0x00;
  490. P0=0xff;
  491. P3=0xff;
  492. delay();delay();delay();delay();
  493. }
  494. }
  495. /////////////////////////////////
  496. void azzy_1(void)  //暗中向下
  497. {
  498.   unsigned char i,i1;
  499. for(flag=80;flag>0;flag=flag-10)
  500.   {
  501.   for(i=0;i<8;i++)
  502.     {
  503.                 P2=0xff;P3=0xff;
  504.            P1=Tab1[i];P0=Tab1[i];
  505.                 delay();           
  506.           }
  507.   for(i=0;i<9;i++)
  508.     {
  509.                 P1=0xff;P0=0xff;
  510.            P2=Tab1[i];P3=Tab1[i];
  511.                 delay();
  512.           }
  513.         }
  514.         flag=10;
  515.   for(i1=0;i1<30;i1++)
  516.   {
  517.   for(i=0;i<8;i++)
  518.     {
  519.                 P2=0xff;P3=0xff;
  520.            P1=Tab1[i];P0=Tab1[i];
  521.                 delay();           
  522.           }
  523.   for(i=0;i<9;i++)
  524.     {
  525.                 P1=0xff;P0=0xff;
  526.            P2=Tab1[i];P3=Tab1[i];
  527.                 delay();
  528.           }
  529.         }
  530.                 flag=200;
  531.   }
  532. /////////////////////////////
  533. void js(void)//結束
  534. {
  535. uchar i;
  536. hy2_3();
  537. for(i=0;i<3;i++)
  538. {
  539. P0=0xff;P2=0xff;
  540. delay();delay();
  541. P0=0x00;P2=0x00;
  542. delay();delay();
  543. }
  544. ///////////////////
  545. for(i=0;i<3;i++)
  546. {
  547. P1=0xff;P3=0xff;
  548. delay();delay();
  549. P1=0x00;P3=0x00;
  550. ……………………

  551. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
作品3 心形流水燈程序及電路.rar (287.24 KB, 下載次數: 283)


評分

參與人數 2黑幣 +55 收起 理由
214shiyanshi + 5 共享資料的黑幣獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:372089 發表于 2018-7-15 18:12 | 只看該作者
電路圖元器件是一個一個擺的??還是有什么模型
回復

使用道具 舉報

板凳
ID:261725 發表于 2018-12-18 20:51 | 只看該作者
我試試看,能不能實現
回復

使用道具 舉報

地板
ID:556058 發表于 2019-6-5 22:24 | 只看該作者
謝謝大佬分享
回復

使用道具 舉報

5#
ID:428743 發表于 2019-6-7 18:24 | 只看該作者
能否用stc12c5a60s2


回復

使用道具 舉報

6#
ID:558829 發表于 2019-6-10 20:03 | 只看該作者
靠譜,大家可以參考一下
回復

使用道具 舉報

7#
ID:580 發表于 2019-6-17 17:58 來自手機 | 只看該作者
我試試看,能不能實現
回復

使用道具 舉報

8#
ID:564933 發表于 2019-6-17 20:26 | 只看該作者
程序好多啊
回復

使用道具 舉報

9#
ID:610016 發表于 2019-9-10 15:32 | 只看該作者
這也太長了吧
回復

使用道具 舉報

10#
ID:260280 發表于 2019-9-11 15:10 | 只看該作者

控制燈的閃爍有好幾種所以程序比較多
回復

使用道具 舉報

11#
ID:260280 發表于 2019-9-11 15:11 | 只看該作者
wyc77 發表于 2019-6-7 18:24
能否用stc12c5a60s2

這個是51的
回復

使用道具 舉報

12#
ID:618083 發表于 2019-9-29 17:16 | 只看該作者
牛逼,大神
回復

使用道具 舉報

13#
ID:716490 發表于 2020-3-26 20:45 | 只看該作者
想試試
回復

使用道具 舉報

14#
ID:756183 發表于 2020-5-20 00:02 | 只看該作者
厲害啊,太牛了啊
回復

使用道具 舉報

15#
ID:837480 發表于 2020-11-1 20:58 | 只看該作者
上了幾輪51單片課,剛看到這么有趣的資料
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 插插插干干干 | 操人视频在线观看 | 亚洲精品视频久久 | 国产免费一区二区三区最新6 | 午夜影院中文字幕 | 男插女下体视频 | 狠狠婷婷综合久久久久久妖精 | 久久精品国产清自在天天线 | 草逼网站 | 欧美视频在线观看 | 97国产精品视频 | 亚洲+变态+欧美+另类+精品 | 99精品一区二区三区 | 午夜欧美 | 一区二区福利视频 | 欧美日高清 | 日日艹夜夜艹 | 日本不卡免费新一二三区 | 欧美区在线观看 | 欧美日韩亚洲一区二区 | 成人网在线观看 | 国产精品一级在线观看 | 久久精品一区二区三区四区 | 国产露脸对白88av | 岛国二区 | 亚洲区一区二区 | 天堂网avav| 91av大全| 国产精品中文字幕在线 | 国产精品久久久久久久一区二区 | av av在线| 一级日韩 | 一区二区小视频 | 国产精品毛片无码 | 精品亚洲一区二区 | 中文字幕亚洲精品 | 国产精品久久久久久久7777 | 色性av| 国产精品一区二区三区四区 | 久久se精品一区精品二区 | 午夜午夜精品一区二区三区文 |