找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

制作分享:stc11F04單片機制作RGB漸變彩燈 附源程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:577329 發(fā)表于 2020-2-27 16:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
閑著無聊也用單片機做一個RGB漸變彩燈玩一玩。                                                                                                                                                                                           源程序和heⅹ文件放在2樓,有需要的自己下載。

IMG20200227155321.jpg (3.86 MB, 下載次數(shù): 132)

電池供電

電池供電

IMG20200227155313.jpg (3.88 MB, 下載次數(shù): 138)

IMG20200227155313.jpg

IMG20200227155257.jpg (4.05 MB, 下載次數(shù): 143)

自己用覆銅板做的stc11F04最小系統(tǒng)

自己用覆銅板做的stc11F04最小系統(tǒng)

IMG20200227155523.jpg (3.37 MB, 下載次數(shù): 143)

下面是實驗效果圖

下面是實驗效果圖

IMG20200227155519.jpg (3.2 MB, 下載次數(shù): 151)

IMG20200227155519.jpg

IMG20200227155308.jpg (3.04 MB, 下載次數(shù): 153)

IMG20200227155308.jpg

IMG20200227155235_1.jpg (3.49 MB, 下載次數(shù): 149)

IMG20200227155235_1.jpg

IMG20200227155235.jpg (3.58 MB, 下載次數(shù): 140)

IMG20200227155235.jpg

IMG20200227155232.jpg (3.41 MB, 下載次數(shù): 148)

IMG20200227155232.jpg

IMG20200227155231.jpg (3.17 MB, 下載次數(shù): 140)

IMG20200227155231.jpg

IMG20200227155229.jpg (3.1 MB, 下載次數(shù): 148)

IMG20200227155229.jpg

IMG20200227155219.jpg (3.63 MB, 下載次數(shù): 134)

IMG20200227155219.jpg

