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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC8F2K08S2單片機RGB變色呼吸燈程序+電路設計

  [復制鏈接]
跳轉到指定樓層
樓主
ID:404207 發表于 2018-12-28 19:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
由16個引腳的STC8芯片為主。采用SOP封裝 小巧玲瓏。用定時器模擬PWM輸出控制RGB。整個電路簡單,所用元器件很少,但是看起來非常漂亮。而且程序寫的很簡潔,還附帶了127種顏色的RGB代碼,各種顏色都能顯示。還有PCB圖哦

制作出來的實物圖如下:


電路原理圖如下:


單片機源程序如下:
  1. #include "RGB.h"
  2. #include "RGBcode.h"
  3. u8 count=0;
  4. u16 n1=0;
  5. u8 QC=0;
  6. bit  n2=0;
  7. u8 XS=0;
  8. #define N  3000000L/255/39
  9. #define N1 8000000L/255/39
  10. #define MAX   255
  11. #define MAX1  180
  12. #define MIN1  110

  13. void timeinit()
  14. {
  15.         AUXR=0x80;                  //1T模式        
  16.         TMOD=0x01;                //定時器0方式1,16位不自動重裝載
  17.         TH0 = (65536-39*12)/256;
  18.         TL0 = (65536-39*12)%256;
  19.         ET0=1;                                //開放定時器0中斷
  20.         TR0=1;                                //啟動定時器0,開始計時
  21. }

  22. void tm0_isr() interrupt 1 using 1
  23. {
  24.          
  25.           if(QC==0){
  26.                 TH0 =(65536-39*12)/256;
  27.     TL0 = (65536-39*12)%256;                  
  28.                 count++;                       //頻率為100HZ
  29.           n1++;
  30.           if(n1>=N){n2=1;n1=0;}
  31.           }
  32.                
  33.                 if(QC==1){
  34.                  TH0 = (65536-10*12)/256;
  35.      TL0 = (65536-10*12)%256;
  36.                 count++;
  37.     n2=1;                        
  38.                 }
  39.                
  40.           if(QC==2){
  41.                 TH0 = (65536-39*12)/256;
  42.     TL0 = (65536-39*12)%256;                  
  43.                 count++;                       //頻率為100HZ
  44.           n1++;
  45.           if(n1>=N1){n2=1;n1=0;}
  46.           }
  47.                
  48.                 if(QC==3){
  49.                 TH0 = (65536-39*12)/256;
  50.     TL0 = (65536-39*12)%256;                  
  51.                 count++;        
  52.           n1++;
  53.           if(n1>=1000000/39){n2=1;n1=0;}
  54.           }                        
  55.          

  56.                

  57. }

  58. void RGB()
  59. {                static u8 i=0;
  60.           QC=3;                  
  61.                 RGB_(yanse[i*3+0],yanse[i*3+1],yanse[i*3+2]);        
  62.                 if(n2==1){i++;n2=0;}
  63.                 if(i==127){i=0;XS=0;}
  64. }

  65. void RGB_(u8 Rdelay,u8 Gdelay,u8 Bdelay)
  66. {
  67.    if(count < Rdelay)RED=1;            
  68.       else RED=0;
  69.          if(count < Gdelay)GREEN=1;
  70.                         else GREEN=0;
  71.          if(count < Bdelay)BULE=1;
  72.                         else BULE=0;
  73.          if(count==255){count=0;}

  74. }
  75. void qicai()
  76. {
  77.          static u8 i=0,j=0;
  78.          static bit ZJ=1,JS=0;
  79.          QC=0;
  80.   if(n2==1 && ZJ){i++;n2=0;}
  81.         if(n2==1 && JS){i--;n2=0;}
  82.          switch(j)
  83.          {
  84.                  case 0:RGB_(i,0,0);if(i==MAX){ZJ=0;JS=1;j++;}break;                     //紅色呼吸燈
  85.            case 1:RGB_(i,0,0);if(i==0){ZJ=1;JS=0;j++;}        break;  
  86.                  
  87.                  case 2:RGB_(i,i,0);if(i==MAX){ZJ=0;JS=1;j++;}break;                //黃色呼吸燈
  88.            case 3:RGB_(i,i,0);if(i==0){ZJ=1;JS=0;j++;}        break;  
  89.                  
  90.                  case 4:RGB_(0,i,0);if(i==MAX){ZJ=0;JS=1;j++;}break;                     //綠色呼吸燈
  91.            case 5:RGB_(0,i,0);if(i==0){ZJ=1;JS=0;j++;}        break;  
  92.                                    
  93.                  case 6:RGB_(0,i,i);if(i==MAX){ZJ=0;JS=1;j++;}break;         //青色呼吸燈
  94.            case 7:RGB_(0,i,i);if(i==0){ZJ=1;JS=0;j++;}        break;  
  95.                   
  96.                  case 8:RGB_(0,0,i);if(i==MAX){ZJ=0;JS=1;j++;}break;                //藍色呼吸燈
  97.            case 9:RGB_(0,0,i);if(i==0){ZJ=1;JS=0;j++;}        break;  
  98.                                  
  99.                  case 10:RGB_(i,0,i);if(i==MAX){ZJ=0;JS=1;j++;}break;        //紫色呼吸燈
  100.            case 11:RGB_(i,0,i);if(i==0){ZJ=1;JS=0;j++;}         break;  
  101.                  
  102.                  case 12:RGB_(i,i,i);if(i==MAX){ZJ=0;JS=1;j++;}break;        //白色呼吸燈
  103.            case 13:RGB_(i,i,i);if(i==0){ZJ=1;JS=0;j++;}         break;      
  104.                  
  105.                  default : j=0;XS=1;break;
  106.                         
  107.          }
  108. }

  109. //void quancai()       //綠燈太亮 ,導致其他顏色顯示不出來  所以屏蔽
  110. //{
  111. //         static u8 i=0,j=0,k=0;
  112. //         QC=1;
  113. //   if(n2==1) {i++;n2=0;}
  114. //         
  115. //         RGB_(i,j,k);
  116. //         if(i==255){i=0;j++;if(j==255){j=0;k++;if(i==255 && j==255 && k==255 ){i=0;j=0;k=0;}}}
  117. //                     
  118. //}

  119. void duocai()
  120. {
  121.          static u8 i=0,j=0;
  122.          static bit ZJ=1,JS=0;
  123.                 QC=2;
  124.                 if(n2==1 && ZJ){i++;n2=0;}
  125.                 if(n2==1 && JS){i--;n2=0;}
  126.          switch(j)
  127.          {
  128.                  case 0:RGB_(i,0,MAX);if(i==MAX){ZJ=0;JS=1;j++;}break;                    //單升單降  MAX
  129.            case 1:RGB_(MAX,0,i);if(i==0){ZJ=1;JS=0;j++;}        break;  
  130.                                  
  131.                  case 2:RGB_(MAX,i,0);if(i==MAX){ZJ=0;JS=1;j++;}break;               
  132.            case 3:RGB_(i,MAX,0);if(i==0){ZJ=1;JS=0;j++;}        break;  
  133.                  
  134.                  case 4:RGB_(0,MAX,i);if(i==MAX){ZJ=0;JS=1;j++;}break;                    
  135.            case 5:RGB_(0,i,MAX);if(i==0){ZJ=1;JS=0;j++;}        break;                  
  136.                                    
  137.                  case 6:RGB_(i,i,MAX);if(i==MAX){ZJ=0;JS=1;j++;}break;         //雙升雙降   MAX
  138.            case 7:RGB_(i,MAX,i);if(i==0){ZJ=1;JS=0;j++;}        break;  
  139.                   
  140.                  case 8:RGB_(i,MAX,i);if(i==MAX){ZJ=0;JS=1;j++;}break;               
  141.            case 9:RGB_(MAX,i,i);if(i==0){ZJ=1;JS=0;j++;}        break;  
  142.                                  
  143.                  case 10:RGB_(MAX,i,i);if(i==MAX){ZJ=0;JS=1;j++;}break;        
  144.            case 11:RGB_(i,i,MAX);if(i==0){ZJ=1;JS=0;j++;}         break;  
  145.                  
  146.                  
  147.                  
  148.                  case 12:RGB_(i,MIN1,MAX1);if(i==MAX){ZJ=0;JS=1;j++;}break;                    
  149.            case 13:RGB_(MAX1,MIN1,i);if(i==0){ZJ=1;JS=0;j++;}        break;  
  150.                                  
  151. ……………………

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

所有資料51hei提供下載:
STC8F2K08S2.zip (187.26 KB, 下載次數: 400)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:234836 發表于 2019-1-24 15:09 | 只看該作者
有沒有觸控MCU,可以喚醒的
回復

使用道具 舉報

板凳
ID:477932 發表于 2019-3-10 17:19 | 只看該作者
本帖最后由 static 于 2019-3-22 10:03 編輯
江邊鳥 發表于 2019-1-24 15:09
有沒有觸控MCU,可以喚醒的
你做事時聲音很小也能喚醒的

評分

參與人數 2黑幣 +18 收起 理由
zhengchong60 + 8
嘉立創AAA + 10

查看全部評分

回復

使用道具 舉報

地板
ID:156220 發表于 2019-3-11 10:34 | 只看該作者
謝謝樓主的資料分享,學習了
回復

使用道具 舉報

5#
ID:501609 發表于 2019-3-31 11:13 | 只看該作者
多謝,學習下先
回復

使用道具 舉報

6#
ID:471632 發表于 2019-3-31 18:56 | 只看該作者
5個發光二極管并聯的是增加亮度嗎?我以為是幾個發光管發不同的光混在一起
回復

使用道具 舉報

7#
ID:472844 發表于 2019-6-5 23:11 | 只看該作者
謝謝樓主的資料分享,學習了
回復

使用道具 舉報

8#
ID:56665 發表于 2019-8-5 11:36 | 只看該作者
這個燈的功率應該不大,100W功率是不是修改驅動三極管為大功率MOS管就行,還是要專用驅動芯片。
回復

使用道具 舉報

9#
ID:894943 發表于 2021-3-26 09:30 | 只看該作者
設計很優秀!
回復

使用道具 舉報

10#
ID:310993 發表于 2021-3-30 01:18 | 只看該作者
很好,給三色燈增加了多色彩,真是好東西!
回復

使用道具 舉報

11#
ID:921561 發表于 2021-5-15 10:14 | 只看該作者
樓主可以指導我做個可控制亮光的觸控燈嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区在线不卡 | 欧美女优在线观看 | 亚洲综合在线视频 | 一级免费看 | 精品免费国产视频 | 亚洲综合视频 | 午夜伦理影院 | 欧美一级毛片免费观看 | 亚洲一区二区精品视频 | 欧美日韩成人在线观看 | 日韩免费网站 | 天堂成人国产精品一区 | 91福利在线导航 | 亚洲精品在线视频 | www日本高清| 欧美另类视频 | 日韩在线视频观看 | 日本成人三级电影 | 99久久久无码国产精品 | 亚洲一区中文字幕 | 欧美精品一区二区三区在线 | 免费午夜视频 | 在线黄| 美女天天干天天操 | 91免费在线看 | 成人国产精品 | 中文字幕成人av | 欧美视频二区 | 亚洲国产欧美在线人成 | 久久午夜影院 | 99久久精品免费看国产高清 | 91av视频 | 网站黄色在线免费观看 | 国产麻豆乱码精品一区二区三区 | 天天天天天天天干 | 午夜丰满寂寞少妇精品 | 99国内精品久久久久久久 | 欧美一区二区三区日韩 | 毛片网站在线观看 | 国产片侵犯亲女视频播放 | 91久久精品一区二区二区 |