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

📄 wave_1.lst

📁 3000TB51配套实验例程 1八段数码管显示实验 等
💻 LST
字号:
C51 COMPILER V8.02   WAVE_1                                                                08/15/2007 17:55:55 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE WAVE_1
OBJECT MODULE PLACED IN .\wave_1.obj
COMPILER INVOKED BY: E:\kei3\C51\BIN\C51.EXE ..\wave_5615_1\wave_1.c BROWSE DEBUG OBJECTEXTEND PRINT(.\wave_1.lst) OBJEC
                    -T(.\wave_1.obj)

line level    source

   1          #include"reg52.h"
   2          #include"stdio.h"
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          
   6          sbit SPI_CLK=P2^0;
   7          sbit SPI_DATA1=P2^2;
   8          sbit SPI_DATA2=P2^3;
   9          sbit CS_DA=P2^1;
  10          
  11          // define user keyboard begin
  12          sbit mode=P1^0;
  13          sbit inc=P1^1;
  14          sbit dec=P1^2;
  15          //sbit enter=P2^4;
  16          //sbit key1=P3^4;   
  17          //sbit key2=P2^3;
  18          
  19          bdata uchar oldk;
  20          //sbit old_enter=oldk^7;
  21           sbit old_dec=oldk^6;
  22            sbit old_inc=oldk^5;
  23             sbit old_mode=oldk^4;
  24              //sbit old_key1=oldk^3;
  25              //sbit old_key2=oldk^2;
  26               
  27            bdata uchar act_key;
  28          //sbit act_enter=act_key^7;
  29           sbit act_dec=act_key^6;
  30            sbit act_inc=act_key^5;
  31             sbit act_mode=act_key^4;
  32             //sbit act_key1=act_key^3;
  33               //sbit act_key2=act_key^2;
  34                          
  35           bdata uchar key;
  36          sbit ktmp=key^7;
  37           //sbit scankey=key^6;
  38            //sbit scanmd=key^5;
  39             sbit keyfast=key^4;
  40              //sbit act_save=key^3;
  41               //sbit old_save=key^2;
  42                //sbit modifyp=key^1;
  43                 //sbit key0=key^0;
  44                 
  45          uchar keycn;
  46          uint initial=100;   
  47                
  48          /*uchar keydelaycn=0x40;
  49           uchar temp;
  50           uint Itemp;
  51            uint  adc_in,dac_set;
  52            ulong  ad_val;
  53            ulong  da_val;
  54            uint  dat_wr,dat_rd; */
