-
大小: 3KB文件类型: .c金币: 1下载: 0 次发布日期: 2021-05-16
- 语言: 其他
- 标签: ws2812b 51单片机 stc89c52rc
资源简介
STC89C52RC使用电位器控制WS2812B调光,晶振24M,使能6T,否则频率不够(https://blog.csdn.net/yaleond/article/details/83474974)
代码片段和文件信息
/********************************************************/
/*作 者:yaleond
/*修改日期:2018.10.28
/*版 本:V1.0
/*程序功能:用stc89c52rc单片机控制ws2812 RGB输出,显示全色彩
/*备 注:51单片机晶振24M
/********************************************************/
#include
#include
#include“math.h“
#define uchar unsigned char
sbit Send_Dat=P0^0; //数据输出,上拉后接ws2812 IN脚
sbit SJ=P1^4; //LED发光管的使能端
sbit ADC0804_SC=P2^0;
sbit ADC0804_RD=P3^7;
sbit ADC0804_WR=P3^6;
sbit DAC0832_SC=P3^2;
sbit DUAN=P2^6; //74HC573的LE端 LED的段选端
sbit WEI=P2^7; //74HC573的LE端 LED的位选端
//存储一个转化后的RGB2进制数 共24bits
struct My_24bits //结构体
{
uchar G_VAL; //绿色 0-255
uchar R_VAL; //红色 0-255
uchar B_VAL; //蓝色0-255
};
/*写入数据时序*/
void Send_A_bit(uchar VAL)
{
if (VAL==1)
{
Send_Dat=1;//
_nop_();
_nop_();
Send_Dat=0;
}
else
{
Send_Dat=1;
_nop_();
Send_Dat=0;
}
}
/*发送24位字符(包含RGB信息各8位)*/
void Send_24bits(struct My_24bits RGB_VAL)
{
uchar i;
for(i=0; i<8; i++)
{
Send_A_bit(RGB_VAL.G_VAL>>(7-i)&0x01);
}
for(i=8; i<16; i++)
{
Send_A_bit(RGB_VAL.R_VAL>>(15-i)&0x01);
}
for(i=16; i<24; i++)
{
Send_A_bit(RGB_VAL.B_VAL>>(23-i)&0x01);
}
}
/*小延时函数 一个指令大概是0.25us*/
/* 100us*/
void delay()
{
uchar ij;
for
- 上一篇:CC2540原理图
- 下一篇:51利用EC11调节ws2812b亮度
相关资源
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 51单片机频率计(很简单)
- 基于51单片机的智能温控器
- 基于51单片机的16*16点阵动态显示
- 基于51单片机的模数转换与数模转换
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 8051单片机教程第二十七课:单片机几
- 8051单片机教程第二十六课:矩阵式键
- 适用于STC单片机和51单片机的SX1262驱动
- EESkill NRF24L01 无线模块用户手册
- 基于51单片机的计算器(C51编写,有
- 51单片机大量源码
- 基于51单片机的交通信号灯程序
- GSM监控系统51单片机设计
- 51单片机定时器/计数器的结构和原理
评论
共有 条评论