历史上的今天
今天是:2025年02月22日(星期六)
2020年02月22日 | 基于AVR的RGB彩灯控制芯片WS2801的控制程序
2020-02-22 来源:eefocus
简介:本文主要介绍的是基于AVR的RGB彩灯控制芯片WS2801的控制程序
#include"color.h"
#include"delay.h"
// 0.18084us
void Sbi_SDI()
{
sbi(PORTC,1);
}
void Cbi_SDI()
{
cbi(PORTC,1);
}
void Sbi_CKI()
{
sbi(PORTC,0);
}
void Cbi_CKI()
{
cbi(PORTC,0);
}
void Send_CKI() //WS2801 上升沿
{
Cbi_CKI(); // 时钟 拉低
_delay_us(6);
Sbi_CKI(); // 时钟 拉高
_delay_us(6);
Cbi_CKI(); // 时钟 拉低
}
void Write_WS2801_Data(unsigned char _data) //WS2801
{
unsigned char dai;
unsigned char cache;
for(dai=0;dai<8;dai++)
{
cache = (_data & 0x80)>>7;
if(cache)
Sbi_SDI();
else
Cbi_SDI();
Send_CKI();
_data <<= 1;
}
}
void Write_WS2801_ColorData(unsigned char *pd)
{
unsigned char LEDMax = 0; // LED 最大数量
Cbi_CKI();
Cbi_SDI();
_delay_us(250);
_delay_us(250);
for(LEDMax = 0;LEDMax<27;LEDMax++)
{
//Write_WS2801_Data(Red);
//Write_WS2801_Data(Green);
//Write_WS2801_Data(Blue);
Write_WS2801_Data(*pd);
pd++;
}
}
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 09:11 编辑 关键字: 晶振 振荡器 石英晶体 石英晶体振荡器是高精度和高稳定度的振荡器,被广泛应用于彩电、计算机、遥控器等各类振荡电路中,以及通信系统中用于频率发生器、为数据处理设备产生时钟信号和为特 ...… 查看全部问答> |
|
用两个传统的573 控制 数码管显示,奇怪的是单个显示时,一切正常。待到多位扫描显示时,就出现了奇怪的顺序和段码,小弟不才, 望大虾们,不吝赐教! #include <reg52.h> sbit dula=P2^0;sbit wela=P2^1; void delay(int i){ int j=1 ...… 查看全部问答> |
|
我在公司里做毕业设计,采用lpc931单片机,想把一个十六位的数字量用单片机的Pwm功能给转换成模拟量,pwm输出采用rc滤波,但具体的c程序该怎么写呢?请指教!!… 查看全部问答> |
|
Andrew Armutat 产品市场部 吉时利仪器公司 减少机架所占空间。新的吉时利SMU采用了2U[1]高的半机架设计,大大提高了机架密度。在实际情况下,基于该设计的自动化系统容量很容易集成几个到16个通道,甚至于128通道[2]也是有可能的 ...… 查看全部问答> |
|
main(void) { /*PC4 PC13 PB10 PA0 */ USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLengt ...… 查看全部问答> |
|
使用usb(ch376或者ch375)完成PC和FPGA的通信 只是读写。 写,pc上的信息通过USB写如FPGA在数码管上显示。 读,读FPGA,ram里的信息,传给PC。 现在编verilog代码出现问题了。 谁要是有这个代码更好。 如果没有我想问一下,CH376并行通信的芯片中断管脚是怎么 ...… 查看全部问答> |




