打印
[国产单片机]

功能强大的8脚带ADC带灯带功能带触摸按键单片机

[复制链接]
3090|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ZHNAGR|  楼主 | 2022-3-30 16:23 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ZHNAGR 于 2022-3-30 16:26 编辑

S
CA51F152S1是基于 1T 8051 内核的 8 位微控制器,通常情况下,运行速度比传统的 8051 芯片快 10 倍,
内置 16K Flash 程序存储器,可多次重复编程的特性,给用户开发带来了极大的方便。
1.最大支持 5 个触摸通道,支持触摸低功耗(小于5uA);高抗干扰性能,符合 EMC(CS)标准
2.1个串口+IIC接口
3.3路16位PWM(可调占空比跟频率)
4.一路单线级联 LED 驱动(可以驱动WS2811/WS2812灯带芯片)
(联系张生 15813832603)

单线级联 LED 驱动灯带控制例程
PWM1 为例,驱动 8 RGB LED ,使 RGB LED 循环变色,程序如下:
----------------------------------------------------------------------------------------
//PWMxCON
#define TOG(n)
(n<<6)
#define PWM_CKS_SYS (0<<0)
#define PWM_CKS_IL (1<<0)
#define PWM_CKS_IH (2<<0)
#define PWMMOD(N)
(N<<3) //N=0-7
#define PWMPOL(N)
(N<<2) //N=0-1
void PWM_init(void)
{
PWM1CON = TOG(0)| PWMMOD(3) | PWMPOL(0) | PWM_CKS_IH; //设置 IRCH PWM 时钟源,发
3 个字节后插入暂停时间
PWM1CKD = 0; //设置预分频系数,设置为 0 表示不分频
PWM1DIVH = 0;
//设置位周期时间
PWM1DIVL = 20;
PWM1DUTH = 0;
//设置位码 0 时间
PWM1DUTL = 6;
LEDUTH= 0;
//设置位码 1 时间
LEDUTL= 13;
LEDWTMH = 0; //设置暂停时间
LEDWTML = 50;
P34F = 6;
//设置 P34 PWM 引脚功能
PWMEN |= (1<<1);
//PWM1 使能
}
void main(void)
{
PWM_init(void);
while(1)
{
unsigned char i;
static unsigned char color_index = 0;
code unsigned char LED_DAT[][3] =
{
{0xff,0x00,0x00},
{0xff,0xff,0x00},
{0x00,0xff,0x00},
{0x00,0xff,0xff},
{0x00,0x00,0xff},
{0xff,0x00,0xff},
};
for(i=0;i<24;i++)
{
while(LE** & LEF0);
LEDAT0 = LED_DAT[color_index][i%3];
}
color_index++;
if(color_index>=6)
color_index=0;
Delay_ms(500);
}
}代码中WS2811驱动RBG共3路是3组数据,8组就24个数据.如果要不同变化就改变数据来获取得不同效果



使用特权

评论回复

相关帖子

沙发
南方艳阳| | 2024-8-1 11:09 | 只看该作者
你好楼主,请问如果要封装成rgb函数要怎么写呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:锦锐单片机(触摸按键,LCD驱动) Q:1050054175 张工

6

主题

81

帖子

1

粉丝