-
大小: 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亮度
相关资源
- 51利用EC11调节ws2812b亮度
- C51单片机电子琴
- 带串口通信的温度控制器(带proteus仿
- 基于51单片机的智能家居系统程序
- AD9833驱动程序
- 基于C51单片机音乐盒设计[1]
- 89C51单片机控制HT1621B驱动LCD(C程序)
- 51单片机 lcd1602测试C程序
- 基于51单片机LCDLM041L显示贪吃蛇小游戏
- 基于51单片机的串行通信程序
- 51单片机 pwm波产生.zip
- 《51单片机原理及应用:基于KeilC与
- 51单片机 红外循迹 红外避障小车 双
- 基于51单片机的等精度频率计
- 51单片机课程设计——智能电风扇
- 课程设计 51单片机温度PID调节打包k
- 51单片机多机通讯程序及仿真
- 三种方法将51单片机设置为115200波特率
- 51单片机实现交通灯压缩文件.rar
- 基于51单片机的温湿度控制程序
- 基于51单片机的智能电子秤设计-程序
- 基于51单片机的GPS全球定位系统的设计
- 基于51单片机的万年历设计-完整程序
- 基于51单片机的脉搏测量仪设计-完整
- 基于MCS-51单片机的智能 时钟控制系统
- 基于51单片机DS1302四位数码管可调时钟
- 基于51单片机的红外遥控转发器程序
- 51单片机串口通信并用数码管显示接收
- DS3231+12864 0.96oled 51单片机程序
- Proteus模拟基于51单片机的断电保护实
评论
共有 条评论