找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机stc12c5a60s2实现WS2812灯带显示,功能已实现

[复制链接]
跳转到指定楼层
楼主
ID:352498 发表于 2018-8-29 00:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/****************************************

使用12c5a60s2
使用24Mhz
***************************************/
*[free]#include "RGB.H"
#include "delay.h"
#include "USART.h"

u8  Display[24];

/*******************************************************
* 函数名: RGB_LOW
* 描述  :0码
* 输入  :无
* 输出  :无
* 备注         :
*******************************************************/
void RGB_LOW()
{
   Din=1;
        _nop_();
   Din=0;
         _nop_();_nop_();_nop_();_nop_();
         _nop_();_nop_();_nop_();_nop_();
         _nop_();_nop_();_nop_();_nop_();
}
/*******************************************************
* 函数名: RGB_High
* 描述  :1码
* 输入  :无
* 输出  :无
* 备注         :
*******************************************************/
void RGB_High()
{
Din=1;
         _nop_(); _nop_();_nop_();_nop_();
         _nop_();_nop_();_nop_();_nop_();
         _nop_();_nop_();_nop_();_nop_();

  Din=0;
         _nop_();_nop_(); _nop_(); _nop_();

}
/*******************************************************
* 函数名: RGB_RESET
* 描述  :复位
* 输入  :无
* 输出  :无
* 备注         :
*******************************************************/
void RGB_RESET()
{

  Din = 0;
    delay_us(60);
}
/*******************************************************
* 函数名:RGB_display
* 描述  :颜色写入
* 输入  :r:红色
           g;蓝色
                   b;绿色
                   len;灯的个数
* 输出  :无
* 备注         :0-255级亮度               
*******************************************************/
void RGB_display(u8 g,u8 r ,u8 b,u8 len)// g绿色    r红色    b蓝色          len 为灯珠个数
{
          u8 i;
                  RGB_RESET();
              for(i=0;i<len;i++)
                    {
                       
                            RGB_BYTE(g);
                           RGB_BYTE(r);
                           RGB_BYTE(b);                                                                                                         
                    }
                  RGB_RESET();
          
}
/*******************************************************
* 函数名: RGB_BYTE
* 描述  :单色一个字节写入
* 输入  :X  为
                r
                                g
                                b
* 输出  :无
* 备注         :
*******************************************************/
void RGB_BYTE(u8 X)                     
{
      u8 i;
          for(i=0;i<8;i++)
            {
                     
                            if((X&0X80))
                      {
                            RGB_High();
                             
                          }
                          else
                             RGB_LOW();
                          
                         X=X<<1;
                }
}

/*******************************************************
* 函数名: RGB_BYTE
* 描述  :单色一个字节写入
* 输入  :X  为
                r
                                g
                                b
* 输出  :无
* 备注         :
*******************************************************/



[free]#include "STC12C5A60S2.h"
#include "delay.h"
#include "USART.h"
#include "RGB.H"


void main()
{
        u8 i;
        uart1_init();      //串口1初始化
        Din =0;
         delay_ms(5);
         P0M1 = 0X00;P0M0 = 0X00;
         P0=1;         
        while(1)
         {       
                    for(i=1;i<8;i++)
                 {                  
             RGB_display(0x00,0x00,0x01,i);                      //  绿色  红色  蓝色                         0-255灰度调节    i为灯珠个数
             delay_ms(500);                 
                  }
          }
}


RGB灯带.rar

161.89 KB, 下载次数: 114, 下载积分: 黑币 -5

灯带总共7颗,可连续添加很多颗

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:1 发表于 2018-8-29 02:04 | 只看该作者
原理图能上传或者介绍一下电路吗?
回复

使用道具 举报

板凳
ID:146045 发表于 2018-12-18 21:32 | 只看该作者
程序下载了,好像没反应
回复

使用道具 举报

地板
ID:502412 发表于 2019-4-3 14:29 | 只看该作者
谢谢分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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