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

📄 timer2.lst

📁 基于Mini51板的数字示波器设计
💻 LST
字号:
C51 COMPILER V8.02   TIMER2                                                                01/31/2009 14:04:31 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE TIMER2
OBJECT MODULE PLACED IN timer2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE timer2.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "timer2.h"
   2          #include "Mini51b.h"
   3          #include "osc.h"
   4          
   5          //定时器2初始化
   6          void timer2_init(void)
   7          {
   8   1              TH2 = 0;
   9   1              TL2 = 0; 
  10   1              RCAP2H = 255-(CLOCK/12/TIME2_PER_SEC)/256;
  11   1              RCAP2L = 255-(CLOCK/12/TIME2_PER_SEC)%256; 
  12   1          ET2 = 1;    //允许中断
  13   1          TR2 = 1;    //启动T2 
  14   1      }
  15          
  16          
  17          //读取ADC结果函数
  18          //在22.1184M晶振下,采集一个数据约100uS
  19          unsigned char read_adc(void)
  20          {
  21   1              unsigned char i,temp;   
  22   1              temp = 0; 
  23   1              ADC_CS = 0;             //开启控制电路,使能DA和CK IO引脚;
  24   1              for(i=0;i<8;i++)        //采集10次 ,即10bit
  25   1              { 
  26   2              ADC_CK = 0;        
  27   2              temp <<= 1;
  28   2              if(ADC_DA) temp++;  
  29   2              ADC_CK = 1;
  30   2              }
  31   1          ADC_CK = 0;     
  32   1          ADC_CK = 1;
  33   1          ADC_CK = 0;        
  34   1          ADC_CK = 1;
  35   1              ADC_CS = 1;
  36   1              return(temp);
  37   1      }
  38          
  39          
  40          void timer2(void) interrupt 5
  41          //晶振22.1184M,最长定时35ms,最短定时6.4us(估计值)
  42          {
  43   1              static unsigned char i=0;
  44   1              unsigned char j;
  45   1              TF2=0;
  46   1              if(val_tdiv==0) {
  47   2      
  48   2                      if((da_finish==0)&&(run_flag==0)) {
  49   3                              for(i=0;i<DATA_SIZE;i++) {
  50   4                                      da_buffer[i]=read_adc();                                
  51   4                                      for(j=0;j<22;j++);
  52   4                                      _nop_();_nop_();_nop_();_nop_();
  53   4                              }                                               
  54   3                              da_finish=0xff;                 
  55   3                      }                                                       
C51 COMPILER V8.02   TIMER2                                                                01/31/2009 14:04:31 PAGE 2   

  56   2              }
  57   1              else {
  58   2                      if((da_finish==0)&&(run_flag==0)) {             
  59   3                              da_buffer[i]=read_adc();                        
  60   3                              if(++i == DATA_SIZE) {
  61   4                                      i=0;
  62   4                                      da_finish=0xff;
  63   4                              }
  64   3                      }
  65   2      
  66   2              }
  67   1      }


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