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

📄 hldv12.lst

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


C51 COMPILER V7.06, COMPILATION OF MODULE HLDV12
OBJECT MODULE PLACED IN HLDV12.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE CDROM_QL\C51\HLDV12.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND PRINT(.\HLDV12
                    -.lst) OBJECT(HLDV12.obj)

stmt level    source

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

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

 117   1      for(i=0;i<4;i++){*p=15;p++;};delay(speed);
 118   1      p=s+4;
 119   1      for(i=0;i<4;i++){*p=15;p++;};delay(speed);      //黄
 120   1      p=s;
 121   1      for(i=0;i<4;i++){*p=0;p++;};delay(speed);//绿
 122   1      p=s+8;
 123   1      for(i=0;i<4;i++){*p=15;p++;};delay(speed);//青
 124   1      p=s+4;
 125   1      for(i=0;i<4;i++){*p=0;p++;};delay(speed);//蓝
 126   1      p=s;
 127   1      for(i=0;i<4;i++){*p=15;p++;};delay(speed);//祡
 128   1      p=s+4;
 129   1      for(i=0;i<4;i++){*p=15;p++;};delay(speed);//白
 130   1      }
 131          //********************************
 132          // 七彩流动
 133          //***************************************
 134          void    qcld(uchar speed)
 135          {
 136   1      uint j,n;
 137   1      uchar code *ROMP;
 138   1      uchar data *p;
 139   1      //for(n=0;n<5;n++)
 140   1      ROMP=0x700;
 141   1              for(j=0;j<60;j++)
 142   1                      {
 143   2                      p=&dis_buf[0];
 144   2                      for(n=0;n<3;n++)
 145   2                              {*p=*(p+1);*(p+4)=*(p+5);*(p+8)=*(p+9);p++;}
 146   2                      *p=*ROMP;ROMP++;
 147   2                      *(p+4)=*ROMP;ROMP++;
 148   2                      *(p+8)=*ROMP;ROMP++;
 149   2                      delay(speed);
 150   2                      }
 151   1      //      }
 152   1      }
 153          //*************************
 154          //跑马
 155          //***************************************
 156          void    qcpm(uchar speed)
 157          {
 158   1      uchar n,m,i;
 159   1      uchar code *ROMP;
 160   1      uchar data *p;
 161   1      ROMP=0x600;
 162   1      for(i=0;i<64;i++)
 163   1              {
 164   2              p=&dis_buf[0];
 165   2              for(n=0;n<12;n++){*p=0;p++;}
 166   2              p=&dis_buf[0];
 167   2              *(p+m)=*ROMP;
 168   2              *(p+m+4)=*(ROMP+1);
 169   2              *(p+m+8)=*(ROMP+2);
 170   2              m++;ROMP++;
 171   2              if(m>3)m=0;
 172   2              delay(speed);
 173   2              }
 174   1      }
 175          //*****************************************
 176          //*****************************************
 177          //       延时
 178          //**************************************
C51 COMPILER V7.06   HLDV12                                                                10/11/2004 14:09:09 PAGE 4   

 179          void delay(uint tim)
 180          {
 181   1      uint i;
 182   1      while(tim!=0)
 183   1              {
 184   2              for(i=0;i<500;i++)
 185   2                      {
 186   3      //              pwmcoun();
 187   3                      if(frameok)
 188   3                              {receive();
 189   4                              mode=0x55;
 190   4                              frameok=0;
 191   4                              retval=1;
 192   4                              longjmp(env,retval);
 193   4                              }
 194   3                      }  
 195   2              tim--;
 196   2              }
 197   1      }
 198          //*********************************
 199          //   接收数据
 200          //*********************************
 201          void    receive(void)
 202          {
 203   1      uchar i;
 204   1      uchar data *s,*o;
 205   1      s=&dis_buf[0];
 206   1      o=&send_buf[1];
 207   1      for(i=0;i<12;i++)
 208   1              {
 209   2              *s=*o;
 210   2              s++;
 211   2              o++;
 212   2              }
 213   1      }
 214          //****************************************
 215          // 通讯子程序
 216          //**************************************
 217          void send(void) interrupt  4 
 218          {
 219   1      if(!TI && RI && !frameok)
 220   1       {RI=0;
 221   2              if(pointer==0)
 222   2                      {
 223   3                      if(SBUF==ADD||SBUF==0)
 224   3                              {//senden=1;TB8=1,
 225   4                              //SBUF=ADD;while(!TI);TI=0;
 226   4                              //senden=0;TB8=0;
 227   4                              SM2=0;pointer++;
 228   4                              }
 229   3      //              else
 230   3      //                      {if(SBUF==0){SM2=0;pointer++;}
 231   3      //                      }
 232   3                      }
 233   2              else
 234   2                      {
 235   3                      if(pointer<12)
 236   3                      {send_buf[pointer]=SBUF;pointer++;}
 237   3                      else
 238   3                      {send_buf[pointer]=SBUF;SM2=1;frameok=1;pointer=0;}
 239   3                      }
 240   2       }//end if
C51 COMPILER V7.06   HLDV12                                                                10/11/2004 14:09:09 PAGE 5   

 241   1      }//end sub
 242          //*******************************************
 243          void timer1() interrupt  1  
 244          { 
 245   1      uchar data *p;
 246   1      pwm++;
 247   1      p=&dis_buf[0];
 248   1      if(pwm>15)pwm=1;
 249   1      if(pwm<=*p)red0=1;else red0=0;p++;
 250   1      if(pwm<=*p)red1=1;else red1=0;p++;
 251   1      if(pwm<=*p)red2=1;else red2=0;p++;
 252   1      if(pwm<=*p)red3=1;else red3=0;p++;
 253   1      if(pwm<=*p)grn0=1;else grn0=0;p++;
 254   1      if(pwm<=*p)grn1=1;else grn1=0;p++;
 255   1      if(pwm<=*p)grn2=1;else grn2=0;p++;
 256   1      if(pwm<=*p)grn3=1;else grn3=0;p++;
 257   1      if(pwm<=*p)blu0=1;else blu0=0;p++;
 258   1      if(pwm<=*p)blu1=1;else blu1=0;p++;
 259   1      if(pwm<=*p)blu2=1;else blu2=0;p++;
 260   1      if(pwm<=*p)blu3=1;else blu3=0;p++;
 261   1      TL0=V_TL0;
 262   1      TH0=V_TH0;
 263   1      
 264   1      }//end sub


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    909    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     38      18
   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 + -