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

📄 频率计程序.lst

📁 基于80c51 0~999999HZ 频率计
💻 LST
字号:
C51 COMPILER V8.02   频率计程序                                                            10/30/2008 18:45:10 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 频率计程序
OBJECT MODULE PLACED IN 频率计程序.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 频率计程序.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //MCU:AT89S51
   2          //晶振:12M
   3          #include"AT89X51.H"
   4          unsigned char code numcode[]={0xc0,0xf9,0xa4,0xb0,0x99,
   5                                         0x92,0x82,0xf8,0x80,0x90,
   6                                                                     0xb7,0x8E
   7                                                                    };//数字0~9及"=""F"共阳数码管代码 
   8          unsigned char dispbuff[8]={0,0,0,0,0,0,10,11};
   9          unsigned char code bitcode[]={0xfe,0xfd,0xfb,0xf7,
  10                                        0xef,0xdf,0xbf,0x7f}; //数码管位选代码
  11          unsigned char temp[8];    //频率值暂存
  12          unsigned char disp_bit_count; 
  13          unsigned char T0_ovf_times;  //记录计数器C/T0溢出次数
  14          unsigned char T1_count;
  15          bit flag;    //读频率标志位,flag=1时,读和计算频率值。
  16          unsigned long f; //频率值
  17           
  18          void main(void)
  19          {
  20   1        unsigned char i;
  21   1        TMOD=0x15;//定时器T1工作在方式1(16位),T0工作在16位计数方式
  22   1        TH0=0;   //T0寄存器清零
  23   1        TL0=0;
  24   1        TH1=(65536-4000)/256; //T1装载4MS定时初值
  25   1        TL1=(65536-4000)%256;
  26   1        TR0=1;  //开计数器C0;
  27   1        TR1=1;  //开定时器T1;
  28   1        ET0=1;  //允许计数器C0溢出中断
  29   1        ET1=1;  //允许定时器T1溢出中断
  30   1        EA=1;  //开总中断
  31   1        
  32   1        while(1)
  33   1         {
  34   2           if(flag==1)
  35   2             {
  36   3               flag=0;
  37   3            //   f=T0_ovf_times*65536+TH0*256+TL0;  //读出频率值
  38   3               for(i=0;i<8;i++)
  39   3                 {
  40   4                   temp[i]=0;
  41   4                 }
  42   3               i=0;
  43   3               while(f/10)
  44   3                 {
  45   4                   temp[i]=f%10;
  46   4                   f=f/10;
  47   4                   i++;
  48   4                 }
  49   3               temp[i]=f;
  50   3               for(i=0;i<6;i++)
  51   3                 {
  52   4                   dispbuff[i]=temp[i];
  53   4                 }
  54   3               T1_count=0;
  55   3               T0_ovf_times=0;
C51 COMPILER V8.02   频率计程序                                                            10/30/2008 18:45:10 PAGE 2   

  56   3               TH0=0;
  57   3               TL0=0;
  58   3               TR0=1;  //重开计数器C0
  59   3             }
  60   2         }
  61   1      }
  62           
  63          void t0(void) interrupt 1 
  64          {
  65   1        T0_ovf_times++;
  66   1      }
  67          
  68          /*********T1定时4mS中断服务程序*********************/ 
  69          void t1(void) interrupt 3 
  70          {
  71   1        TH1=(65536-2500)/256;//重装定时器T1初值
  72   1        TL1=(65536-2500)%256;
  73   1        T1_count++;
  74   1        if(T1_count==250) //定时1S到,置flag=1,允许读C/T0值和T0_ovf_time
  75   1          {
  76   2            TR0=0;  //关闭计数器C0
  77   2            T1_count=0;
  78   2            flag=1; 
  79   2                f=T0_ovf_times*65536+TH0*256+TL0;  //读出频率值
  80   2          }
  81   1        P0=numcode[dispbuff[disp_bit_count]];
  82   1        P1=bitcode[disp_bit_count];
  83   1        disp_bit_count++;
  84   1        if(disp_bit_count==8)
  85   1          {
  86   2            disp_bit_count=0;
  87   2          }
  88   1      }


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