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

📄 time_module.lst

📁 单片机系统中基于8279的键盘扫描程序及显示程序。
💻 LST
字号:
C51 COMPILER V7.50   TIME_MODULE                                                           07/19/2006 16:48:40 PAGE 1   


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

line level    source

   1          /************************************************************************
   2           *   广州周立功单片机发展有限公司    http://www.zlgmcu.com              *
   3           ************************************************************************/
   4          /************************************************************************
   5           *                                                                      *
   6           *  系统定时、软件延时处理程序                                                                                  *
   7           *                                                                      *
   8           ************************************************************************/
   9          
  10          
  11          #include <REGX51.H>
  12          
  13          
  14          //数据类型定义
  15          #define   uchar  unsigned char                          
  16          #define   ulong  unsigned long
  17          #define   uint   unsigned int  
  18          
  19          //利用T0定时器以实现精确的延时
  20          #define   Crystal      11059200L                //定义晶体频率11.592MHZ
  21          #define   Base_250us    256-230                 //50us溢出时间基准
  22          uint      data         Tcounter;     //基准时间计数器
  23          bit       T0IR;                         //T0中断标志
  24          
  25          void  Delay_50us(uint _time);                   //延时函数,非中断方式,延时时间基准50us
  26          void  TimeOut_Start(uint _time250us);           //开始时间溢出,中断方式,时间基准50us
  27          void  TimeOut_Stop(void);                       //停止时间溢出定时
  28          
  29          /*-------------------------------------------------------------------------------------------
  30          定时器0中断函数 、用以实现定时功能            
  31           -------------------------------------------------------------------------------------------*/    
  32          void  T0_Val(void)  interrupt   1   using  2
  33          {
  34   1        Tcounter--;
  35   1        if(Tcounter == 0)
  36   1        {
  37   2          T0IR  = 1;                           //时间定时到,置位标志
  38   2          TR0   = 0;
  39   2        }
  40   1          
  41   1      } 
  42          
  43          
  44          /*-------------------------------------------------------------------------------------------
  45           函数原型:  void  Delay_50us(uint _time50us)                                
  46           参数说明:  _time50us延时时间基准单位为50us 的个数                                                        
  47           返回值:    无 
  48           说明:          用于系统时间定时                  
  49           -------------------------------------------------------------------------------------------*/    
  50          void  Delay_50us(uint _time250us)
  51          { uint  TempCount;
  52   1        TempCount  = _time250us;
  53   1        TMOD |= 0x02;                                 //T0,初值自动重装
  54   1        TH0  =  Base_250us;                           //设置定时初值
  55   1        TL0  =  Base_250us;
C51 COMPILER V7.50   TIME_MODULE                                                           07/19/2006 16:48:40 PAGE 2   

  56   1        ET0  =  0;                                    //禁止T0中断
  57   1        TR0  =  1;                                    //计时开始
  58   1        while( TempCount--)
  59   1        {
  60   2          while(!TF0);TF0  =  0;                      //等待
  61   2        } 
  62   1        TR0  =  0;         
  63   1      } 
  64          
  65          /*-------------------------------------------------------------------------------------------
  66           函数原型:  void  TimeOut_Start(uint _time)                                 
  67           参数说明:  _time 定时时间基准单位为50us 的个数                                                        
  68           返回值:    无 
  69           说明:          用于系统时间延时                  
  70           -------------------------------------------------------------------------------------------*/ 
  71          void  TimeOut_Start(uint _time)
  72          {
  73   1       Tcounter = _time;
  74   1       TMOD |= 0x02;                                  //T0,初值自动重装
  75   1       TH0  =  Base_250us;                            //设置定时初值
  76   1       TL0  =  Base_250us;
  77   1       T0IR =  0;                                     //清除中断T0标志 
  78   1       ET0  =  1;                                     //使能T0中断
  79   1       EA       =  1;
  80   1       TR0  =  1;                                     //计时开始
  81   1      }
  82          /*
  83          
  84          void  TimeOut_Stop(void)
  85          {
  86           Tcounter=0;
  87           ET0  =   0;
  88           TR0  =   0;
  89          }
  90          
  91          */
  92          


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