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

📄 main.lst

📁 此程序是基于c8051f020平台实现的是等精度频率计的测量控制部分
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  03/01/2009 17:02:37 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\单片机\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <c8051f020.h>
   2          #include "hao.h"
   3          #define SYSCLK   22118400
   4          sfr16 RCAP2    = 0xca; 
   5          #define ulong  unsigned long int                // Timer2 capture/reload
   6          
   7          extern ulong std_num,test_num;
   8          uchar f0,f1,f2,f3,f4,f5,f6,f7,f8,f9;
   9          uchar t0,t1,t2,t3,t4,t5,t6,t7,t8,t9;
  10          uchar pulse0, pulse1, pulse2, pulse3, 
  11                    pulse4, pulse5, pulse6, pulse7, pulse8, pulse9;
  12          
  13          uchar key_num;
  14          
  15          
  16          sbit sel0=P2^0;
  17          sbit sel1=P2^1;
  18          sbit sel2=P2^2;
  19          
  20          void SysInit()
  21          {
  22   1              uint i;
  23   1              OSCXCN=0x67;
  24   1              for (i=0;i<256;i++);
  25   1              while(OSCXCN&0x80==0);
  26   1                      OSCICN=0x88;
  27   1         EA=0;
  28   1         WDTCN=0xDE;
  29   1         WDTCN=0xAD;
  30   1         EA=1; 
  31   1         XBR0=0x00; 
  32   1         XBR1=0x00;
  33   1         XBR2=0x40;
  34   1         P0MDOUT=0x00;
  35   1         P0=0xff;
  36   1         P2MDOUT=0x3f;
  37   1         P74OUT=0xff;
  38   1      
  39   1      }
  40          
  41          void T2_initial(uint counts ) 
  42          {
  43   1          CKCON &=0Xdf;               // choose fosc/12
  44   1          RCAP2=-(counts);                          //set the reload value
  45   1          IE &=0Xdf;                  // unenable the T2 interrrupt 
  46   1          IP &=0Xdf;
  47   1          T2CON &=0X7b;               // clear the overflow flag and stop T2
  48   1      }
  49          
  50          
  51          void main()
  52          {
  53   1              ulong pulse,f,t; 
  54   1              SysInit();
  55   1              T2_initial(SYSCLK /12/1000) ;
C51 COMPILER V8.02   MAIN                                                                  03/01/2009 17:02:37 PAGE 2   

  56   1              lcd_init();
  57   1      
  58   1              while(1)
  59   1              {
  60   2                      
  61   2                      display_wait();
  62   2                      key_num=key_scanf();
  63   2              
  64   2      
  65   2                      if(key_num==1)
  66   2                              {
  67   3                               while(1)
  68   3                               {
  69   4                               key_num=key_scanf();
  70   4                               if(key_num==2)
  71   4                               {
  72   5                                break;
  73   5                               } 
  74   4                               test_fre();
  75   4                               read_std_num();
  76   4                               read_test_num();
  77   4                               f=test_num*5000000/(std_num/1000);//50M晶振,扩大100倍
  78   4                                
  79   4                               f9=f%10000000000/1000000000;
  80   4                               f8=f%1000000000/100000000;
  81   4                               f7=f%100000000/10000000;
  82   4                               f6=f%10000000/1000000;
  83   4                               f5=f%1000000/100000;
  84   4                               f4=f%100000/10000;
  85   4                               f3=f%10000/1000;
  86   4                               f2=f%1000/100;
  87   4                               f1=f%100/10;
  88   4                               f0=f%10;
  89   4                               f9=9;f8=8;f7=7;f6=6;f5=5;
  90   4      
  91   4                               display_f();
  92   4      
  93   4                              
  94   4                               t=100000000/f;
  95   4                                                       
  96   4                               t9=t%10000000000/1000000000;
  97   4                               t8=t%1000000000/100000000;
  98   4                               t7=t%100000000/10000000;
  99   4                               t6=t%10000000/1000000;
 100   4                               t5=t%1000000/100000;
 101   4                               t4=t%100000/10000;
 102   4                               t3=t%10000/1000;
 103   4                               t2=t%1000/100;
 104   4                               t1=t%100/10;
 105   4                               t0=t%10;
 106   4                               display_t();
 107   4                               }
 108   3      
 109   3                              }
 110   2                              
 111   2                              if(key_num==2)
 112   2                              {
 113   3                                 while(1)
 114   3                                      {
 115   4                                      key_num=key_scanf();
 116   4                                      if(key_num==1)
 117   4                                      {
C51 COMPILER V8.02   MAIN                                                                  03/01/2009 17:02:37 PAGE 3   

 118   5                                              break;
 119   5                                      }
 120   4                                      test_pulse();
 121   4                                      read_std_num();
 122   4                                      pulse=2*std_num;
 123   4                                      pulse9=pulse%10000000000/1000000000;
 124   4                                      pulse8=pulse%1000000000/100000000;
 125   4                                      pulse7=pulse%100000000/10000000;
 126   4                                      pulse6=pulse%10000000/1000000;
 127   4                                      pulse5=pulse%1000000/100000;
 128   4                                      pulse4=pulse%100000/10000;
 129   4                                      pulse3=pulse%10000/1000;
 130   4                                      pulse2=pulse%1000/100;
 131   4                                      pulse1=pulse%100/10;
 132   4                                      pulse0=pulse%10;
 133   4                                      display_pulse();
 134   4                                      } 
 135   3                              }       
 136   2              }
 137   1      
 138   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1392    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     31      12
   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 + -