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

📄 f-count.lst

📁 简易频率计
💻 LST
字号:
C51 COMPILER V8.02   F_COUNT                                                               08/21/2008 16:09:26 PAGE 1   


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

line level    source

   1          /*****************************************************
   2          *                         频率计                                                                  *
   3          *    采用中断方式,即来一个脉冲,计数一次。                   *
   4          *        动态扫描显示                                                                     *
   5          *                                                                                                         *
   6          *                                                                                                         *
   7          *                                       制作组成员:张君波,张意,郭远昊  *
   8          *                                       时间:08/8/17                                     *
   9          *                                                                                                         *
  10          ******************************************************/
  11          
  12           
  13          #include <reg51.h>
  14          #include<stdio.h>
  15          
  16          #define uchar unsigned char
  17          #define uint unsigned int
  18          
  19          Uart_Init();
  20          sbit P20=P2^0 ;
  21          sbit P21=P2^1;
  22          sbit P22=P2^2;
  23          sbit P23=P2^3;
  24          
  25          uint t=0,nIndex=0,count=0,k,k1,k2;
  26          char Table[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
  27          
  28          void delay_ms(uint ms) //延时毫秒级子程序
  29          {
  30   1         uint i,j;
  31   1         for(i=0;i<ms;i++)
  32   1         for(j=0;j<125;j++);
  33   1      }
  34          
  35          void Update_LED()
  36          {       
  37   1                      
  38   1              nIndex=k/1000;
  39   1              P1=Table[nIndex];
  40   1              P20=1;
  41   1              delay_ms(1);
  42   1              P20=0;
  43   1      
  44   1              
  45   1              
  46   1              nIndex=(k%1000)/100;
  47   1              P1=Table[nIndex];
  48   1              P21=1;
  49   1              delay_ms(1);
  50   1              P21=0;
  51   1      
  52   1              
  53   1              
  54   1              nIndex=(k%100)/10;
  55   1              P1=Table[nIndex];
C51 COMPILER V8.02   F_COUNT                                                               08/21/2008 16:09:26 PAGE 2   

  56   1              P22=1;
  57   1              delay_ms(1);
  58   1              P22=0;
  59   1      
  60   1              
  61   1              
  62   1              nIndex=k%10;
  63   1              P1=Table[nIndex];
  64   1              P23=1;
  65   1              delay_ms(1);
  66   1              P23=0;
  67   1              
  68   1      }
  69          
  70          
  71          
  72          void jishu()  
  73          {
  74   1         k1=TH1;
  75   1         k2=TL1;
  76   1         count=k1*256+k2;
  77   1       }
  78          void Timer0_Overflow() interrupt 1 using 0
  79          {       TH0=0x3C;       /* 计数初值写入TH0 */
  80   1              TL0=0xB0;/* 写入计数初值到TL0 */
  81   1          if(t==20)
  82   1           {
  83   2                      t=0;
  84   2                              jishu();
  85   2                              k=count;
  86   2                              EA=0;
  87   2                              ET0=0;
  88   2                              //Update_LED();
  89   2                              EA=1;
  90   2                              ET0=1;
  91   2                              TH1=0;
  92   2                              TL1=0;
  93   2                              TR0=1;
  94   2                              count=0;
  95   2                              
  96   2               }
  97   1              t++;
  98   1      
  99   1      }
 100          
 101          Uart_Init()
 102                  {SCON = 0x52;    /* 设置串行口控制寄存器SCON*/
 103   1               TMOD = 0x21;    /* 12M时钟时波特率为2400  */
 104   1               TCON = 0x69;    /* TCON */
 105   1               TH1 =  0xf3;    /* TH1 */
 106   1              }
 107          
 108          
 109             void main()
 110          {       
 111   1          Uart_Init();
 112   1              TMOD=0x51;
 113   1              TH0=0x3C;       /* 计数初值写入TH0 */
 114   1              TL0=0xB0;       /* 写入计数初值到TL0 */
 115   1              ET0=1;          /* 定时器0中断允许*/
 116   1              EA=1;           /* 全局中断允许 */
 117   1              TF0=0;          /* 定时器0中断标志位清0 */
C51 COMPILER V8.02   F_COUNT                                                               08/21/2008 16:09:26 PAGE 3   

 118   1              TR0=1;          /* 定时器0准备开始 */
 119   1              
 120   1              TH1=0;
 121   1              TL1=0;
 122   1              ET1=1;
 123   1              TR1=1; 
 124   1      //      k=123;
 125   1      //      Update_LED();
 126   1              while(1) 
 127   1              {
 128   2                      
 129   2                 Update_LED();
 130   2      
 131   2              }                 
 132   1              
 133   1      }


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