評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:577329 發(fā)表于 2020-2-27 16:26 | 只看該作者
單片機源程序
  1. /*原理:先亮紅燈(保持一會兒)----紅綠過度(綠加1、紅減1循環(huán)240次)------
  2. 綠燈亮起(保持一會兒)----綠蘭過度(蘭加1、綠減1循環(huán)240次)-----蘭燈亮起
  3. (保持)-----蘭白過度(綠加1、紅加1循環(huán)240次、蘭不變?---白紅過度*/
  4. #include<reg52.h>//MCU頭文件
  5. #define uchar unsigned char//字浮型宏定義
  6. #define uint unsigned int//整型宏定義
  7. #define shudu 30//LED漸變速度調(diào)整
  8. #define dengji 1//LED變化等級調(diào)整
  9. sbit B1=P1^0;//紅色燈控制IO口
  10. sbit G1=P1^1;//綠色燈控制IO口
  11. sbit R1=P1^2;//蘭色燈控制IO口
  12. uchar Rout,Bout,Gout;//紅綠蘭3個變量
  13. /***************************************************/
  14. /**********************延時子程序*******************/
  15. /***************************************************/
  16. void delay(uint z)
  17. {
  18. uint x,y;//局部變量定義
  19. for(x=0;x<5;x++)//延時外循環(huán)
  20. for(y=0;y<z;y++);//延時內(nèi)循環(huán)
  21. }
  22. /**********************************************/
  23. /**********PWM控制紅綠蘭3種燈亮滅時間**********/
  24. /**********************************************/
  25. void RGBpwm(uchar Rou,uchar Gou,uchar Bou)//3個局部變量,些部分為帶參數(shù)函數(shù)
  26. {
  27. if(Rou!=0)//如果紅燈變量不等于0就亮紅燈
  28. {
  29.   R1=1;//紅燈亮
  30.   delay(Rou);//紅燈亮起時間
  31.   R1=0;//紅燈滅
  32. }
  33. if(Gou!=0)//如果紅燈變量不等于0就亮紅燈
  34. {
  35.   G1=1;//綠燈亮
  36.   delay(Gou);//綠燈亮起的時間 
  37.   G1=0;//綠燈滅
  38. }
  39. if(Bou!=0)//如果紅燈變量不等于0就亮紅燈
  40. {
  41.   B1=1;//蘭燈亮
  42.   delay(Bou);//蘭燈亮起的時間
  43.   B1=0;//蘭燈滅
  44. }
  45. }
  46.   
  47. /***********************************************/
  48. /********************主程序*********************/
  49. /***********************************************/
  50. void main()
  51. {
  52. TMOD=0x01;//選擇定時器在方式1下工作
  53. EA=1;//打開總中斷
  54. ET0=1;//打開定時器中斷
  55. TR0=1;//打開定時器
  56. R1=0;//開機將紅燈關(guān)閉
  57. G1=0;//開機將綠燈關(guān)閉
  58. B1=0;//開機將蘭燈關(guān)閉
  59. TH0=(65536-256)/256;//給定時器高8位賦值
  60. TL0=(65536-256)%256;//給定時器低8位賦值
  61. while(1)//程序主循環(huán)
  62. {
  63.   RGBpwm(Rout,Gout,Bout);//調(diào)用RGBpwm子程序
  64. }
  65. }
  66. /*************************************************/
  67. /*中斷服務(wù)子程序(控制LED紅綠蘭亮滅時間占空比例)*/
  68. /*************************************************/
  69. void zhong() interrupt 1//中斷向量位為1
  70. {
  71. uint num;//定時器計數(shù)變量
  72. uint ji;//亮度等級控制變量
  73. TH0=(65536-256)/256;//給定時器高8位賦值
  74. TL0=(65536-256)%256;//給定時器低8位賦值
  75. num++;//將定時計數(shù)變自動增加1
  76. if(num==shudu)//如果速度變量等于定時計數(shù)器變量就執(zhí)行下面大括號語句
  77. {
  78.   num=0;//將計數(shù)器清0
  79.   ji++;//將亮度等級控制變量加1
  80.   if((ji>0)&&(ji<100))//如果亮度等級控制變量ji小于100,紅燈亮起時間變量為240
  81.   {
  82.    Rout=240;//紅燈亮起變量為240
  83.    Gout=0;//綠燈亮起變量為0
  84.    Bout=0;//蘭燈亮起變量為0
  85.   }
  86.   if((ji>100)&&(ji<340))/*如果亮度等級控制變量ji大于100小于340(剛好240個等級),
  87.   紅燈亮起時間變量由原來的240,慢慢減小到0,同時綠燈由原來的0慢慢增到240,形成
  88.   紅燈到綠燈的漸變過程*/
  89.   {
  90.    Rout-=dengji;//將紅燈變量減1。因為dengji為亮度變化等級(本程序變化等級為1),
  91.    Gout+=dengji;//將綠燈變量加1
  92.    Bout=0;//蘭燈不變
  93.   }
  94.   if((ji>340)&&(ji<440))/*亮度等級控制變量ji大于340小于440時,讓綠燈變量停一段時間
  95.   這樣就形成了當(dāng)紅燈過度到綠燈時,綠燈會停一會兒的效果。*/
  96.   {
  97.    Rout=0;//紅燈滅
  98.    Gout=240;//綠燈亮
  99.    Bout=0;//蘭燈滅
  100.   }
  101.   if((ji>440)&&(ji<680))//同理:亮度等級控制變量ji大于440小于680時,由綠燈到蘭燈過度
  102.   {
  103.    Rout=0;//紅燈變量不變
  104.    Gout-=dengji;//將綠燈變量減1
  105.    Bout+=dengji;//將蘭燈變量加1
  106.   }
  107.   if((ji>680)&&(ji<780))//亮度等級控制變量ji大于680小于780時,讓蘭燈變量停一段時間
  108.   {
  109.    Rout=0;//紅燈滅
  110.    Gout=0;//綠燈滅
  111.    Bout=240;//蘭燈亮一會兒
  112.   }
  113.   if((ji>780)&&(ji<1020))//亮度等級控制變量ji大于780小于1020時,由蘭燈到白燈過度
  114.   {
  115.    Rout+=dengji;//將紅燈變量加1
  116.    Gout+=dengji;//綠燈變量加1
  117.    Bout=240;//蘭燈不變
  118.   }
  119.   if((ji>1020)&&(ji<1025))//亮度等級控制變量ji大于1020小于1025時,由蘭燈到白燈過度
  120.   {
  121.    Rout=240;//將紅燈變量加1
  122.    Gout=240;//綠燈變量加1
  123.    Bout=240;//蘭燈不變
  124.   }
  125.   if((ji>1025)&&(ji<1265))//亮度等級控制變量ji大于1025小于1265時,由白光到紅光過度
  126.   {
  127.    Rout=240;//紅燈變量不變
  128.    Gout-=dengji;//綠燈變量自動減1
  129.    Bout-=dengji;//蘭燈變量自動減1
  130.   }
  131.   if(ji>1265)//當(dāng)亮度等級控制變量ji大于1210時,就將它清0
  132.   ji=0;//將亮度控制等級清0
  133. }
  134. }
復(fù)制代碼


全部資料51hei下載地址:
rgb彩燈 stc11fxx.rar (20.13 KB, 下載次數(shù): 127)
回復(fù)

使用道具 舉報

板凳
ID:46065 發(fā)表于 2020-2-27 22:16 | 只看該作者
再玩一段時間你會發(fā)現(xiàn)這個程序可以非常簡單,加油!!
回復(fù)

使用道具 舉報

地板
ID:243394 發(fā)表于 2020-4-4 20:23 | 只看該作者
樓主,為什么亮白燈的時候,燈閃爍的很厲害?我把for(x=0;x<5;x++)中的x<5,改為x<2,就不會閃爍,但是白燈的顏色就不是很白了
回復(fù)

使用道具 舉報

5#
ID:377382 發(fā)表于 2020-4-22 10:44 | 只看該作者
非常不錯
回復(fù)

使用道具 舉報

6#
ID:704585 發(fā)表于 2020-4-23 14:20 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報

7#
ID:1001248 發(fā)表于 2022-1-11 09:51 | 只看該作者
程序?qū)懙挠行┭}雜
回復(fù)

使用道具 舉報

8#
ID:628588 發(fā)表于 2023-10-6 19:26 | 只看該作者
主程序使用延時函數(shù)差評
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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