学者之家电子论坛--打造电子工程师共同致富的平台's Archiver

lqxiaomiao 发表于 2010-3-16 15:36

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); 是什么意思,  因为没接触过合泰单片机,请朋友不要笑话

lqxiaomiao 发表于 2010-3-17 12:59

怎么没有朋友用HL1606或者是对这个感兴趣吗? 帮帮我吧

页: [1]

Powered by Discuz! Archiver 7.1  © 2001-2009 Comsenz Inc.

302 Found

302 Found


nginx/1.8.0