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

📄 timer.lst

📁 基于MST-G240128点阵液晶的 状态机机制 人机界面四级滚屏菜单 源代码 ,带时间片机制模拟操作系统
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.20   TIMER                                                                 01/31/2007 10:20:43 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE TIMER
OBJECT MODULE PLACED IN timer.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\c51.exe timer.c DB OE

line level    source

   1          /****************************************************************************
   2           **
   3           ** 文件名:  timer.c
   4           ** 功能:    C8051Fxxx定时器驱动和延时函数;
   5           ** 创建时间:2005.08.05
   6          
   7           ** 修改时间:2005.12.01
   8           ** 修改说明:
   9          
  10           ** 作者:    李立学
  11           ** 版权申明:可以拷贝,可以修改,但必须保留修改时间和作者信息
  12           ** 
  13           ****************************************************************************/
  14          
  15          
  16          #include "LZK.H"
  17          
  18          /***********************************************************************
  19          * 名称:DuS()
  20          * 功能:延时,10uS为1个单位.
  21          * 入口参数:ucTime,延时单位个数时间.    
  22          * 出口参数:无
  23          * 说明:    
  24          ***********************************************************************/
  25          void DuS(unsigned char ucTime)       // Unit: 1uS,24MHz System clock
  26          {
  27   1         unsigned char i;
  28   1         for(i=0;i<ucTime;i++);
  29   1         for(i=0;i<ucTime;i++);
  30   1      }
  31          
  32          /***********************************************************************
  33          * 名称:DmS()
  34          * 功能:延时,1mS为1个单位.
  35          * 入口参数:ucTime,延时单位个数时间.    
  36          * 出口参数:无
  37          * 说明:    
  38          ***********************************************************************/
  39          void DmS(unsigned char ucTime)       // Unit: 1mS
  40          {
  41   1         unsigned char i;
  42   1         for(i=0; i<ucTime; i++)
  43   1         {
  44   2            DuS(250);
  45   2                 DuS(250);
  46   2                 DuS(250);
  47   2                 DuS(250);
  48   2         } 
  49   1      }
  50          
  51          /***********************************************************************
  52          * 名称:D1S()
  53          * 功能:延时,1S为1个单位.
  54          * 入口参数:ucTime,延时单位个数时间.    
  55          * 出口参数:无
C51 COMPILER V7.20   TIMER                                                                 01/31/2007 10:20:43 PAGE 2   

  56          * 说明:    
  57          ***********************************************************************/
  58          void D1S(unsigned char ucTime)       // Unit: 1S
  59          {
  60   1         unsigned char i;
  61   1         for(i=0;i<ucTime;i++)
  62   1         {
  63   2            DmS(250);
  64   2            DmS(250);
  65   2            DmS(250);
  66   2            DmS(250);
  67   2         }
  68   1      }
  69          
  70          /***********************************************************************
  71          * 名称:T0T1_Init()
  72          * 功能:T0、T1初始化.
  73                  T0:功率因数的相差测量;T1:UART1的波特率发生器,8位自装载模式;
  74                                Mode 1: 16-bit CNT;    Mode 2: 8-bit CNT with Auto-Reload
  75          * 入口参数:无.    
  76          * 出口参数:无
  77          * 说明:    
  78          ***********************************************************************/
  79          void T0T1_Init(void)
  80          {
  81   1         SFRPAGE = TIMER01_PAGE;  // T0: PhaseDiff MSR; T1: UART1;
  82   1         TCON = 0x00;             // 0000 0000
  83   1      // TCON(00000000): Timer Control Register
  84   1      // TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
  85   1      // Bit7: TF1: Timer 1 Overflow Flag.
  86   1      // Bit6: TR1: Timer 1 Run Control.
  87   1      // Bit5: TF0: Timer 0 Overflow Flag.
  88   1      // Bit4: TR0: Timer 0 Run Control.
  89   1      // Bit3: IE1: External Interrupt 1 Flag.
  90   1      // Bit2: IT1: External Interrupt 1 Type Select.
  91   1      //       0/1: /INT1 is level triggered , active logic-low / edge triggered, falling-edge.
  92   1      // Bit1: IE0: External Interrupt 0 Flag.
  93   1      // Bit0: IT0: External Interrupt 0 Type Select.
  94   1      //       0/1: /INT0 is level triggered , active logic-low / edge triggered, falling-edge.
  95   1      
  96   1         TMOD = 0x29;   // 0010 1001: T1 MODE 2; T0 MODE 1; 
  97   1      // TMOD(00000000): Timer Mode Register
  98   1      // Bit7: GATE1: Timer 1 Gate Control.
  99   1      //       0:     Timer 1 enabled when TR1 = 1 irrespective of /INT0 logic level.
 100   1      //       1:     Timer 1 enabled only when TR1 = 1 AND /INT0 = logic 1.
 101   1      // Bit6: C/T1: Counter/Timer 1 Select.
 102   1      //       0:    Timer  : Timer 1 incremented by clock defined by T0M bit (CKCON.3).
 103   1      //       1:    Counter: Timer 1 incremented by high-to-low transitions on external input pin (T0).
 104   1      // Bits5-4: T1M1-T1M0: Timer 1 Mode Select.
 105   1      //          00 Mode 0: 13-bit counter/timer
 106   1      //                      01 Mode 1: 16-bit counter/timer
 107   1      //                      10 Mode 2: 8-bit counter/timer with auto-reload
 108   1      //                      11 Mode 3: Timer 1 inactive
 109   1      // Bit3: GATE0: Timer 0 Gate Control.
 110   1      //       0:     Timer 0 enabled when TR0 = 1 irrespective of /INT0 logic level.
 111   1      //       1:     Timer 0 enabled only when TR0 = 1 AND /INT0 = logic 1.
 112   1      // Bit2: C/T0: Counter/Timer Select.
 113   1      //       0:    Timer:   Timer 0 incremented by clock defined by T0M bit (CKCON.3).
 114   1      //       1:    Counter: Timer 0 incremented by high-to-low transitions on external input pin (T0).
 115   1      // Bits1-0: T0M1-T0M0: Timer 0 Mode Select. Same with T1M1-T1M0
 116   1      //          00 Mode 0: 13-bit counter/timer
 117   1      //                      01 Mode 1: 16-bit counter/timer
C51 COMPILER V7.20   TIMER                                                                 01/31/2007 10:20:43 PAGE 3   

 118   1      //                      10 Mode 2: 8-bit counter/timer with auto-reload
 119   1      //                      11 Mode 3: Timer 1 inactive
 120   1         CKCON = 0x00;  // 000 1 0 0 00: T1 Uses the SYSCLK; T0 USE SYSCLK/12; 
 121   1      // CKCON(00000000): Clock Control Register
 122   1      // Bits7-5: UNUSED. Read = 000b, Write = don’t care.
 123   1      // Bit4: T1M: Timer 1 Clock Select.
 124   1      //       1, use SYSCLK.
 125   1      // Bit3: T0M: Timer 0 Clock Select.
 126   1      //       1, use SYSCLK.
 127   1      // Bit2: UNUSED. Read = 0b, Write = don’t care.
 128   1      // Bits1-0: SCA1-SCA0: Timer 0/1 Prescale Bits
 129   1      //          00 System clock divided by 12
 130   1      //                      01 System clock divided by 4
 131   1      //                      10 System clock divided by 48
 132   1      //                      11 External clock divided by 8
 133   1         TH0 = TH0_INIT;       // TH0_INIT = 0x00;
 134   1         TL0 = TL0_INIT;    // TL0_INIT = 0x00; 
 135   1      
 136   1         TH1 = TH1_INIT;       // UART1: 57600;
 137   1         TL1 = TL1_INIT;    // UART1: 57600; 
 138   1      
 139   1         SFRPAGE = 0x00;
 140   1      }
 141          
 142          /***********************************************************************
 143          * 名称:T2_Init()
 144          * 功能:T2初始化.
 145                  125uS定时中断,高优先级.
 146          * 入口参数:无.    
 147          * 出口参数:无
 148          * 说明:    
 149          ***********************************************************************/
 150          void T2_Init(void)
 151          {
 152   1         SFRPAGE = TMR2_PAGE;
 153   1         TMR2CN = 0x00;  // 0000 0000 
 154   1      // TMR2CN(00000000): Timer n Control Registers
 155   1      // Bit7: TFn:  Timer n Overflow/Underflow Flag.
 156   1      // Bit6: EXFn: Timer 2, 3, or 4 External Flag.
 157   1      // Bit5-4: Reserved.
 158   1      // Bit3: EXENn: Timer n External Enable.
 159   1      // Bit2: TRn: Timer n Run Control.
 160   1      //       0/1: Timer Disabled / Enabled and running/counting.
 161   1      // Bit1: Tn/C: Timer Select/Counter.
 162   1      // Bit0: CP/RLn: Capture/Reload Select.
 163   1      //       0/1: Timer is in Auto-Reload Mode / Capture Mode.
 164   1         TMR2CF = 0x00; // 000 00 000: T2 uses the sysclk devided by 12;  

⌨️ 快捷键说明

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