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

📄 liyi.lst

📁 该设计使用环境是proteus
💻 LST
字号:
C51 COMPILER V8.05a   LIYI                                                                 05/18/2009 18:04:18 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE LIYI
OBJECT MODULE PLACED IN liyi.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE liyi.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <REG2051.H>
   2          #include <stdio.h>
   3          #define uchar unsigned char
   4          
   5          sbit DIN=P1^0;
   6          sbit LOAD=P1^1;
   7          sbit CLK=P1^2;
   8          sbit sound=P3^7;
   9          
  10          sbit kaiguan=P1^7;
  11          //unsigned char code dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  12          
  13          
  14          //unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
  15          
  16          
  17          
  18          
  19          unsigned char disbuf[8]={0,0,0,0,0,0,10,10}; 
  20          unsigned char temp[8];   
  21          unsigned char dispcount;  
  22          unsigned char T0count;   
  23          unsigned char timecount;   
  24          bit flag;
  25           unsigned long chushizhi=1000;
  26          
  27          
  28          void send(uchar add,uchar dat);
  29          void s_seg(uchar X1,uchar X2,uchar X3, uchar X4,uchar X5,uchar X6,uchar X7, uchar X8);
  30          
  31          void initt0andt1(void);
  32          
  33          void  frequency_process(void );
  34          
  35          
  36          void main(void) 
  37          { 
  38   1      //      unsigned char i;
  39   1              sound=0;
  40   1              kaiguan=0;                                                                                                                                      
  41   1              initt0andt1();
  42   1      
  43   1              while(1)
  44   1              { 
  45   2           if(flag) 
  46   2             {                 
  47   3               flag=0;
  48   3                       frequency_process();
  49   3                       s_seg(disbuf[0],disbuf[1],disbuf[2],disbuf[3],disbuf[4],disbuf[5],disbuf[6],disbuf[7]);
  50   3             }
  51   2      
  52   2      
  53   2              }
  54   1      
  55   1      
C51 COMPILER V8.05a   LIYI                                                                 05/18/2009 18:04:18 PAGE 2   

  56   1      }
  57          
  58          void  frequency_process(void )
  59          {
  60   1                 uchar i;     
  61   1                //    unsigned long freadd;
  62   1      
  63   1                 
  64   1                  unsigned long my_result;
  65   1        
  66   1                        my_result=T0count*65536+TH0*256+TL0;  
  67   1                              my_result=chushizhi-my_result;
  68   1                              if(my_result<100) sound=1;      else sound=0;
  69   1                              if(my_result<80)  kaiguan=1;else kaiguan=0;
  70   1      
  71   1               for(i=0;i<8;i++)  
  72   1                 {   
  73   2                   temp[i]=0;  
  74   2                 }
  75   1               i=0;  
  76   1               while(my_result/10)  
  77   1                 {    
  78   2                   temp[i]=my_result%10;       
  79   2                   my_result=my_result/10;
  80   2                   i++;  
  81   2                 }                     
  82   1               temp[i]=my_result;      
  83   1               for(i=0;i<8;i++)  
  84   1                 {  
  85   2                   disbuf[i]=temp[7-i];
  86   2                                                                              
  87   2                 } 
  88   1               timecount=0;    
  89   1               T0count=0;     
  90   1               TH0=0;  
  91   1               TL0=0;  
  92   1               TR0=1;  
  93   1      }
  94          
  95          
  96          void initt0andt1(void)
  97          {
  98   1              TMOD=0x15;
  99   1              TH0=0; 
 100   1              TL0=0;  
 101   1              TH1=(65536-4000)/256; 
 102   1              TL1=(65536-4000)%256;    
 103   1              TR1=1;
 104   1              TR0=1; 
 105   1              ET0=1; 
 106   1              ET1=1; 
 107   1              EA=1; 
 108   1      }
 109          
 110          
 111          void t0(void) interrupt 1 using 0               //T0
 112          
 113          
 114          {
 115   1      
 116   1      
 117   1      T0count++;
C51 COMPILER V8.05a   LIYI                                                                 05/18/2009 18:04:18 PAGE 3   

 118   1      
 119   1      
 120   1      }
 121          
 122          
 123          void t1(void) interrupt 3 using 0        //T1      4ms中断一次
 124          
 125          
 126          {
 127   1      
 128   1      
 129   1      TH1=(65536-4000)/256;
 130   1      
 131   1      
 132   1      TL1=(65536-4000)%256;
 133   1      
 134   1      
 135   1      timecount++;
 136   1      
 137   1      
 138   1      if(timecount==250)
 139   1      
 140   1      
 141   1          {
 142   2      
 143   2      
 144   2            TR0=0;
 145   2      
 146   2      
 147   2            timecount=0;
 148   2      
 149   2      
 150   2            flag=1;
 151   2      
 152   2      
 153   2          }
 154   1      
 155   1      
 156   1      //P0=dispcode[dispbuf[dispcount]];
 157   1      
 158   1      
 159   1      //P2=dispbit[dispcount];
 160   1      
 161   1      
 162   1      //dispcount++;
 163   1      
 164   1      
 165   1      //if(dispcount==8)
 166   1      
 167   1      
 168   1         // {
 169   1      
 170   1      
 171   1          //  dispcount=0;
 172   1      
 173   1      
 174   1        //  }
 175   1      
 176   1      
 177   1      }
 178          
 179          
