一款LED控制芯片 TM1812找不出什么问题

Danche7 2012-08-30 01:25:52
一款LED控制芯片 TM1812找不出什么问题
灯珠是RGB 5050封装
程序看起来没错,全红色,全绿色,全蓝色显示的时候,总有一盏不正确,电路什么的也没问题
程序如下:

//MCU:STC12C5A60S2 晶振是33M
//TM1812芯片手册下载地址:http://wenku.baidu.com/view/31422efd04a1b0717fd5ddb7.html
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsinged long
#define nop() _nop_()
#define RGB_count 4
#define RGB_speed 40

sbit TM18xx_dat_in = P0^0;
sbit LED = P1^0;

void TM18xx_send_dat(uchar date) //高速,0码500n,1码1000n (33M)
{
uchar i;
for(i=0;i<8;i++)
{
if(date&0x80)
{
TM18xx_dat_in=1;
nop(); nop(); nop(); nop();
nop(); nop(); nop(); nop();
nop(); nop(); nop(); nop(); //最少14个nop,550NS可用,
nop(); nop(); nop(); nop();//多无限
TM18xx_dat_in=0;
nop(); nop(); nop(); nop();
nop(); nop(); nop();
}
else
{
TM18xx_dat_in=1;//120NS
nop(); nop(); nop(); nop();
nop(); nop(); nop(); //10个nop可用,420NS
// nop();
// nop(); //最少单单一个DIO=1;120nS,可用
// nop(); //最多13个nop,520NS可用
//nop();//1812.0921D加这一个nop,不可用
TM18xx_dat_in=0;
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
}
date<<=1;
}
}

void TM18xx_resst()
{
uint i;
TM18xx_dat_in =0;
for(i=500;i>0;i--); //>24us
}
void delay(uint t)
{
unsigned long j;
while(t--) for(j=0;j<1000;j++);
}
void main()
{
uchar i,num,t,n;
uchar ;
TM18xx_resst();
while(1)
{
for(n=RGB_count;n>0;n--) //确定RGB点数
{
TM18xx_send_dat(0xff); //红
TM18xx_send_dat(0x00); //绿
TM18xx_send_dat(0x00); //蓝
// TM18xx_resst();
}
TM18xx_resst();
delay(800);
for(n=RGB_count;n>0;n--) //确定RGB点数
{
TM18xx_send_dat(0x00); //红
TM18xx_send_dat(0xff); //绿
TM18xx_send_dat(0x00); //蓝
// TM18xx_resst();
}
TM18xx_resst();
delay(800);
for(n=RGB_count;n>0;n--) //确定RGB点数
{
TM18xx_send_dat(0x00); //红
TM18xx_send_dat(0x00); //绿
TM18xx_send_dat(0xff); //蓝
// TM18xx_resst();
}
TM18xx_resst();
delay(800);
for(n=RGB_count;n>0;n--) //确定RGB点数
{
TM18xx_send_dat(0xff); //红
TM18xx_send_dat(0xff); //绿
TM18xx_send_dat(0xff); //蓝
// TM18xx_resst();
}
TM18xx_resst();
delay(800);
}
}
/*本程序为内部测试程序,仅供参考。任何个人或单位因为直接使用本程序
造成的损失,本公司不承担任何责任*/
...全文
445 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
loopergi 2014-03-17
  • 打赏
  • 举报
回复
请问现在有解决问题了吗?关于TM1812的!
woshi_ziyu 2012-08-30
  • 打赏
  • 举报
回复
控制过RGB5050

总有一盏不亮?那否看一下电路连接呢

是不是循环次数计算错误呢 应该简单调试一下就能查出问题的
aydf1 2012-08-30
  • 打赏
  • 举报
回复
是硬件的问题吧?
Danche7 2012-08-30
  • 打赏
  • 举报
回复
软件你看了觉得没问题吗??请问你用过这芯片吗??能不能给个Q号 请教一下[Quote=引用楼主 的回复:]
一款LED控制芯片 TM1812找不出什么问题
灯珠是RGB 5050封装
程序看起来没错,全红色,全绿色,全蓝色显示的时候,总有一盏不正确,电路什么的也没问题
程序如下:
C/C++ code

//MCU:STC12C5A60S2 晶振是33M
//TM1812芯片手册下载地址:http://wenku.baidu.com/view/31422efd04a1b0717fd5ddb7……
[/Quote]

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