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

📄 main.lst

📁 sti51 单片机中定时器使用程序模板程序
💻 LST
字号:
C51 COMPILER V7.20   MAIN                                                                  04/13/2006 13:39:22 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil_C51\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2           *      Copyright (C) 2006, 华中科技大学电气与电子科技创新中心
   3           *      All Rights Reserved.
   4           *      
   5           *      文件名:         main.c
   6           *      文件描述:       计时器测试主程序文件
   7           *                      
   8           *      当前版本:       1.0
   9           *      作者:           SangWei(swkyer@gmail.com)
  10           *      完成日期:       2005年12月12日
  11           *      
  12          */
  13          #include <reg51.h>
  14          #include <INTRINS.H>
  15          #include "..\seg7\seg7.h"
  16          
  17          
  18          /* 定时时间高低字节数据, 12MHZ时定时时间5mS */
  19          #define TIMERH          0xEC
  20          #define TIMERL          0x78
  21          
  22          unsigned char cs;
  23          unsigned char dispram[4];
  24          bit flag;
  25          unsigned char count;
  26          unsigned int time;
  27          
  28          void InitTimer(void);
  29          
  30          
  31          void main(void)
  32          {
  33   1              /* 初始化IO口 */
  34   1              P0 = 0xFF;
  35   1              P2 = 0xFF;
  36   1      
  37   1              /* 初始化变量 */
  38   1              flag = 0;
  39   1              count = 0;
  40   1              time = 0;
  41   1      
  42   1              /* 初始化定时器 */
  43   1              InitTimer();
  44   1      
  45   1              /* 启动定时器1 */
  46   1              TR1 = 1;
  47   1              
  48   1              while(1)
  49   1              {
  50   2                      /* 如果置位,说明1秒已过 */
  51   2                      if(flag == 1)
  52   2                      {
  53   3                              /* 清标志位 */
  54   3                              flag = 0;
  55   3                              /* 计数值最大为9999 */
C51 COMPILER V7.20   MAIN                                                                  04/13/2006 13:39:22 PAGE 2   

  56   3                              if(time == 9999)
  57   3                                      time = 0;
  58   3                              else
  59   3                                      time++;
  60   3                              /* 改写显示缓冲区 */
  61   3                              dispram[0] = time/1000;
  62   3                              dispram[1] = (time%1000)/100;
  63   3                              dispram[2] = (time%100)/10;
  64   3                              dispram[3] = time%10;
  65   3                      }
  66   2              }
  67   1      }
  68          
  69          /**************************************
  70          说明:   定时器初始化
  71                          定时时间10mS
  72          **************************************/
  73          void InitTimer(void)
  74          {
  75   1              /* 变量初始化 */
  76   1              cs = 0;
  77   1              dispram[0] = dispram[1] = dispram[2] = dispram[3] = 0;
  78   1              /* 初始化定时器,定时时间10mS,允许定时器中断 */
  79   1              TMOD = 0x90;
  80   1              TH1 = TIMERH;
  81   1              TL1 = TIMERL;
  82   1              /* 开定时器中断 */
  83   1              EA = 1;
  84   1              ET1 = 1;
  85   1      }
  86          
  87          /**************************************
  88          说明:   定时器中断处理函数
  89          **************************************/
  90          void Timer1ISR(void) interrupt 3 using 2
  91          {
  92   1              /* 定时器重装 */
  93   1              TH1 = TIMERH;
  94   1              TL1 = TIMERL;
  95   1              /* 清中断标志 */
  96   1              TF1 = 0;
  97   1              /* 循环显示 */
  98   1              if(cs >= 3)
  99   1                      cs = 0;
 100   1              else
 101   1                      cs++;
 102   1              WriteSegData(dispram[cs]);
 103   1              WriteCsData(1<<cs);
 104   1              /* 计数器,200次为1秒,置标志位 */
 105   1              if(count == 200)
 106   1              {
 107   2                      flag = 1;
 108   2                      count = 0;
 109   2              }
 110   1              else
 111   1                      count++;
 112   1      }
 113          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    242    ----
C51 COMPILER V7.20   MAIN                                                                  04/13/2006 13:39:22 PAGE 3   

   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8    ----
   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 + -