C51 COMPILER V8.05a   LIYI                                                                 05/18/2009 18:04:18 PAGE 4   

 180          
 181          
 182          
 183          
 184          
 185          
 186          
 187          void send(uchar add,uchar dat)
 188          {
 189   1              uchar ADS,i,j;
 190   1              CLK=0;
 191   1              LOAD=0;
 192   1              DIN=0;
 193   1              i=4;
 194   1              while(i<16)
 195   1              {
 196   2               if(i<8)
 197   2                      {
 198   3                              ADS=add;
 199   3                      }
 200   2                else
 201   2                      {
 202   3                              ADS=dat;
 203   3                      }
 204   2                for(j=8;j>=1;j--)
 205   2                      {
 206   3      
 207   3                              if((ADS&0x80)==0)
 208   3                              {       DIN=0 ;}
 209   3                              else 
 210   3                              {       DIN=1;}
 211   3                              ADS=ADS<<1;
 212   3                      
 213   3                      CLK=1;
 214   3                      CLK=0;  
 215   3                       }
 216   2                i=i+8;
 217   2         }
 218   1         LOAD=1;
 219   1      }
 220          
 221          //void s_seg(uchar X1,uchar X2,uchar X3,uchar X4,uchar X5,uchar X6,uchar X7, uchar X8)
 222          void s_seg(uchar X1,uchar X2,uchar X3, uchar X4,uchar X5,uchar X6,uchar X7, uchar X8)
 223          {
 224   1               send(0x0c,0x01);//正常状态
 225   1         send(0x0b,0x07);//设置扫描范围DIG0-7
 226   1               send(0x0a,0x05);//设置亮度11/32
 227   1         send(0x09,0xff);//采用译码方式
 228   1      
 229   1         send(0x01,X1);
 230   1         send(0x02,X2);
 231   1         send(0x03,X3);
 232   1         send(0x04,X4);
 233   1         send(0x05,X5);
 234   1         send(0x06,X6);
 235   1         send(0x07,X7);
 236   1         send(0x08,X8);       
 237   1      }
 238          
 239          
 240          
 241          
C51 COMPILER V8.05a   LIYI                                                                 05/18/2009 18:04:18 PAGE 5   

 242          
 243          
 244          
 245          
 246          
 247          
 248          
 249          
 250          
 251          
 252          
 253          
 254          
 255          
 256          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    518    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     23      13
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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