• 大小: 15KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: 其他
  • 标签: lpd6803  

资源简介

专用PWM驱动芯片LPD6803的驱动程序

资源截图

代码片段和文件信息

#include “STC12C2052.H“

typedef unsigned char BYTE;

sbit SDO=P1^5;
sbit SCLK=P1^7;

unsigned char Dbuf[80];

void BrushOut(BYTE nDotsBYTE drBYTE dgBYTE db)
{   BYTE ijmask;

// SDOSCLK为数据和移位输出口,位变量,nDots为灯的个数  
// 本程序仅适用于GMODE=1CMODE=1的情况    
// 首先输出32个‘0‘的起始帧    
    SCLK=0;
    SDO=0;
    for(i=0;i<32;i++) { SCLK=1;SCLK=0; }

// 再输出nDots点的数据,这里假设各点的颜色都是(drdgdb)
// drdbdg为红绿兰的灰度值0-31
    for(i=0;i    {   //首先输出1个‘1‘起始位
    SDO=1;SCLK=1;SCLK=0;
        
    //输出5位红色数据  
    mask=0x10;
    for(j=0;j<5;j++)
    {    if(mask & dr)    SDO=1;
         else             SDO=0;
         SCLK=1;SCLK=0;
         mask>>=1;      }

    //输出5位绿色数据    
    mask=0x10;
    for(j=0;j<5;j++)
    {   if(mask & dg)   SDO=1;
        else            SDO=0;
        SCLK=1;SCLK=0;
        mask>>=1;       }

    //输出5位兰色数据   
    mask=0x10;
    for(j=0;j<5;j++)
    {   if(mask & db)   SDO=1;
        else            SDO=0;
        SCLK=1;SCLK=0;
        mask>>=1;       }
    }

    //输出完nDots的数据后,还要补nDots个脉冲   
    SDO=0;
    for(i=0;i    
    //传输结束     
}

void delay(unsigned int n)
{   BYTE t;
    for(;n>0;n--)
        for(t=0;t<250;t++) ;
}

void ScanOut(BYTE n)
{   BYTE ijdatmask;

    SCLK=0;
    SDO=0;
    for(i=0;i<32;i++) { SCLK=1;SCLK=0; }

    for(i=0;i    {   mask=0x80;
dat=Dbuf[i];
for(j=0;j<8;j++)
{ if(mask & dat)    SDO=1;
          else             SDO=0;
          SCLK=1;SCLK=0;
          mask>>=1;      }
    }    

    //输出完nDots的数据后,还要补nDots个脉冲   
    SDO=0;
    for(i=0;i
// delay(1000);
}


main()
{   BYTE ijk;
    
    while(1)
    {
        //红色渐亮  
        for(i=0;i<32;i++)
        {
            BrushOut(20i00);
            delay(600);   }
                
        //红色渐暗同时绿色渐亮   
        for(i=0;i<32;i++)
        {
            BrushOut(2031-ii0);
            delay(600);   }
            
        //绿色渐暗同时兰色渐亮   
        for(i=0;i<32;i++)
        {
            BrushOut(20031-ii);
            delay(600);   }
            
        //兰色渐暗    
        for(i=0;i<32;i++)
        {
            BrushOut(200031-i);
            delay(600);   }
            
        //白色渐亮   
        for(i=0;i<32;i++)
        {
            BrushOut(20iii);
            delay(600);   }

        //七彩演示    
        BrushOut(203100);delay(10000);
        BrushOut(2031310);delay(10000);
        BrushOut(200310);delay(10000);
        BrushOut(2003131);delay(10000);    
BrushOut(200031);delay(10000);
BrushOut(2031031);delay(10000);
BrushOut(20313131);delay(10000);


for(i=0;i<80;i++) Dbuf[i]=0;
ScanOut(80);

for(j=0;j<128;j++)
{
for(i=0;i<80;i+=2)
{ if(i>=64)
{ Dbuf[i]=0x80;
Dbuf[i+1]=0;
}
else
{   k=31-((i+j) & 31);
Dbuf[i]=0x80+(k<<2);
Dbuf[i+1]=k;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    .CA....      3254  2007-11-03 17:58  DEMO1\demo.c

    .CA....      7037  2007-11-03 17:58  DEMO1\demo.LST

    .CA....      7545  2007-11-03 17:58  DEMO1\demo.OBJ

    .CA....      6699  2007-11-03 17:58  DEMO1\DemoA

    .CA....      1723  2007-11-03 17:58  DEMO1\DemoA.hex

    .CA....        26  2007-11-03 17:58  DEMO1\DemoA.lnp

    .CA....     11000  2007-11-03 17:58  DEMO1\DemoA.M51

     文件       1004  2008-05-16 16:42  DEMO1\DemoA.Opt

    .CA....       155  2008-05-16 16:42  DEMO1\DemoA.plg

     文件       2093  2008-05-16 16:42  DEMO1\DemoA.Uv2

    .CA....      4138  2007-08-13 07:13  DEMO1\STC12C2052.H

     目录          0  2008-05-16 16:42  DEMO1

    .C.....       997  2007-11-04 08:53  DEMO1\DemoA_Opt.Bak

    .C.....      1689  2007-12-12 23:26  DEMO1\DemoA_Uv2.Bak

----------- ---------  ---------- -----  ----

                47360                    14


评论

共有 条评论

相关资源