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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9025|回復: 0
收起左側

單片機控制RGB LED七彩跳變+漸變的轉換電路原理圖+源程序

[復制鏈接]
ID:403439 發表于 2018-10-14 15:35 | 顯示全部樓層 |閱讀模式

單片機源程序如下:
  1. //============================================================================
  2. //======翼芯科技 LED七彩跳變+漸變轉換=======指撥開關SW2的1位撥向上============
  3. //============================================================================   
  4. //  此源碼版權屬 翼芯科技 全權享有,如欲引用,敬請署名并告知
  5. //程序說明:本程序用于實現LED七彩跳變+漸變轉換,按KEY3為跳變,按KEY4為漸變,不同步.IC插到U9位置.指撥開關SW2的1位撥向上.      
  6. //文件名稱:main.C  
  7. //日期:    2011/01/23   
  8. //版本:    1.0  
  9. //C編譯器:  keil 8.05
  10. //=============================================================================                    
  11. #include <STC12C5AXX.H>
  12. #define uchar unsigned char
  13. #define uint unsigned int

  14. sbit  RED1   = P0^0;               //紅色IO口定義
  15. sbit  GREEN1 = P0^1;               //綠色IO口定義  
  16. sbit  BLUE1  = P0^2;               //藍色IO口定義





  17. sbit  KEY3   = P3^2;                           //按鍵3
  18. sbit  KEY4   = P3^3;                           //按鍵4

  19. bit   FLAG_MODE;

  20. uchar T_CNT3;
  21. uchar T_CNT4;
  22. uchar MODE;


  23. uchar code TAB1[7]={1,2,4,3,6,5,7};                       //跳變數據
  24. uchar code TAB2[14]={1,3,3,2,2,6,6,4,4,5,5,7,7,1};        //跳變數據  {1,3,2,6,4,5,7,1};        //跳變數據
  25. uchar DPTR;   
  26. uchar PWM_HL;
  27. uchar REPEAT;
  28. uchar PWM_H;  
  29. uchar PWM_L;



  30. /******************************************************************
  31. - 功能描述:定時器0中斷,中斷時間為1MS,實現按鍵檢測.
  32. - 隸屬模塊:無
  33. - 函數屬性:無
  34. - 參數說明:無           
  35. - 返回說明:無
  36. - 注:.....
  37. ******************************************************************/
  38. void TIME0_INT() interrupt 1
  39. {
  40.         TH0  = (65535-2000)/256;
  41.         TL0  = (65535-2000)%256;
  42.     if (T_CNT3 !=0)
  43.            {                                 
  44.         T_CNT3--;                        
  45.         if (T_CNT3==0 && KEY3==0)        
  46.                    {         
  47.                         MODE=0;
  48.                         FLAG_MODE=1;
  49.            }
  50.        }
  51.           else if (KEY3==0) T_CNT3=10;                                             
  52.       if (T_CNT4 !=0)
  53.              {                              
  54.           T_CNT4--;                     
  55.           if (T_CNT4==0 && KEY4==0)
  56.                     {                           
  57.                         MODE=1;
  58.                         FLAG_MODE=1;
  59.             }
  60.          }
  61.             else if (KEY4==0) T_CNT4=10;   
  62.                                           
  63. }


  64. /******************************************************************
  65. - 功能描述:紅綠藍LED輸出
  66. - 隸屬模塊:無
  67. - 函數屬性:無
  68. - 參數說明:無           
  69. - 返回說明:無
  70. - 注:.....
  71. ******************************************************************/
  72. SET_RGB(uchar LED_REG)
  73. {
  74.     uchar LEDDATA;
  75.         LEDDATA=LED_REG;
  76.         if(LEDDATA&0X01)
  77.             RED1=1;
  78.         else
  79.             RED1=0;
  80.         if(LEDDATA&0X02)
  81.             GREEN1=1;
  82.         else
  83.             GREEN1=0;
  84.         if(LEDDATA&0X04)
  85.             BLUE1=1;
  86.         else
  87.             BLUE1=0;
  88. }


  89. /******************************************************************
  90. - 功能描述:延時函數
  91. - 隸屬模塊:無
  92. - 函數屬性:無
  93. - 參數說明:無           
  94. - 返回說明:無
  95. - 注:.....
  96. ******************************************************************/
  97. delayms(uint x)
  98. {
  99.         uint t;
  100.         while(x--)
  101.         for(t=1500;t>0;t--)
  102.           {
  103.                 if(FLAG_MODE)
  104.           {
  105.            return;
  106.           }
  107.           }


  108. }

  109. /******************************************************************
  110. - 功能描述:延時函數
  111. - 隸屬模塊:無
  112. - 函數屬性:無
  113. - 參數說明:無           
  114. - 返回說明:無
  115. - 注:.....
  116. ******************************************************************/
  117. delayus(uint x)
  118. {
  119.         uint t;
  120.         while(x--)
  121.         for(t=15;t>0;t--);
  122. }

  123. /******************************************************************
  124. - 功能描述: PWM輸出
  125. - 隸屬模塊:無
  126. - 函數屬性:無
  127. - 參數說明:無   
  128. - 返回說明:無
  129. - 注:.....
  130. ******************************************************************/
  131. SHADE()
  132.    {
  133.       uchar i,j;
  134.       for(i=REPEAT;i>0;i--)                   //重復次數
  135.        {

  136.             for(j=PWM_HL;j>0;j--)             //PWM減
  137.              {
  138.                            if(FLAG_MODE)
  139.                   {
  140.                     return;
  141.                   }
  142.                PWM_H=j;                       //PWM_H值
  143.                PWM_L=PWM_HL-j+1;              //PWM_L值
  144.                SET_RGB(TAB2[DPTR]);
  145.                for(;PWM_H>0;PWM_H--)
  146.                                delayus(1);      
  147.                            SET_RGB(TAB2[DPTR+1]);         //輸出            
  148.                for(;PWM_L>0;PWM_L--)
  149.                                delayus(1);
  150.              }  //j
  151.        }  //i     

  152.    }


  153. /******************************************************************
  154. - 功能描述:主函數
  155. - 隸屬模塊:無
  156. - 函數屬性:無
  157. - 參數說明:無      
  158. - 返回說明:無
  159. - 注:.....
  160. ******************************************************************/
  161. void  main()
  162.     {


  163.              TMOD = 0x01;                          //定時器0工作在16位的定時模式.
  164.             TH0  = (65535-2000)/256;  //定時器0高位設定
  165.             TL0  = (65535-2000)%256;  //定時器0低位設定
  166.             IE   = 0x82;                          //開總中斷和定時器0中斷
  167.         TR0  = 1;                                  //開定時器0

  168. //M1:M0  0:0為標準51;0:1輸出;1:0輸入;1:1開漏輸出
  169.          P0M1=0X00;                              //P0口設為推挽輸出
  170.          P0M0=0XFF;


  171.          P0=0;
  172.          MODE=0;
  173.                  FLAG_MODE=0;

  174.          PWM_HL=250;
  175.          REPEAT=1;
  176.          while(1)
  177.           {
  178.                     switch  (MODE)
  179.               {
  180.                            case 0:
  181.                for(DPTR=0;DPTR<7;DPTR++)           //跳變
  182.                   {
  183.                    SET_RGB(TAB1[DPTR]);         
  184.                    delayms(1000);                  //延時1秒
  185.                                    if(FLAG_MODE)
  186.                      {
  187.                       FLAG_MODE=0;
  188.                       break;
  189.                      }                           
  190.                    }break;                        
  191.                            case 1:   
  192.                for(DPTR=0;DPTR<14;DPTR=DPTR+2)     //漸變
  193.                    {
  194.                      SHADE();         
  195.                      delayms(1000);                //延時1秒
  196.                                          if(FLAG_MODE)
  197.                      {
  198.                       FLAG_MODE=0;
  199.                       break;
  200.                      }                           
  201.                    }break;
  202.                                 
  203.                            }
  204.           }
  205.     }