C51 COMPILER V8.02   WAVE_1                                                                08/15/2007 17:55:55 PAGE 2   

  55          // define user keyboard end
  56          
  57          void delay_1(uchar);
  58          void delay_2();
  59          void da(uint da1,da2,n);
  60          
  61          uint code sintab[]={512,525,537,550,562,575,587,599,612,624,636,
  62          648,660,672,684,696,708,719,730,742,753,764,775,785,796,806,816,
  63          826,836,846,855,864,873,882,891,899,907,915,922,930,937,944,950,
  64          957,963,968,974,979,984,989,993,997,1001,1004,1008,1011,1013,1015, 
  65          1017,1019,1021,1022,1022,1023,1023,1023,1022,1022,1021,1019,1017,
  66          1015,1013,1011,1008,1004,1001,997,993,989,984,979,974,968,963,957,
  67          950,944,937,930,922,915,907,899,891,882,873,864,855,846,836,826,
  68          816,806,796,785,775,764,753,742,730,719,708,696,684,672,660,648,
  69          636,624,612,599,587,575,562,550,537,525,512,499,487,474,462,449,
  70          437,425,412,400,388,376,364,352,340,328,316,305,294,282,271,260,
  71          249,239,228,218,208,198,188,178,169,160,151,142,133,125,117,109,
  72          102,94,87,80,74,67,61,56,50,45,40,35,31,27,23,20,16,13,11,9,7,5,
  73          3,2,2,1,1,1,2,2,3,5,7,9,11,13,16,20,23,27,31,35,40,45,50,56,61,67,
  74          74,80,87,94,102,109,117,125,133,142,151,160,169,178,188,198,208,218,
  75          228,239,249,260,271,282,294,305,316,328,340,352,364,376,388,400,412,
  76          425,437,449,462,474,487,499,510};
  77          
  78          void da(uint da1,da2)
  79          { 
*** WARNING C236 IN LINE 79 OF ..\WAVE_5615_1\WAVE_1.C: '_da': different length of parameter lists
  80   1          uchar i;
  81   1              da1<<=6;
  82   1              da2<<=6;
  83   1              CS_DA=0;   
  84   1              SPI_CLK=0;
  85   1      
  86   1        for (i=0;i<12;i++)
  87   1              {  
  88   2                  SPI_DATA1=(bit)(da1&0x8000); //用CY的左移也可(da<<=1;SPI_DATA=CY;)
  89   2                      SPI_DATA2=(bit)(da2&0x8000); 
  90   2                       delay_1(5);
  91   2                      SPI_CLK=1;
  92   2      
  93   2                      da1<<=1;
  94   2                      da2<<=1; 
  95   2                  delay_1(5);
  96   2                      SPI_CLK=0;
  97   2               }      
  98   1              
  99   1                      
 100   1                      CS_DA=1;
 101   1                      SPI_CLK=0;
 102   1                 
 103   1      }
 104          
 105          
 106          void delay_1(uchar i)
 107          {  
 108   1        while (i--);
 109   1       }
 110          
 111          void delay_2()          //去抖动,延时10ms子程序
 112          { uint x=10;
 113   1        uchar i;
 114   1        while((x--)!=0)
 115   1         {
C51 COMPILER V8.02   WAVE_1                                                                08/15/2007 17:55:55 PAGE 3   

 116   2           for(i=0;i<125;i++)
 117   2            {;}
 118   2          }
 119   1      }
 120          
 121              
 122          
 123          
 124          void keysan()
 125          {ktmp=mode;           //---scan mode key down
 126   1          if(!old_mode&ktmp)act_mode=0;
 127   1          if(old_mode&!ktmp)act_mode=1;
 128   1          old_mode=ktmp;
 129   1      
 130   1              ktmp=inc;             //---scan inc key down
 131   1          if(old_inc&!ktmp){act_inc=1;keycn=0;keyfast=0;}
 132   1              if(!old_inc&ktmp){act_inc=0;keyfast=0;}
 133   1              if(!old_inc&!ktmp)
 134   1               {++keycn;
 135   2             if(keycn==0x20)
 136   2                    {act_inc=1;
 137   3                              keyfast=1;keycn=0;}
 138   2                        }
 139   1           old_inc=ktmp;
 140   1      
 141   1                ktmp=dec;             //---scan dec key down
 142   1                if(old_dec&!ktmp){act_dec=1;keycn=0;keyfast=0;}
 143   1                if(!old_dec&ktmp){act_dec=0;keyfast=0;}
 144   1                if(!old_dec&!ktmp)
 145   1                 {++keycn;
 146   2               if(keycn==0x20)
 147   2                         {act_dec=1;
 148   3                              keyfast=1;keycn=0;
 149   3                              }
 150   2                  }
 151   1                      old_dec=ktmp;
 152   1      }
 153          
 154          void main()
 155          { uint i,j=0;
 156   1        P1=0xff;
 157   1        P2=0xff;
 158   1      
 159   1       TMOD=0x02;       //设置定时器T0工作方式2
 160   1       TH0=256-initial;
 161   1       TL0=256-initial; 
 162   1       TR0=1;
 163   1      
 164   1        while(1)
 165   1       { 
 166   2         for(i=0;i<256;i++,j++)
 167   2         { if(j>=255)
 168   3              j=0;
 169   3                      keysan();
 170   3              //      printf("act_mod= %d",act_mode);
 171   3              if(act_mode==1)
 172   3                { act_mode=0;
 173   4                          j=j+32;
 174   4                         }
 175   3                       else 
 176   3                          j=j;
 177   3                      if(act_inc==1)
C51 COMPILER V8.02   WAVE_1                                                                08/15/2007 17:55:55 PAGE 4   

 178   3                        {act_inc=0;
 179   4                         if(keyfast==0)
 180   4                            {
 181   5                                 if(initial>5)initial-=5;
 182   5                                 else
 183   5                                   initial=initial;
 184   5                                       }
 185   4                         else
 186   4                           {keyfast=1;
 187   5                               if(initial>80)initial-=80;
 188   5                               else 
 189   5                                 initial=initial;
 190   5                               }
 191   4                         
 192   4                         }
 193   3                       if(act_dec==1)
 194   3                        {act_dec=0;
 195   4                         if(keyfast==0)
 196   4                            {
 197   5                                 if(initial<=250)initial+=5;
 198   5                                 else
 199   5                                   initial=initial;
 200   5                                       }
 201   4                         else
 202   4                           {keyfast=1;
 203   5                               if(initial<=175)initial+=80;
 204   5                               else 
 205   5                                 initial=initial;
 206   5                               }
 207   4                         
 208   4                        } 
 209   3                       
 210   3           if(TF0==1)
 211   3            {TF0=0;
 212   4                  da(sintab[i],sintab[j]);
 213   4                        TR0=0;
 214   4                        TH0=256-initial;
 215   4                TL0=256-initial; 
 216   4                TR0=1;
 217   4        
 218   4             }
 219   3           else
 220   3            { i--;      
 221   4                      j--;} 
 222   3         }
 223   2          
 224   2        }
 225   1       
 226   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    576    ----
   CONSTANT SIZE    =    514    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6       9
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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