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

📄 startcount.lst

📁 基于8051F实现数字电压表功能.用液晶作为显示界面,精度很高.
💻 LST
字号:
C51 COMPILER V8.02   STARTCOUNT                                                            04/10/2007 15:24:17 PAGE 1   


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

line level    source

   1          /*===============================================================*/
   2          /*函数名称: startCount.c                                        */
   3          /*函数功能: 对frenum个脉冲进行计时                              */ 
   4          /*入口参数: val-----------------------------------所计的脉冲数目*/ 
   5          /*函数说明:  T4被配置在P0.0口上面,加外部脉冲时最好加个3 k的上拉电阻
   6                                                                           */                     
   7          /*修改记录: 无修改记录                                          */
   8          /*编写作者: t483-4-19chenyong                                   */
   9          /*编写日期: 2007-4-06                                           */
  10          /*===============================================================*/
  11          #include"common.h"
  12          extern ulong freTime;
  13          uchar tf2num;
  14          extern bit isnewdata;
  15          bit isfilter;
  16          /*================================================================*/
  17          /*开始计时                                                        */
  18          /*================================================================*/
  19          void startCount(uint val)  
  20          {
  21   1      //      T4_Setvalue(1);
  22   1      //      while(!isfilter);          //等待上升沿的到来    
  23   1              T4_Setvalue(val);              //设定要计数的脉冲个数
*** WARNING C206 IN LINE 23 OF STARTCOUNT.C: 'T4_Setvalue': missing function-prototype
*** ERROR C267 IN LINE 23 OF STARTCOUNT.C: 'T4_Setvalue': requires ANSI-style prototype
  24   1          T4CON|=0x04;
  25   1              tf2num=0;
  26   1              T2_Start();
  27   1              isnewdata=0;
  28   1      }
  29          /*================================================================*/
  30          /*计数器初始化说明:     计数器工作在自动重载模式下,采用系统时钟12分频
  31                              中断益处时需要软件对标志位清0,但是不能位寻址,只
  32                                                  能进行字操作.计数时,不需时钟设置.
  33                                                  C/T2(计数模式)-------------------------------1
  34                                                  CP/RL4(自动重载)-----------------------------0
  35                                                                            */
  36          /*================================================================*/
  37          void T4_Initial()              //T4为计数模式  
  38          {
  39   1              T4CON=0X02;                //CT4=1,T4为计数器模式,下降沿触发加1
  40   1              EIE2|=0X04;                //T4中断使能
  41   1      }
  42          /*================================================================*/
  43          /*定时器2初始化说明:定时器2工作在自动重载模式下,采用系统时钟12分频
  44                              中断益处时需要软件对标志位清0,
  45                                                  C/T2(定时器模式)-----------------------------0
  46                                                  CP/RL2(自动重载)-----------------------------0
  47                              T2M(系统时钟12分频)--------------------------0
  48                                                                                                */
  49          /*================================================================*/
  50          void T2_Initial()              //t2为定时器模式,采用系统时钟12分频 
  51          {
  52   1              T2CON=0X00;                //定时器模式,自动重载
  53   1              CKCON=0x00;                //采用系统时钟12分频
C51 COMPILER V8.02   STARTCOUNT                                                            04/10/2007 15:24:17 PAGE 2   

  54   1              RCAP2H=0x00;
  55   1              RCAP2L=0x00;
  56   1              TH2=0x00;
  57   1              TL2=0x00;                      //定时初始化
  58   1              IE|=0X20;                  //T2中断使能
  59   1      }
  60          /*================================================================*/
  61          /*定时器2开始工作                                                 */
  62          /*================================================================*/
  63          void T2_Start()
  64          {
  65   1              TH2=0x00;
  66   1              TL2=0x00;
  67   1              TF2=0;
  68   1              TR2=1;                         //启动定时器 
  69   1      }
  70          /*================================================================*/
  71          /*设置计数器要计的脉冲数                                          */
  72          /*================================================================*/
  73          void T4_Setvalue(uint val)         
  74          {     
  75   1              RCAP4H=(~val+1)/256;
  76   1              RCAP4L=(~val+1)%256;
  77   1              TH4=RCAP4H;
  78   1              TL4=RCAP4L;                    //装载初始值
  79   1      }
  80          /*================================================================*/
  81          /*中断服务函数                                                    */
  82          /*================================================================*/
  83          void T2_Service() interrupt 5
  84          {                              //T2定时溢出处理
  85   1              TF2=0;                             
  86   1              tf2num++;
  87   1      }
  88          void T4_Service() interrupt 16 
  89          {   
  90   1                                     //frenum个频率计满,产生T4中断
  91   1              TR2=0;
  92   1              freTime=256*TH2+TL2;       //计算所用时间
  93   1          T4CON=0x00;                            //关闭计数器
  94   1              isnewdata=1;
  95   1              isfilter=1;
  96   1              freTime+=65536L*tf2num;    //需要加上T2的溢出时间
  97   1              freTime=freTime*0.344140206;
  98   1              //0.3441402此数据为经验值,对50个数据处理的结果
  99   1      }
 100          /*=============================end=================================*/
 101          

C51 COMPILATION COMPLETE.  1 WARNING(S),  1 ERROR(S)

⌨️ 快捷键说明

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