找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)小系統(tǒng)板的花樣流水燈

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:238749 發(fā)表于 2017-10-11 23:48 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
控制P37 P21 P22 P23 P16 P17控制流水燈

單片機(jī)源程序如下:
  1. /***************************************
  2. 小系統(tǒng)板的花樣流水燈
  3. 流水燈只接P37 P21 P22 P23 P16 P17
  4. ***************************************/
  5. #include <STC15F2K60S2.H>
  6. #include "intrins.h"
  7. #include "led.h"
  8. #include "delay.h"
  9. /***************************************/
  10. typedef  unsigned int    uint;
  11. typedef  unsigned char   uchar;
  12. /***************************************/
  13. void initial();
  14. void Delay1000ms();
  15. void led_dr_light_on(uchar m);
  16. void led_dr_light_off(uchar m);
  17. void writedate(uchar dat1);
  18. void delay(uchar m);
  19. void Delay1000ms();
  20. void Delay500ms();
  21. void Delay300ms();
  22. void Delay100ms();
  23. void Delay500us();
  24. void style_one();
  25. void new();
  26. /***************************************/
  27. uchar code tab_zeor[6]={0x00,0x00,0x00,0x00,0x00,0x00};
  28. uchar code tab[6]={0x01,0x02,0x04,0x08,0x10,0x20};//0000 0001、0000 0010、0000 0100、0000 1000、0001 0000、0010 0000
  29. uchar code tab_new[8]={0x01,0x02,0x04,0x08,0x10,0x20,0X40,0X80};//0000 0001、0000 0010、0000 0100、0000 1000、0001 0000、0010 0000
  30. uchar code tab_one[14]={0xaa,0xaa,0x55,0x55,0xaa,0xaa,0x55,0x55,0xff,0xff,0x00,0x00,0xff,0xff};//1010 1010 aa  0101 0101 55
  31. uchar code tab_two[17]={0x21,0x12,0x0c,0x12,0x21,0x12,0x0c,0x12,0x21,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff};
  32. uchar code tab_three[25]={0x21,0x00,0x12,0x00,0x0c,0x00,0x12,0x00,0x21,0x00,0x12,0x00,0x0c,0x00,0x12,0x00,0x21,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff};
  33. /***************************************/
  34.         void main()
  35. {  
  36.                
  37.           uint i=0;
  38.                 initial();       
  39.                
  40.                 while(1)
  41.                 {
  42.                                 //new();       
  43.        style_one();                       
  44.                 }
  45.                  
  46.                        
  47.                
  48. }               
  49.                              
  50. /***************************************
  51. 函數(shù)名:initial
  52. 功能:初始化程序
  53. 說(shuō)明:
  54. 入口參數(shù):無(wú)
  55. 返回值:無(wú)
  56. ***************************************/
  57. void initial()
  58. {
  59.     P0M0 = 0x00;
  60.     P0M1 = 0x00;
  61.     P1M0 = 0x00;
  62.     P1M1 = 0x00;
  63.     P2M0 = 0x00;
  64.     P2M1 = 0x00;
  65.     P3M0 = 0x00;
  66.     P3M1 = 0x00;
  67.     P4M0 = 0x00;
  68.     P4M1 = 0x00;
  69.     P5M0 = 0x00;
  70.     P5M1 = 0x00;
  71.     P6M0 = 0x00;
  72.     P6M1 = 0x00;
  73.     P7M0 = 0x00;
  74.     P7M1 = 0x00;
  75.             P37 = 0;
  76.                         P21 = 0;
  77.                         P22 = 0;
  78.                         P23 = 0;
  79.                         P16 = 0;
  80.                         P17 = 0;       
  81.                         P0=0;
  82. }
  83. /***************************************
  84. 函數(shù)名:led_dr_light_on
  85. 功能:控制燈亮
  86. 說(shuō)明:輸入m的值,使第m個(gè)燈亮
  87. 入口參數(shù):m
  88. 返回值:無(wú)
  89. ***************************************/
  90. void led_dr_light_on(uchar m)
  91. {
  92.         switch(m)
  93.         {
  94.                 case 0: P37=1;  break;
  95.                 case 1: P21=1;  break;
  96.                 case 2: P22=1;  break;
  97.                 case 3: P23=1;  break;
  98.                 case 4: P16=1;  break;
  99.                 case 5: P17=1;  break;
  100.         }

  101. }
  102. /***************************************
  103. 函數(shù)名:led_dr_light_off
  104. 功能:控制燈滅
  105. 說(shuō)明:輸入m的值,使第m個(gè)燈滅
  106. 入口參數(shù):m
  107. 返回值:無(wú)
  108. ***************************************/

  109. void led_dr_light_off(uchar m)
  110. {
  111.         switch(m)
  112.         {
  113.                 case 0: P37=0;  break;
  114.                 case 1: P21=0;  break;
  115.                 case 2: P22=0;  break;
  116.                 case 3: P23=0;  break;
  117.                 case 4: P16=0;  break;
  118.                 case 5: P17=0;  break;
  119.         }
  120. }

  121. /***************************************
  122. 函數(shù)名:writedate
  123. 功能:識(shí)別輸入的字節(jié)
  124. 說(shuō)明:輸入字節(jié),使該字節(jié)對(duì)應(yīng)的1亮,0滅
  125. 入口參數(shù):dat1
  126. 返回值:無(wú)
  127. ***************************************/
  128. void writedate(uchar dat1)
  129. {
  130.        
  131.                         uint temp1,i=0;
  132.           
  133.             for(i=0;i<6;i++)
  134.                         {
  135.                                 temp1=dat1 & 0x01;


  136.                                 if(temp1 != 0)
  137.                                
  138.                                         led_dr_light_on (i);  //亮                       
  139.                     else                               
  140.                                         led_dr_light_off (i);  //滅
  141.                                  dat1 >>= 1;
  142.                 }
  143. }

  144. /***************************************
  145. 函數(shù)名:style_one
  146. 功能:樣式一
  147. 說(shuō)明:花樣流水
  148. 入口參數(shù):無(wú)
  149. 返回值:無(wú)
  150. ***************************************/
  151. void style_one()
  152. {

  153.        uint i;
  154.         for(i=0;i<6;i++)
  155.                         {
  156.                                 writedate(tab[i]);
  157.                           Delay100ms();
  158.                         }        
  159.                         initial();
  160.                         Delay100ms();
  161.                        
  162.                                 for(i=0;i<6;i++)
  163.                         {
  164.                                 writedate(tab[5-i]);
  165.                           Delay100ms();
  166.                         }        
  167.                         initial();
  168.                         Delay100ms();
  169.                        
  170.                         for(i=0;i<14;i++)
  171.                         {
  172.                                 writedate(tab_one[i]);
  173.                           Delay100ms();
  174.                         }        
  175.                          initial();
  176.                          Delay100ms();
  177.                         for(i=0;i<17;i++)
  178.                         {
  179.                                 writedate(tab_two[i]);
  180.                           Delay100ms();
  181.                         }        
  182.                          initial();
  183.                          Delay100ms();
  184.                        
  185.                         for(i=0;i<25;i++)
  186.                         {
  187.                                 writedate(tab_three[i]);
  188.                           Delay100ms();
  189.                         }        
  190. ……………………

  191. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
小系統(tǒng)板.zip (36.62 KB, 下載次數(shù): 5)


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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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