找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5808|回复: 0
打印 上一主题 下一主题
收起左侧

RGB 8位彩色流水灯单片机源程序与原理图PCB文件分享

[复制链接]
跳转到指定楼层
楼主
RGB流水灯电路原理图和PCB图如下:(51hei附件中可下载工程文件)


PCB中用到的字体请把里面的文件放入font文件夹

RGB8位彩色流水灯单片机源程序如下:
  1. /*********************************************************************************************
  2. 编写:林景福
  3. 程序名:RGB8位彩色流水灯程序
  4. 硬件支持:所有的51单片机均可驱动(晶振频率随意)
  5. 元件:5050RGB灯珠8颗+PNP三极管8个+单片机+电阻8个(470R-4.7K均可)+电阻2个(220R左右)+电阻1个(330R左右)

  6. /*********************************************************************************************/
  7. #include <REG51.h> //单片机头文件
  8. #include <intrins.h>        //51基本运算(包括_nop_空函数)
  9.    
  10. sbit BB=P1^0;//blue蓝灯
  11. sbit RR=P1^1;//red红灯
  12. sbit GG=P1^2;//green绿灯
  13. unsigned int N=80;//定义每个灯亮的时间、单位为毫秒、修改此值可改变流动速度
  14. /*********************************************************************************************
  15. 函数名:毫秒级CPU延时函数
  16. /*********************************************************************************************/
  17. void DELAY_MS (unsigned int a){
  18.         unsigned int i;
  19.         while( a-- != 0){
  20.                 for(i = 0; i < 630; i++);
  21.         }
  22. }
  23. /*********************************************************************************************/
  24. /*********************************************************************************************/
  25. void main (void)
  26. {        
  27.         unsigned char i;               
  28.     while(1){
  29. /***************各种颜色灯单个点亮左右流动**************************/
  30.                 RR=0;GG=1;BB=1;//红灯亮
  31.                 for(i=0;i<8;i++){ //低位向高位流动  
  32.                         P3 = ~(1<<i);
  33.                         DELAY_MS(N);
  34.                                 }               
  35.                 for(i=0;i<8;i++){//高位向低位流动   
  36.                         P3 = ~(1<<7-i);
  37.                         DELAY_MS(N);
  38.                                 }               
  39.                 RR=1;GG=0;BB=1;//绿灯亮
  40.                 for(i=0;i<8;i++){ //低位向高位流动  
  41.                         P3 = ~(1<<i);
  42.                         DELAY_MS(N);
  43.                                 }               
  44.                 for(i=0;i<8;i++){//高位向低位流动   
  45.                         P3 = ~(1<<7-i);
  46.                         DELAY_MS(N);
  47.                                 }
  48.                 RR=1;GG=1;BB=0;//蓝灯点亮
  49.                 for(i=0;i<8;i++){   
  50.                         P3 = ~(1<<i);
  51.                         DELAY_MS(N);
  52.                                 }               
  53.                 for(i=0;i<8;i++){   
  54.                         P3 = ~(1<<7-i);
  55.                         DELAY_MS(N);
  56.                                 }
  57.                 RR=0;GG=0;BB=1;//红绿灯亮(黄色光)
  58.                 for(i=0;i<8;i++){   
  59.                         P3 = ~(1<<i);
  60.                         DELAY_MS(N);
  61.                                 }               
  62.                 for(i=0;i<8;i++){   
  63.                         P3 = ~(1<<7-i);
  64.                         DELAY_MS(N);
  65.                                 }               
  66.                 RR=0;GG=1;BB=0;//红蓝灯亮(粉红光)
  67.                 for(i=0;i<8;i++){   
  68.                         P3 = ~(1<<i);
  69.                         DELAY_MS(N);
  70.                                 }               
  71.                 for(i=0;i<8;i++){   
  72.                         P3 = ~(1<<7-i);
  73.                         DELAY_MS(N);
  74.                                 }
  75.                 RR=1;GG=0;BB=0;//蓝绿灯亮(青色光)
  76.                 for(i=0;i<8;i++){   
  77.                         P3 = ~(1<<i);
  78.                         DELAY_MS(N);
  79.                                 }               
  80.                 for(i=0;i<8;i++){   
  81.                         P3 = ~(1<<7-i);
  82.                         DELAY_MS(N);
  83.                                 }
  84.                 RR=0;GG=0;BB=0;//红蓝绿灯亮(白色光)
  85.                 for(i=0;i<8;i++){   
  86.                         P3 = ~(1<<i);
  87.                         DELAY_MS(N);
  88.                                 }               
  89.                 for(i=0;i<8;i++){   
  90.                         P3 = ~(1<<7-i);
  91.                         DELAY_MS(N);
  92.                                 }                                                                        
  93. /********各种颜色灯逐个点亮左右流动****************************/
  94.                 RR=0;GG=1;BB=1;//红灯亮
  95.                 for(i=0;i<8;i++){   
  96.                         P3 = 0xfe<<i;
  97.                         DELAY_MS(N);
  98.                                 }
  99.                 for(i=0;i<8;i++){   
  100.                         P3 = 0x7f>>i;
  101.                         DELAY_MS(N);
  102.                                 }
  103.                 RR=1;GG=0;BB=1;//绿灯亮
  104.                 for(i=0;i<8;i++){   
  105.                         P3 = 0xfe<<i;
  106.                         DELAY_MS(N);
  107.                                 }
  108.                 for(i=0;i<8;i++){   
  109.                         P3 = 0x7f>>i;
  110.                         DELAY_MS(N);
  111.                                 }
  112.                 RR=1;GG=1;BB=0;//蓝灯点亮
  113.                 for(i=0;i<8;i++){   
  114.                         P3 = 0xfe<<i;
  115.                         DELAY_MS(N);
  116.                                 }
  117.                 for(i=0;i<8;i++){   
  118.                         P3 = 0x7f>>i;
  119.                         DELAY_MS(N);
  120.                                 }
  121.                 RR=0;GG=0;BB=1;//红绿灯亮
  122.                 for(i=0;i<8;i++){   
  123.                         P3 = 0xfe<<i;
  124.                         DELAY_MS(N);
  125.                                 }
  126.                 for(i=0;i<8;i++){   
  127.                         P3 = 0x7f>>i;
  128.                         DELAY_MS(N);
  129.                                 }
  130.                 RR=0;GG=1;BB=0;//红蓝灯亮
  131.                 for(i=0;i<8;i++){   
  132.                         P3 = 0xfe<<i;
  133.                         DELAY_MS(N);
  134.                                 }
  135.                 for(i=0;i<8;i++){   
  136.                         P3 = 0x7f>>i;
  137.                         DELAY_MS(N);
  138.                                 }
  139.                 RR=1;GG=0;BB=0;//蓝绿灯亮
  140.                 for(i=0;i<8;i++){   
  141.                         P3 = 0xfe<<i;
  142.                         DELAY_MS(N);
  143.                                 }
  144.                 for(i=0;i<8;i++){   
  145.                         P3 = 0x7f>>i;
  146.                         DELAY_MS(N);
  147.                                 }
  148.                 RR=0;GG=0;BB=0;//红蓝绿灯亮
  149.                 for(i=0;i<8;i++){   
  150.                         P3 = 0xfe<<i;
  151.                         DELAY_MS(N);
  152.                                 }
  153.                 for(i=0;i<8;i++){   
  154.                         P3 = 0x7f>>i;
  155.                         DELAY_MS(N);
  156.                                 }
  157. /********各种颜色灯全部点亮一个熄灭的灯左右流动*************************/
  158.                 RR=0;GG=1;BB=1;//红灯亮
  159.                 for(i=0;i<8;i++){   
  160.                         P3 = 1<<i;
  161.                         DELAY_MS(N);
  162.                                 }
  163.                
  164.                 for(i=0;i<8;i++){   
  165.                         P3 = 0x80>>i;
  166.                         DELAY_MS(N);
  167.                                 }
  168.                 RR=1;GG=0;BB=1;//绿灯亮
  169.                 for(i=0;i<8;i++){   
  170.                         P3 = 1<<i;
  171.                         DELAY_MS(N);
  172.                                 }
  173.                
  174.                 for(i=0;i<8;i++){   
  175.                         P3 = 0x80>>i;
  176.                         DELAY_MS(N);
  177.                                 }
  178.                 RR=1;GG=1;BB=0;//蓝灯点亮
  179.                 for(i=0;i<8;i++){   
  180.                         P3 = 1<<i;
  181.                         DELAY_MS(N);
  182.                                 }
  183.                
  184.                 for(i=0;i<8;i++){   
  185.                         P3 = 0x80>>i;
  186.                         DELAY_MS(N);
  187.                                 }
  188.                 RR=0;GG=0;BB=1;//红绿灯亮
  189.                 for(i=0;i<8;i++){   
  190.                         P3 = 1<<i;
  191.                         DELAY_MS(N);
  192.                                 }
  193.                
  194.                 for(i=0;i<8;i++){   
  195.                         P3 = 0x80>>i;
  196.                         DELAY_MS(N);
  197.                                 }
  198.                 RR=0;GG=1;BB=0;//红蓝灯亮
  199.                 for(i=0;i<8;i++){   
  200.                         P3 = 1<<i;
  201.                         DELAY_MS(N);
  202.                                 }
  203.                
  204.                 for(i=0;i<8;i++){   
  205.                         P3 = 0x80>>i;
  206.                         DELAY_MS(N);
  207.                                 }                        
  208.                
  209.                 RR=1;GG=0;BB=0;//蓝绿灯亮
  210.                 for(i=0;i<8;i++){   
  211.                         P3 = 1<<i;
  212.                         DELAY_MS(N);
  213.                                 }
  214.                
  215.                 for(i=0;i<8;i++){   
  216.                         P3 = 0x80>>i;
  217.                         DELAY_MS(N);
  218.                                 }
  219.                 RR=0;GG=0;BB=0;//红蓝绿灯亮
  220.                 for(i=0;i<8;i++){   
  221.                         P3 = 1<<i;
  222.                         DELAY_MS(N);
  223.                                 }
  224.                
  225.                 for(i=0;i<8;i++){   
  226.                         P3 = 0x80>>i;
  227.                         DELAY_MS(N);
  228.                                 }                                                                                                                                                                                                                                                                                                                        
  229.         }                                   
  230. }
  231. /************************************END*********************************************************/
复制代码

所有资料51hei提供下载:
RGB8位彩色流水灯程序.rar (29.11 KB, 下载次数: 32)
RGB8位彩色流水灯PCB资料.rar (114.24 KB, 下载次数: 41)

制作出来的实物图如下:
http://www.51hei.com/bbs/dpj-56830-1.html


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表