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

📄 lesson3_c.lst

📁 基于AT89C51的数字时钟
💻 LST
字号:
C51 COMPILER V7.50   LESSON3_C                                                             07/01/2006 21:55:01 PAGE 1   


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

line level    source

   1          
   2          /************************************************/
   3          /*单位名称:华南理工大学电信学院*/
   4          /*模块:1位共阴数码管*/
   5          /*创建人:景永年   日期:2006年4月25日*/
   6          /*修改人:*/
   7          
   8          /*功能描述:6个LED数码管显示的数字时钟*/
   9          /*其他说明:*/
  10          /*版本号:*/
  11          /*************************************************/
  12          #include "reg52.h"
  13          #include "stdio.h"
  14          #define uchar unsigned char
  15          
  16          unsigned char volatile xdata g_sec_disp _at_ 0xFFFF;
  17          unsigned char volatile xdata g_min_disp _at_ 0xEFFF;
  18          unsigned char volatile xdata g_hr_disp  _at_ 0xDFFF;
  19          
  20          void time0_init(void);
  21          
  22          unsigned char uc_sec_cnt,uc_min_cnt,uc_hr_cnt,uc_ms_cnt;
  23          
  24          
  25          
  26          main()
  27          {
  28   1              
  29   1              
  30   1              time0_init();
  31   1              
  32   1              uc_sec_cnt = 0;
  33   1              uc_min_cnt = 0;
  34   1              uc_hr_cnt = 0;
  35   1              uc_ms_cnt = 0;
  36   1              
  37   1              SP = 0x60       ;//Initiate stack
  38   1              ET0 = 1;
  39   1              TR0 = 1;
  40   1              
  41   1              while(1)
  42   1              {
  43   2                      
  44   2              }
  45   1              
  46   1      }
  47          
  48          
  49          /*************************************************/
  50          /*time0_init*/
  51          /*************************************************/
  52          void time0_init(void)
  53          {
  54   1              TMOD = 0x01 ;//定时中断的初始化,定时器0工作在定时器模式
  55   1              IE = 0x80   ;//开总中断;由TR0启停,16bit(模式1)
C51 COMPILER V7.50   LESSON3_C                                                             07/01/2006 21:55:01 PAGE 2   

  56   1              TH0 =0x3C   ;//初值15536
  57   1              TL0 =0xB0   ;//100ms=0.1s
  58   1              
  59   1      }
  60          
  61          
  62          /*************************************************/
  63          /*time0_interrupt*/
  64          /*************************************************/
  65          void time0_interrupt(void) interrupt 1 using 3
  66          {
  67   1              TH0 =0x3C   ;//重新装入初值15536
  68   1              TL0 =0xB0   ;//100ms=0.1s
  69   1              
  70   1              uc_ms_cnt++;
  71   1              if(uc_ms_cnt==10)
  72   1              {
  73   2                      uc_ms_cnt = 0;          
  74   2                      uc_sec_cnt++;
  75   2                      if((uc_sec_cnt&0x0F)>9) /*变量uc_sec_cnt为16进制数,显示应该为10进制*/
  76   2                      {
  77   3                              uc_sec_cnt += 6;        /*(uc_sec_cnt&0x0F)按位与运算*/
  78   3                      }                                               /*若没有if语句,则只能是到9以后,继续数到F才进位*/              
  79   2                      g_sec_disp = uc_sec_cnt;
  80   2                      g_min_disp = uc_min_cnt;
  81   2                      g_hr_disp = uc_hr_cnt;
  82   2              
  83   2                      if((uc_sec_cnt)>=0x60)/*注意使用0x60*/
  84   2                      {
  85   3                              uc_sec_cnt = 0;
  86   3                              uc_min_cnt++;
  87   3                              if((uc_min_cnt&0x0F)>9)         /*变量uc_min_cnt为16进制数,显示应该为10进制*/
  88   3                              {
  89   4                                      uc_min_cnt += 6;                /*(uc_min_cnt&0x0F)按位与运算*/
  90   4                              }                                                       /*若没有if语句,则只能是到9以后,继续数到F才进位*/      
  91   3                              g_sec_disp = uc_sec_cnt;
  92   3                              g_min_disp = uc_min_cnt;
  93   3                              g_hr_disp = uc_hr_cnt;
  94   3      
  95   3                              if((uc_sec_cnt)>=0x60)/*注意使用0x60*/
  96   3                              {
  97   4                                      uc_min_cnt = 0;
  98   4                                      uc_hr_cnt++;
  99   4      
 100   4                                      if((uc_hr_cnt&0x0F)>9)          /*变量uc_hr_cnt为16进制数,显示应该为10进制*/
 101   4                                      {
 102   5                                              uc_hr_cnt += 6;                 /*(uc_hr_cnt&0x0F)按位与运算*/
 103   5                                      }                                                       /*若没有if语句,则只能是到9以后,继续数到F才进位*/
 104   4      
 105   4                                      g_sec_disp = uc_sec_cnt;
 106   4                                      g_min_disp = uc_min_cnt;
 107   4                                      g_hr_disp = uc_hr_cnt;
 108   4                                      
 109   4                                      if((uc_hr_cnt)>=0x24)/*注意使用0x24*/
 110   4                                      {
 111   5                                              uc_hr_cnt = 0;
 112   5                                      }
 113   4                              }
 114   3                      }
 115   2              }
 116   1      }
 117          
C51 COMPILER V7.50   LESSON3_C                                                             07/01/2006 21:55:01 PAGE 3   



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    203    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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