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

📄 hldv13.lst

📁 LED照明行业地砖及护栏控制器程序 从现况来看
💻 LST
字号:
C51 COMPILER V7.06   HLDV13                                                                10/11/2004 11:53:53 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE HLDV13
OBJECT MODULE PLACED IN HLDV13.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE HLDV13.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //************************************
   2          //****护栏灯管控制程序********* 
   3          //****  2004-06-19    mcu at89c2051 172800BPS  OSC 11.0592MHZ
   4          // ding li zhao ming
   5          //************************************
   6          #include <reg51.h>
   7          #include <stdio.h>//一般I/O函数
   8          #include <stdlib.h>//标准函数
   9          #include <absacc.h>//绝对地址
  10          #include <intrins.h>//内部函数  
  11          #include <setjmp.h>
  12          #define uchar unsigned char
  13          #define uint unsigned int
  14          #define Byte unsigned char
  15          #define Word unsigned int
  16          #define ulong unsigned long
  17          #define bool bit
  18          #define true 1
  19          #define false 0
  20          #define V_TH0   0xfe  /* 时间常数高8位 (65536-500)/256                  */
  21          #define V_TL0   0x0c  /* 时间常数低8位 (65536-500)%256   11.0592*/
  22          #define ADD 2
  23          
  24          
  25          //******************************
  26          
  27          sbit red0=P1^0;
  28          sbit grn0=P1^4;
  29          sbit blu0=P3^3;
  30          
  31          sbit red1=P1^1;
  32          sbit grn1=P1^5;
  33          sbit blu1=P3^4;
  34          
  35          sbit red2=P1^2;
  36          sbit grn2=P1^6;
  37          sbit blu2=P3^5;
  38          
  39          sbit red3=P1^3;
  40          sbit grn3=P1^7;
  41          sbit blu3=P3^7;
  42          sbit senden=P3^2;
  43          
  44          
  45          //**************************************************************
  46          uchar   mode;
  47          uchar   pointer;
  48          uchar   dis_red0,dis_red1,dis_red2,dis_red3;
  49          uchar   dis_grn0,dis_grn1,dis_grn2,dis_grn3;
  50          uchar   dis_blu0,dis_blu1,dis_blu2,dis_blu3;
  51          
  52          uchar   send_buf[13];
  53          uchar   pwm,rl;
  54          jmp_buf env;
  55          int retval;
C51 COMPILER V7.06   HLDV13                                                                10/11/2004 11:53:53 PAGE 2   

  56          uchar bdata flags;
  57          sbit flag0=flags^0;
  58          sbit flag1=flags^1;
  59          sbit flag2=flags^2;
  60          sbit flag3=flags^3;
  61          sbit frameok=flags^4;
  62          
  63          //*********************************
  64          void    delay(uint j);
  65          void    receive(void);
  66          void    qcgd(uint speed);
  67          void    qcld(uchar speed);
  68          void    qcpm(uchar speed);
  69          //*********************************
  70          void main(void)
  71          {
  72   1      
  73   1      TMOD=0x21;
  74   1      SCON=0xd0;
  75   1      TH1=0xfd;
  76   1      TL1=0xfd;
  77   1      PCON=0X80;
  78   1      SM2=1;
  79   1      
  80   1      TL0=V_TL0;
  81   1      TH0=V_TH0;
  82   1      TR0=1;
  83   1      ET0=1;
  84   1      
  85   1      TR1=1;
  86   1      ET1=0;
  87   1      ES=1;
  88   1      EA=1;
  89   1      
  90   1      
  91   1      
  92   1      rl=0x01;
  93   1      senden=0;
  94   1      frameok=0;
  95   1      pointer=0;
  96   1      
  97   1      while(1)
  98   1              {
  99   2              if(mode==0x55)
 100   2                      {delay(4);}
 101   2              else
 102   2                      {
 103   3                      retval=setjmp(env);
 104   3                      if(retval==0)
 105   3                              {
 106   4                              qcgd(2000);
 107   4      //                      qcld(50);
 108   4      //                      qcgd(500);
 109   4      //                      qcpm(50);
 110   4      //                      qcld(50);
 111   4                              }
 112   3                      }
 113   2              }
 114   1      }
 115          //*****************************************
 116          //       延时
 117          //**************************************
