⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo.lst

📁 全彩LED变化程序,单片机控制LPD6803驱动LED
💻 LST
字号:
C51 COMPILER V7.00  DEMO                                                                   08/13/2007 07:56:06 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE DEMO
OBJECT MODULE PLACED IN demo.OBJ
COMPILER INVOKED BY: c:\Keil\C51\BIN\C51.EXE demo.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "STC12C2052.H"
   2          
   3          typedef unsigned char BYTE;
   4          
   5          sbit SDO=P1^5;
   6          sbit SCLK=P1^7;
   7          
   8          void BrushOut(BYTE nDots,BYTE dr,BYTE dg,BYTE db)
   9          {   BYTE i,j,mask;
  10   1      
  11   1      // SDO,SCLK为数据和移位输出口,位变量,nDots为灯的个数
  12   1      // 本程序仅适用于GMODE=1,CMODE=1的情况
  13   1      // 首先输出32个'0'的起始帧
  14   1          SCLK=0;
  15   1          SDO=0;
  16   1          for(i=0;i<32;i++) { SCLK=1;SCLK=0; }
  17   1      
  18   1      // 再输出nDots点的数据,这里假设各点的颜色都是(dr,dg,db)
  19   1      // dr,db,dg为红绿兰的灰度值0-31
  20   1          for(i=0;i<nDots;i++)
  21   1          {   //首先输出1个'1'起始位
  22   2          SDO=1;SCLK=1;SCLK=0;
  23   2              
  24   2          //输出5位红色数据
  25   2          mask=0x10;
  26   2          for(j=0;j<5;j++)
  27   2          {    if(mask & dr)    SDO=1;
  28   3               else             SDO=0;
  29   3               SCLK=1;SCLK=0;
  30   3               mask>>=1;      }
  31   2      
  32   2          //输出5位绿色数据
  33   2          mask=0x10;
  34   2          for(j=0;j<5;j++)
  35   2          {   if(mask & dg)   SDO=1;
  36   3              else            SDO=0;
  37   3              SCLK=1;SCLK=0;
  38   3              mask>>=1;       }
  39   2      
  40   2              //输出5位兰色数据
  41   2          mask=0x10;
  42   2          for(j=0;j<5;j++)
  43   2          {   if(mask & db)   SDO=1;
  44   3              else            SDO=0;
  45   3              SCLK=1;SCLK=0;
  46   3              mask>>=1;       }
  47   2          }
  48   1      
  49   1          //输出完nDots的数据后,还要补nDots个脉冲
  50   1          SDO=0;
  51   1          for(i=0;i<nDots;i++) { SCLK=1;SCLK=0; }
  52   1          
  53   1          //传输结束
  54   1      }
  55          
C51 COMPILER V7.00  DEMO                                                                   08/13/2007 07:56:06 PAGE 2   

  56          void delay(unsigned int n)
  57          {   BYTE t;
  58   1          for(;n>0;n--)
  59   1              for(t=0;t<250;t++) ;
  60   1      }
  61          
  62          main()
  63          {   BYTE i;
  64   1          
  65   1          while(1)
  66   1          {
  67   2              //红色渐亮
  68   2              for(i=0;i<32;i++)
  69   2              {
  70   3                  BrushOut(20,i,0,0);
  71   3                  delay(600);   }
  72   2                      
  73   2              //红色渐暗同时绿色渐亮
  74   2              for(i=0;i<32;i++)
  75   2              {
  76   3                  BrushOut(20,31-i,i,0);
  77   3                  delay(600);   }
  78   2                  
  79   2              //绿色渐暗同时兰色渐亮
  80   2              for(i=0;i<32;i++)
  81   2              {
  82   3                  BrushOut(20,0,31-i,i);
  83   3                  delay(600);   }
  84   2                  
  85   2              //兰色渐暗
  86   2              for(i=0;i<32;i++)
  87   2              {
  88   3                  BrushOut(20,0,0,31-i);
  89   3                  delay(600);   }
  90   2                  
  91   2              //白色渐亮
  92   2              for(i=0;i<32;i++)
  93   2              {
  94   3                  BrushOut(20,i,i,i);
  95   3                  delay(600);   }
  96   2      
  97   2              //七彩演示
  98   2              BrushOut(20,31,0,0);delay(10000);
  99   2              BrushOut(20,31,31,0);delay(10000);
 100   2              BrushOut(20,0,31,0);delay(10000);
 101   2              BrushOut(20,0,31,31);delay(10000);    
 102   2                      BrushOut(20,0,0,31);delay(10000);
 103   2                      BrushOut(20,31,0,31);delay(10000);
 104   2                      BrushOut(20,31,31,31);delay(10000);
 105   2          }
 106   1          
 107   1      }    


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    379    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V7.00  DEMO                                                                   08/13/2007 07:56:06 PAGE 3   

END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -