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

📄 lz-led-tm1809l.lst

📁 LED灯带红绿蓝白渐亮渐灭(低速模式1024点)
💻 LST
字号:
C51 COMPILER V9.00   LZ_LED_TM1809L                                                        10/18/2011 10:05:22 PAGE 1   


C51 COMPILER V9.00, COMPILATION OF MODULE LZ_LED_TM1809L
OBJECT MODULE PLACED IN LZ-LED-TM1809L.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LZ-LED-TM1809L.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //========================================================================//
   2          //-----------MCU型号为STC15F104E(程序下载时输入内置30MHz振荡)-----------//
   3          //  程序功能:向TM1809低速模式发送3个像素点数据并检测交流过零信号以实现   //
   4          //  七彩同步渐变循环。          ISP程序下载:P3.0(RXD) P3.1(TXD)      //
   5          //      交流过零检测输入:P3.2(采用外部0中断)      数据输出:P3.3           //                               
             -             
   6          //  编 写 人:陆  周    编写时间:2011-07-28于深圳宝安区   版本号:A-01   //
   7          //========================================================================//
   8          
   9          #include<reg52.h>                                //MCU资源头文件
  10          #include<intrins.h>                              //移位函数
  11          #define nop _nop_();                     
  12          #define uchar unsigned char              //宏替换,方便书写
  13          #define uint  unsigned int               //宏替换,方便书写
  14          
  15          sbit DIO=P3^3;                           //数据输出引脚声明
  16          
  17          uchar bdata LED_DAT;                     //可位操作的数据发送暂存变量声明
  18          sbit bit0=LED_DAT^0;                     //被发送的数据各位定义
  19          sbit bit1=LED_DAT^1;
  20          sbit bit2=LED_DAT^2;
  21          sbit bit3=LED_DAT^3;
  22          sbit bit4=LED_DAT^4;
  23          sbit bit5=LED_DAT^5;
  24          sbit bit6=LED_DAT^6;
  25          sbit bit7=LED_DAT^7;
  26          
  27          
  28          uint j;                                                  //时间控制全局变量声明
  29          uchar RR,GG,BB;                                  //RGB灰度值全局变量声明                        
  30          
  31          void h_dat0();                                   //数码BIT0
  32          void h_dat1();                                   //数码BIT1
  33          void fs_rgbdat();                                //发送RGB灰度数据
  34          
  35          void red_jl();                                   //红色渐亮
  36          void red_jm();                                   //红色渐灭
  37          void green_jl();                                 //绿色渐亮
  38          void green_jm();                                 //绿色渐灭
  39          void blue_jl();                                  //蓝色渐亮                             
  40          void blue_jm();                                  //蓝色渐灭
  41          void white_jl();                                 //白色渐亮
  42          void white_jm();                                 //白色渐灭
  43          void delay_1ms(uint z);                  //延时函数声明
  44          //*****************************主程序开始*****************************//
  45          void main()
  46          {
  47   1              while(1)
  48   1              {
  49   2                  RR=0; GG=0; BB=0;
  50   2                      fs_rgbdat();                             //发送RGB灰度数据
  51   2                      DIO=0;                                           //数据IO口置0          
  52   2                      delay_1ms(50);                           //延时100毫秒等待所有MCU复位
  53   2      
  54   2                      red_jl();                                        //红色渐亮
C51 COMPILER V9.00   LZ_LED_TM1809L                                                        10/18/2011 10:05:22 PAGE 2   

  55   2                      red_jm();                                        //红色渐灭
  56   2                      green_jl();                                      //绿色渐亮
  57   2                      green_jm();                                      //绿色渐灭
  58   2                      blue_jl();                                       //蓝色渐亮                             
  59   2                      blue_jm();                                       //蓝色渐灭
  60   2                      white_jl();                                      //白色渐亮
  61   2                      white_jm();                                      //白色渐灭
  62   2              }
  63   1      
  64   1      }
  65          //*****************************主程序结束*****************************//
  66          
  67          
  68          
  69          
  70          //*****************************子程序开始*****************************//
  71          //=======================红色渐亮=======================//
  72          void red_jl()
  73          {
  74   1              uint i;
  75   1              RR=0; GG=0; BB=0;
  76   1              for(i=0; i<256; i++)             //白色渐灭
  77   1              {               
  78   2                      fs_rgbdat();                             //发送RGB灰度数据
  79   2                      DIO=0;                                   //数据IO口置0
  80   2                      delay_1ms(5);
  81   2                      RR++;           
  82   2              }
  83   1              RR=255; GG=0; BB=0;                                     
  84   1      }
  85          
  86          //=======================红色渐灭=======================//
  87          void red_jm()
  88          {
  89   1              uint i;
  90   1              RR=255; GG=0; BB=0;
  91   1              for(i=0; i<256; i++)             //白色渐灭
  92   1              {       
  93   2                      fs_rgbdat();                             //发送RGB灰度数据
  94   2                      DIO=0;                                   //数据IO口置0  
  95   2                      delay_1ms(5);
  96   2                      RR--;           
  97   2              }
  98   1              RR=0; GG=0; BB=0;       
  99   1      }
 100          //=======================绿色渐亮=======================//
 101          void green_jl()
 102          {
 103   1              uint i;
 104   1              RR=0; GG=0; BB=0;
 105   1              for(i=0; i<256; i++)             //白色渐灭
 106   1              {                       
 107   2                      fs_rgbdat();                             //发送RGB灰度数据
 108   2                      DIO=0;                                   //数据IO口置0  
 109   2                      delay_1ms(5);
 110   2                      GG++;           
 111   2              }
 112   1              RR=0; GG=255; BB=0;     
 113   1      }
 114          
 115          //=======================绿色渐灭=======================//
 116          void green_jm()
