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

📄 main1.lst

📁 单片机实现秒表功能
💻 LST
字号:
C51 COMPILER V7.06   MAIN1                                                                 01/31/2008 13:01:53 PAGE 1   


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

stmt level    source

   1          /************************************************************************************
   2          *  Copyright (c) 2008,重庆优易特电子
   3          *            All rights reserved.
   4          
   5          * 摘 要:    秒表:从上电开始显示工作秒数
   6          
   7          * 文件名称: main.c
   8          * CPU芯片:  STC89C51RC
   9          * 学习板型: Easy51-B 
  10          *  
  11          * 当前版本: 2.0
  12          * 作 者:        cache
  13          * 完成日期: 2008年1月23日
  14          *
  15          *************************************************************************************/
  16          
  17          #include "reg52.h"
  18          
  19          #define THCO   0xee
  20          #define TLCO   0x0
  21          
  22          unsigned char  code Duan[]={0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
  23          //共阴极数码管,0-9段码表
  24          unsigned char  Data_Buffer[4]={0,0,0,0};
  25          //四个数码管显示数值,数组变量定义
  26          
  27          unsigned int Sec=0;
  28          bit flag=0;//1S时间到标志
  29          
  30          sbit P10=P1^0;          //四个数码管的位码口定义
  31          sbit P11=P1^1;
  32          sbit P12=P1^2;
  33          sbit P13=P1^3;
  34          
  35          void main()
  36          {       
  37   1              TMOD=0x11;              //定时器0初始化
  38   1              TH0=THCO;
  39   1              TL0=TLCO;
  40   1              TR0=1;
  41   1              ET0=1;
  42   1              EA=1;
  43   1      
  44   1              while(1)  
  45   1              {
  46   2               if(flag==1)
  47   2               {
  48   3                      flag=0;
  49   3                      Data_Buffer[0]=Sec/1000;
  50   3                      Data_Buffer[1]=Sec%1000/100;            
  51   3                      Data_Buffer[2]=Sec%100/10;              
  52   3                      Data_Buffer[3]=Sec%10;
  53   3               }
  54   2              }
  55   1      }
C51 COMPILER V7.06   MAIN1                                                                 01/31/2008 13:01:53 PAGE 2   

  56          
  57          void timer0() interrupt 1
  58          {
  59   1       static unsigned char Bit=0;    //静态变量,退出程序后,值保留
  60   1       static unsigned char count=0;
  61   1      
  62   1       TH0=THCO;
  63   1       TL0=TLCO;
  64   1      
  65   1       count++;
  66   1       if(count>=200) //秒计时,定时器定时5ms,计200次为一秒
  67   1       {
  68   2         count=0;
  69   2         Sec++;
  70   2         flag=1;              //更新数码管显示
  71   2         if(Sec>9999)Sec=0;   //秒数最大显示为9999,之后从头开始计时
  72   2       }
  73   1      
  74   1       Bit++; 
  75   1       if(Bit>=4)Bit=0;
  76   1       P1|=0x0f;                                      //先关位码
  77   1       P0=Duan[Data_Buffer[Bit]];     //开段码
  78   1       switch(Bit)                            //送位码
  79   1       {
  80   2        case 0: P10=0;break;
  81   2        case 1: P11=0;break;
  82   2        case 2: P12=0;break;
  83   2        case 3: P13=0;break;
  84   2       }
  85   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    223    ----
   CONSTANT SIZE    =     10    ----
   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 + -