HT48R06做主控控制级联LED驱动IC HL1606的程序请教
[i=s] 本帖最后由 lqxiaomiao 于 2010-3-16 15:40 编辑 [/i]大家好,因工作关系,接触到一个广告灯控制电路, 主控芯片用的是HT48R06, 分控芯片用的是HL1606, 想学习一下, 并向供HL1606供应商朋友要了个演示程序。想参照着学习,所以发过来,请朋友们帮忙指点一下,以前对51单片机了解的多些, 想先改用89S52做主控用起来,慢慢再学合泰单片机,所以发上来请有兴趣的朋友帮忙看看。 谢谢。其它还有几个主控程序,有兴趣的朋友可以给我留言。
//HL1606演示系列(正向刷色)
// HT C语言程序
//16MHZ TMR0 1:8
//2007 5月19日
#include <HT48R06A-1.H>
//#define si _pa7
//#define di _pa6
//#define ck _pa5
//#define li _pa4
#define di _pa7
#define si _pa6
#define ck _pb2 //_pa3 //
#define li _pb1 //_pa4 //
//定义变量
unsigned char sdata0,i; //发送数据变量
unsigned char flag; //标志变量
unsigned char del; //延时变量
unsigned char j,k,x,y,z,n,m,u,v,w;
unsigned char l,c,s; //长度,颜色,速度变量
//位定义
static bit flag_li; //锁存使能标志位
//数表定义
const unsigned char table0[7]={0xa5,0xa9,0x99,0x9a,0x96,0xa6,0xaa};
//子程序声明
void initial(void);
void send(void);
void del1ms(void);
void mode1(void);
//初始化子程序
void initial(void)
{
_pa=0x00;
_pb=0x00;
_pc=0x00;
_pac=0x00;
_pbc=0x00;
_pcc=0x00;
_tmrc=0x92; // tmr 1:48
}
//发送数据子程序
//
void send(void)
{
while(1)
{
for(i=1;i<=8;i++)
{
_clrwdt();
_c=0;
sdata0<<=1;
if(_c==1)
{
di=1;
ck=1;
ck=0;
}
if(_c==0)
{
di=0;
ck=1;
ck=0;
}
}
if(flag_li==1) break;
if(flag_li==0)
{
li=1;
li=0;
}
break;
}
}
//正向刷色
void mode6(void)
{
l=240; //长度设置
c=6; //颜色设置
s=100; //时间设置
while(1)
{
for(n=1;n<=2;n++) //循环次数
{
for(j=0;j<=c;j++)
{
for(x=1;x<=l;x++)
{
sdata0=table0[j];
flag_li=0;
send();
for(y=1;y<=s;y++)
{
_clrwdt();
_delay(1000);
}
}
}
}
break;
}
}
//主程序
//
main(void)
{
initial();
while(1)
{
mode6(); //正向刷色
}
}
在这个程序中,请教 1. clrwdt(); 是什么意思, 2. _c=0;是什么意思, 它和c=0的区别是什; 3. _delay(1000); 是什么意思, 因为没接触过合泰单片机,请朋友不要笑话 怎么没有朋友用HL1606或者是对这个感兴趣吗? 帮帮我吧
页:
[1]