C51 COMPILER V9.00   LZ_LED_TM1809L                                                        10/18/2011 10:05:22 PAGE 3   

 117          {
 118   1              uint i;
 119   1              RR=0; GG=255; BB=0;
 120   1              for(i=0; i<256; i++)             //白色渐灭
 121   1              {                       
 122   2                      fs_rgbdat();                             //发送RGB灰度数据
 123   2                      DIO=0;                                   //数据IO口置0  
 124   2                      delay_1ms(5);
 125   2                      GG--;           
 126   2              }
 127   1              RR=0; GG=0; BB=0;               
 128   1      }
 129          //=======================蓝色渐亮=======================//
 130          void blue_jl()
 131          {
 132   1              uint i;
 133   1              RR=0; GG=0; BB=0;
 134   1              for(i=0; i<256; i++)             //白色渐灭
 135   1              {                       
 136   2                      fs_rgbdat();                             //发送RGB灰度数据
 137   2                      DIO=0;                                   //数据IO口置0  
 138   2                      delay_1ms(5);
 139   2                      BB++;           
 140   2              }
 141   1              RR=0; GG=0; BB=255;     
 142   1      }                                       
 143          //=======================蓝色渐灭=======================//
 144          void blue_jm()
 145          {
 146   1              uint i;
 147   1              RR=0; GG=0; BB=255;
 148   1              for(i=0; i<256; i++)             //白色渐灭
 149   1              {               
 150   2                      fs_rgbdat();                             //发送RGB灰度数据
 151   2                      DIO=0;                                   //数据IO口置0  
 152   2                      delay_1ms(5);
 153   2                      BB--;           
 154   2              }
 155   1              RR=0; GG=0; BB=0;               
 156   1      }
 157          //=======================白色渐亮=======================//
 158          void white_jl()
 159          {
 160   1              uint i;
 161   1              RR=0; GG=0; BB=0;
 162   1              for(i=0; i<256; i++)             //白色渐灭
 163   1              {               
 164   2                      fs_rgbdat();                             //发送RGB灰度数据
 165   2                      DIO=0;                                   //数据IO口置0  
 166   2                      delay_1ms(5);
 167   2                      RR++;
 168   2                      GG++;
 169   2                      BB++;           
 170   2              }
 171   1              RR=255; GG=255; BB=255; 
 172   1      }
 173          //=======================白色渐灭=======================//
 174          void white_jm()
 175          {
 176   1              uint i;
 177   1              RR=255; GG=255; BB=255;
 178   1              for(i=0; i<256; i++)             //白色渐灭
C51 COMPILER V9.00   LZ_LED_TM1809L                                                        10/18/2011 10:05:22 PAGE 4   

 179   1              {                       
 180   2                      fs_rgbdat();                             //发送RGB灰度数据
 181   2                      DIO=0;                                   //数据IO口置0
 182   2                      delay_1ms(5);
 183   2                      RR--;
 184   2                      GG--;
 185   2                      BB--;           
 186   2              }
 187   1              RR=0; GG=0; BB=0;       
 188   1      }
 189          
 190          //=============低速模式数码BIT0(高电平时间:600ns 低电平时间:1940ns 周期T=2.54US)=============//
 191          void h_dat0()
 192          {   
 193   1        DIO=1; 
 194   1        nop; nop; nop; nop; nop; 
 195   1        nop; nop; nop;  
 196   1        DIO=0;                                
 197   1        nop; nop; nop; nop; nop; 
 198   1        nop; nop; nop; nop; nop;
 199   1        nop; nop; nop; nop; nop; 
 200   1        nop; nop; nop; nop; nop; 
 201   1        nop; nop; nop; nop; nop; 
 202   1        nop; nop; 
 203   1      }                                
 204          //=============低速模式数码BIT1(高电平时间:1840ns 低电平时间:700ns 周期T=2.54US)=============//
 205          void h_dat1()                             
 206          {          
 207   1        DIO=1;
 208   1        nop; nop; nop; nop; nop; 
 209   1        nop; nop; nop; nop; nop; 
 210   1        nop; nop; nop; nop; nop; 
 211   1        nop; nop; nop; nop; nop; 
 212   1        nop; nop; nop; nop; nop; 
 213   1        nop; nop; nop; nop; nop; 
 214   1        nop; nop; nop; nop; nop;
 215   1        DIO=0;                                         
 216   1      }       
 217          
 218          //===================发送RGB灰度数据===================//
 219          void fs_rgbdat()                                         //发送RGB灰度数据
 220          {
 221   1              uint k;
 222   1              for(k=0; k<1024; k++)                    //发送1024个像素点的数据 (灯的封装与PCB封装不一致,须按RBG的顺序发送数据!!!

⌨️ 快捷键说明

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