C51 COMPILER V7.06   HLDV13                                                                10/11/2004 11:53:53 PAGE 3   

 118          void delay(uint tim)
 119          {
 120   1      uint i;
 121   1      while(tim!=0)
 122   1              {
 123   2              for(i=0;i<500;i++)
 124   2                      {
 125   3      //              pwmcoun();
 126   3                      if(frameok)
 127   3                              {receive();
 128   4                              mode=0x55;
 129   4                              frameok=0;
 130   4                              retval=1;
 131   4                              longjmp(env,retval);
 132   4                              }
 133   3                      }  
 134   2              tim--;
 135   2              }
 136   1      }
 137          //************************************
 138          //七彩过渡
 139          //**********************************
 140          void    qcgd(uint speed)
 141          {
 142   1      uchar i;
 143   1      dis_red0=dis_red1=dis_red2=dis_red3=0;
 144   1      dis_grn0=dis_grn1=dis_grn2=dis_grn3=0;
 145   1      dis_blu0=dis_blu1=dis_blu2=dis_blu3=0;
 146   1      for(i=1;i<16;i++)
 147   1              {dis_red0=dis_red1=dis_red2=dis_red3=i;
 148   2              delay(speed);
 149   2              }
 150   1      for(i=1;i<16;i++)
 151   1              {//dis_red0=dis_red1=dis_red2=dis_red3=i;
 152   2              dis_grn0=dis_grn1=dis_grn2=dis_grn3=i;          //yello
 153   2              delay(speed);
 154   2              }
 155   1      for(i=15;i<16;i--)
 156   1              {dis_red0=dis_red1=dis_red2=dis_red3=i; //green
 157   2              delay(speed);
 158   2              }
 159   1      for(i=1;i<16;i++)
 160   1              {//dis_red0=dis_red1=dis_red2=dis_red3=i;
 161   2              dis_blu0=dis_blu1=dis_blu2=dis_blu3=i;
 162   2              delay(speed);
 163   2              }
 164   1      for(i=15;i<16;i--)
 165   1              {//dis_red0=dis_red1=dis_red2=dis_red3=i; //blue
 166   2              dis_grn0=dis_grn1=dis_grn2=dis_grn3=i;          
 167   2              delay(speed);
 168   2              }
 169   1      for(i=1;i<16;i++)
 170   1              {dis_red0=dis_red1=dis_red2=dis_red3=i;
 171   2              delay(speed);
 172   2              }
 173   1      for(i=15;i<16;i--)
 174   1              {dis_red0=dis_red1=dis_red2=dis_red3=i; //green
 175   2              delay(speed);
 176   2              }
 177   1      }
 178          //*****************************************
 179          
C51 COMPILER V7.06   HLDV13                                                                10/11/2004 11:53:53 PAGE 4   

 180          //*********************************
 181          //   接收数据
 182          //*********************************
 183          void    receive(void)
 184          {
 185   1      uchar i;
 186   1      uchar data *s,*o;
 187   1      //s=&dis_buf[0];
 188   1      o=&send_buf[1];
 189   1      for(i=0;i<12;i++)
 190   1              {
 191   2      //      *s=*o;
 192   2              s++;
 193   2              o++;
 194   2              }
 195   1      }
 196          //****************************************
 197          // 通讯子程序
 198          //**************************************
 199          void send(void) interrupt  4 
 200          {
 201   1      if(!TI && RI && !frameok)
 202   1       {RI=0;
 203   2              if(pointer==0)
 204   2                      {
 205   3                      if(SBUF==ADD||SBUF==0)
 206   3                              {//senden=1;TB8=1,
 207   4                              //SBUF=ADD;while(!TI);TI=0;
 208   4                              //senden=0;TB8=0;
 209   4                              SM2=0;pointer++;
 210   4                              }
 211   3      //              else
 212   3      //                      {if(SBUF==0){SM2=0;pointer++;}
 213   3      //                      }
 214   3                      }
 215   2              else
 216   2                      {
 217   3                      if(pointer<12)
 218   3                      {send_buf[pointer]=SBUF;pointer++;}
 219   3                      else
 220   3                      {send_buf[pointer]=SBUF;SM2=1;frameok=1;pointer=0;} 
 221   3                      }
 222   2       }//end if
 223   1      }//end sub
 224          void pwmout(void)
 225          {
 226   1      red0=(bit)(dis_red0&rl);
 227   1      red1=(bit)(dis_red1&rl);
 228   1      red2=(bit)(dis_red2&rl);
 229   1      red3=(bit)(dis_red3&rl);
 230   1      grn0=(bit)(dis_grn0&rl);
 231   1      grn1=(bit)(dis_grn1&rl);
 232   1      grn2=(bit)(dis_grn2&rl);
 233   1      grn3=(bit)(dis_grn3&rl);
 234   1      blu0=(bit)(dis_blu0&rl);
 235   1      blu1=(bit)(dis_blu1&rl);
 236   1      blu2=(bit)(dis_blu2&rl);
 237   1      blu3=(bit)(dis_blu3&rl);
 238   1      }
 239          //*******************************************
 240          void timer1() interrupt  1  
 241          { 
C51 COMPILER V7.06   HLDV13                                                                10/11/2004 11:53:53 PAGE 5   

 242   1              pwm++;
 243   1              switch(pwm)
 244   1                      {
 245   2                      case    1:
 246   2                              pwmout();
 247   2                              rl=0x02;
 248   2                      break;
 249   2                      case    2:
 250   2                              pwmout();
 251   2                              rl=0x02;
 252   2                      break;
 253   2                      case    4:
 254   2                              pwmout();
 255   2                              rl=0x08;
 256   2                      break;
 257   2                      case    8:
 258   2                              pwmout();
 259   2                              rl=0x01;
 260   2                      break;
 261   2                      case    15:
 262   2                              pwm=1;
 263   2                      break;
 264   2                      default:break;
 265   2                      }
 266   1              TL0=V_TL0;
 267   1              TH0=V_TH0;
 268   1      }//end sub


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    607    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     39       8
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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