復制代碼

所有資料51hei提供下載(原理圖):
http://www.zg4o1577.cn/bbs/dpj-137471-1.html


回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲第一av | 久久国产精品亚洲 | 国产美女视频 | 久久久999免费视频 999久久久久久久久6666 | www国产成人免费观看视频,深夜成人网 | 一级做a爰片久久毛片免费看 | 日韩精品一区二区三区中文在线 | 波多野结衣一区二区三区 | 日一区二区 | 国产高清美女一级a毛片久久w | 国产小视频在线观看 | 人人艹人人 | 国产精品视频一区二区三区四蜜臂 | 亚州精品天堂中文字幕 | 九九综合九九 | 天天拍天天操 | 欧美精品一区二区三区在线播放 | 久久久精品视频一区二区三区 | 精品熟人一区二区三区四区 | 亚洲精品在线看 | 99欧美精品 | 久久久久久久久久久成人 | 国产精品一区二区三 | 热久久999 | 欧美4p | 亚洲国产一区二区在线 | 亚洲三级国产 | 欧美一区二区免费 | 欧美激情久久久久久 | 日韩有码一区 | 本道综合精品 | 成人在线免费网站 | 亚洲国产精品久久人人爱 | 中文字幕 国产精品 | 亚洲精品永久免费 | 精品国产乱码久久久久久88av | 亚洲国产精品99久久久久久久久 | 精品欧美一区二区三区精品久久 | 青春草在线 | 四色成人av永久网址 | 第四色播日韩第一页 |