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

📄 t2t3t4.lst

📁 基于C8051F040的液晶
💻 LST
字号:
C51 COMPILER V7.50   T2T3T4                                                                08/20/2007 19:44:29 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE T2T3T4
OBJECT MODULE PLACED IN t2t3t4.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE t2t3t4.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //////////T法测频调试程序/////////////
   2          /////////t3 频率方波输出//////////////
   3          /////////t4 脉冲计数/////////////////////
   4          /////////t2 计时////////////////////////////
   5          /////////t2t3t4.c//////////////////////////
   6          //#include <C8051F040.h>
   7          #include <lcd.h>
*** WARNING C235 IN LINE 48 OF LCD.H: parameter 1: different types
*** WARNING C236 IN LINE 216 OF LCD.H: '_showintmes': different length of parameter lists
   8          #define T3RUN temppage=SFRPAGE;SFRPAGE=0x01;TR3=1;SFRPAGE=temppage
   9          #define T4RUN temppage=SFRPAGE;SFRPAGE=0x02;TR4=1;SFRPAGE=temppage
  10          #define T4STOP temppage=SFRPAGE;SFRPAGE=0x02;TR4=0;SFRPAGE=temppage
  11          #define T3STOP temppage=SFRPAGE;SFRPAGE=0x01;TR3=0;SFRPAGE=temppage
  12          //typedef unsigned int uint;
  13          //typedef unsigned char uchar;
  14          //typedef unsigned long ulong;
  15          sfr16 RCAP2=0xca;
  16          sfr16 RCAP3=0xca;
  17          sfr16 RCAP4=0xca;
  18          sfr16 TMR4=0xcc;
  19          sfr16 TMR3=0xcc;
  20          sfr16 TMR2=0xcc;
  21          uchar temppage;
  22          uchar tf2num;
  23          bit isnewdata;
  24          ulong freTime;
  25          long t3frequency;
  26          void t4ISR();
  27          void t2ISR();
  28          /*void delay1ms(uint time){//延迟1ms
  29                  uint i;
  30                  uint j;
  31                  for (i=0;i<time;i++){
  32                          for(j=0;j<300;j++);
  33                  }
  34          }*/     
  35          void t3_fre_set(uint val){//T3频率设置,计算公式为:(T3时钟频率/(2*val))
  36   1              temppage=SFRPAGE;
  37   1              SFRPAGE=0x01;
  38   1              RCAP3=~val+1;
  39   1              TMR3=RCAP3;
  40   1              SFRPAGE=temppage;
  41   1      }
  42          void t3_ini(){//t3为频率输出模式
  43   1              temppage=SFRPAGE;
  44   1              SFRPAGE=0x01;
  45   1              TMR3CN=0x00;//TR3=0,T3尚未启动
  46   1              TMR3CF=0x0e;//T3采用系统时钟,TOG3=1,T3不计数时输出为1,DCEN=0
  47   1              SFRPAGE=temppage;
  48   1      }
  49          void t4_ini(){//T4为计数模式
  50   1              temppage=SFRPAGE;
  51   1              SFRPAGE=0x02;
  52   1              TMR4CF=0X00;//计数模式下,对T4M1-T4M0设置无效,DCEN=0,向下计数禁止
  53   1              TMR4CN=0X02;//CT4=1,T4为计数器模式
C51 COMPILER V7.50   T2T3T4                                                                08/20/2007 19:44:29 PAGE 2   

  54   1              SFRPAGE=0X00;
  55   1              EIE2|=0X04;//T4中断使能
  56   1              SFRPAGE=temppage;
  57   1      }
  58          void t2_ini(){//t2为定时器模式,采用系统时钟12分频
  59   1              temppage=SFRPAGE;
  60   1              SFRPAGE=0x00;
  61   1              TMR2CN=0X00;//定时器模式,自动重载
  62   1              TMR2CF=0x00;//DCEN=0,向下计数禁止,采用系统时钟
  63   1              RCAP2=0x0000;
  64   1              TMR2=0x0000;
  65   1              SFRPAGE=0X00;
  66   1              IE|=0X20;//T2中断使能
  67   1              SFRPAGE=temppage;
  68   1      }
  69          void t2_start(){
  70   1              temppage=SFRPAGE;
  71   1              SFRPAGE=0x00;
  72   1              TMR2=0x0000;
  73   1              TF2=0;
  74   1              TR2=1;
  75   1              SFRPAGE=temppage;
  76   1      }
  77          void t4_set(uint val){//val为计数脉冲数
  78   1              temppage=SFRPAGE;
  79   1              SFRPAGE=0x02;
  80   1              RCAP4=~val+1;
  81   1              TMR4=RCAP4;
  82   1              SFRPAGE=temppage;
  83   1      }
  84          void startCount(uint val){//开始计时
  85   1              t4_set(val);
  86   1              T4RUN;
  87   1              tf2num=0;
  88   1              t2_start();
  89   1              isnewdata=0;
  90   1      }
  91          void config(){
  92   1      //看门狗禁止
  93   1              WDTCN = 0x07;   
  94   1          WDTCN = 0xDE;   
  95   1              WDTCN = 0xAD;
  96   1              SFRPAGE = 0x0F;
  97   1      //交叉开关配置,T3=P0.0,T4=P0.1,测试时将T3与T4相连
  98   1              XBR0 = 0x00;    
  99   1              XBR1 = 0x00;    
 100   1              XBR2 = 0x48;
 101   1              XBR3 = 0x01;   
 102   1      //管脚输出配置,P0口为开漏输出,其中P0.0接上拉电阻,P0为数字输入口
 103   1              SFRPAGE = 0x0F;
 104   1              P0MDOUT = 0x00; 
 105   1              P1MDIN = 0xFF;
 106   1          P4MDOUT = 0x00; //P4口为开漏,也可推挽
 107   1          P5MDOUT = 0x07;   
 108   1      //晶振配置,采用内部晶振8分频
 109   1              SFRPAGE = 0x0F;
 110   1              CLKSEL = 0x00;  
 111   1              OSCXCN = 0x00;  
 112   1              OSCICN = 0x84;  
 113   1      }
 114          void main(void){
 115   1              uint frenum=100;
C51 COMPILER V7.50   T2T3T4                                                                08/20/2007 19:44:29 PAGE 3   

 116   1              ulong fre_factor;
 117   1              uchar k=0;
 118   1              uchar test ;
 119   1              //uchar i=0;
 120   1              //uchar line[7] = "no data";
 121   1              config();
 122   1              //dispini();
 123   1              t2_ini();
 124   1              t3_ini();
 125   1              t4_ini();
 126   1              EA=1;
 127   1              fre_factor=255208L*(ulong)frenum;
 128   1              t3_fre_set(15321);
 129   1              T3RUN;
 130   1              startCount(frenum);
 131   1              isnewdata=0;
 132   1              while(1){
 133   2                      //showint(line,0);
 134   2                      temppage = SFRPAGE;
 135   2      
 136   2                      SFRPAGE = 1;
 137   2                      test = TMR3CF;
 138   2                      SFRPAGE = temppage;
 139   2      
 140   2                      if(isnewdata){
 141   3                              //i++;
 142   3                              //if(i>5){
 143   3                              //if(k>=5){
 144   3                              //      k=0;//在此设断点观察数据
 145   3                              //      k=0;
 146   3                              //}
 147   3                              t3frequency=fre_factor/freTime;
 148   3                              //showint(t3frequency,0);
 149   3                              ///delay1ms(100);
 150   3                              //i = 0;
 151   3                              //}
 152   3                              
 153   3                              startCount(frenum);
 154   3                              }
 155   2              }
 156   1      }
 157          void t4ISR() interrupt 16 {//frenum个频率计满,产生T4中断
 158   1              temppage=SFRPAGE;
 159   1              SFRPAGE=0X00;
 160   1              TR2=0;//将T2停止,并计算frenum个脉冲所需要的时间,从而可以计算频率
 161   1              freTime=TMR2;
 162   1              SFRPAGE=0X02;
 163   1              TR4=0;
 164   1              TF4=0;
 165   1              isnewdata=1;
 166   1              freTime+=65536L*tf2num;//需要加上T2的溢出时间
 167   1              //注意若频率不是很高,frenum不宜过大,否则会使freTime计算溢出
 168   1              //若精度有要求,可采用浮点运算
 169   1              SFRPAGE=temppage;
 170   1      }
 171          void t2ISR() interrupt 5{//T2定时溢出处理
 172   1              temppage=SFRPAGE;
 173   1              SFRPAGE=0X00;
 174   1              TF2=0;
 175   1              tf2num++;
 176   1              SFRPAGE=temppage;
 177   1      }
C51 COMPILER V7.50   T2T3T4                                                                08/20/2007 19:44:29 PAGE 4   

 178          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3131    ----
   CONSTANT SIZE    =     63    ----
   XDATA SIZE       =     32       4
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     10      47
   IDATA SIZE       =   ----      11
   BIT SIZE         =      1       6
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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