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

📄 cloc_mx4.lst

📁 自己做的时钟
💻 LST
📖 第 1 页 / 共 3 页
字号:
  15      =1     PATTERNS FOR TIME-TRIGGERED EMBEDDED SYSTEMS by Michael J. Pont 
  16      =1     [Pearson Education, 2001; ISBN: 0-201-33138-1].
  17      =1  
  18      =1     This code is copyright (c) 2001 by Michael J. Pont.
  19      =1   
  20      =1     See book for copyright details and other information.
  21      =1  
  22      =1  -*------------------------------------------------------------------*/
  23      =1  
  24      =1  // ------ Public function prototypes -------------------------------
  25      =1  
  26      =1  void CLOCK_LED_Time_Update(void);     
  27      =1  
  28      =1  /*------------------------------------------------------------------*-
  29      =1    ---- END OF FILE -------------------------------------------------
  30      =1  -*------------------------------------------------------------------*/
  30          
  31          // ------ Public variable declarations -----------------------------
  32          
  33          extern tByte LED_Mx4_Data_G[4];
  34          extern tByte code LED_Table_G[20];
  35          extern tByte state;
  36          
  37          // ------ Private variable definitions------------------------------
  38          
  39          // Time variables
C51 COMPILER V8.05a   CLOC_MX4                                                             06/07/2007 19:40:26 PAGE 9   

  40          tByte Hou_G, Min_G, Sec_G; 
  41          
  42          /*------------------------------------------------------------------*-
  43          
  44            CLOCK_LED_Time_Update()
  45          
  46            Updates the global time variables.
  47          
  48            *** Must be scheduled once per second ***
  49          
  50          -*------------------------------------------------------------------*/
  51          void CLOCK_LED_Time_Update(void)     
  52             {
  53   1                 if (state == 0)
  54   1                 {
  55   2                 bit Min_update = 0;
  56   2                 bit Hou_update = 0;
  57   2              
  58   2                 if (++Sec_G == 60)  
  59   2                    { 
  60   3                    Sec_G = 0;
  61   3                    Min_update = 1;
  62   3                    
  63   3                    if (++Min_G == 60)  
  64   3                       {
  65   4                       Min_G = 0;
  66   4                       Hou_update = 1;
  67   4                         
  68   4                       if (++Hou_G == 24)  
  69   4                          { 
  70   5                          Hou_G = 0;
  71   5                          }
  72   4                       }
  73   3                    }
  74   2              
  75   2                 if (Min_update)
  76   2                    {
  77   3                    // Need to update the minutes data
  78   3                    // (both digits)
  79   3                    LED_Mx4_Data_G[1] = LED_Table_G[Min_G / 10];
  80   3                    LED_Mx4_Data_G[0] = LED_Table_G[Min_G % 10];
  81   3                    }
  82   2              
  83   2                 // We don't display seconds in this version.
  84   2                 // We simply use the seconds data to turn on and off the decimal
  85   2                 // point between hours and minutes 
  86   2                 if ((Sec_G % 2) == 0)
  87   2                    {
  88   3                    LED_Mx4_Data_G[2] = LED_Table_G[Hou_G % 10];
  89   3                    }
  90   2                 else
  91   2                    {
  92   3                    LED_Mx4_Data_G[2] = LED_Table_G[(Hou_G % 10) + 10];
  93   3                    }
  94   2                 
  95   2                 if (Hou_update)
  96   2                    {
  97   3                    // Need to update the 'tens of hours' data
  98   3                    LED_Mx4_Data_G[3] = LED_Table_G[Hou_G / 10];
  99   3                    }
 100   2               }
 101   1         }
C51 COMPILER V8.05a   CLOC_MX4                                                             06/07/2007 19:40:26 PAGE 10  

 102          
 103          /*------------------------------------------------------------------*-
 104            ---- END OF FILE -------------------------------------------------
 105          -*------------------------------------------------------------------*/
C51 COMPILER V8.05a   CLOC_MX4                                                             06/07/2007 19:40:26 PAGE 11  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION CLOCK_LED_Time_Update (BEGIN)
                                           ; SOURCE LINE # 51
                                           ; SOURCE LINE # 52
                                           ; SOURCE LINE # 53
0000 E500        E     MOV     A,state
0002 7072              JNZ     ?C0009
                                           ; SOURCE LINE # 54
                                           ; SOURCE LINE # 55
0004 C200        R     CLR     Min_update
                                           ; SOURCE LINE # 56
0006 C200        R     CLR     Hou_update
                                           ; SOURCE LINE # 58
0008 0500        R     INC     Sec_G
000A E500        R     MOV     A,Sec_G
000C B43C1B            CJNE    A,#03CH,?C0002
                                           ; SOURCE LINE # 59
                                           ; SOURCE LINE # 60
000F E4                CLR     A
0010 F500        R     MOV     Sec_G,A
                                           ; SOURCE LINE # 61
0012 D200        R     SETB    Min_update
                                           ; SOURCE LINE # 63
0014 0500        R     INC     Min_G
0016 E500        R     MOV     A,Min_G
0018 B43C0F            CJNE    A,#03CH,?C0002
                                           ; SOURCE LINE # 64
                                           ; SOURCE LINE # 65
001B E4                CLR     A
001C F500        R     MOV     Min_G,A
                                           ; SOURCE LINE # 66
001E D200        R     SETB    Hou_update
                                           ; SOURCE LINE # 68
0020 0500        R     INC     Hou_G
0022 E500        R     MOV     A,Hou_G
0024 B41803            CJNE    A,#018H,?C0002
                                           ; SOURCE LINE # 69
                                           ; SOURCE LINE # 70
0027 E4                CLR     A
0028 F500        R     MOV     Hou_G,A
                                           ; SOURCE LINE # 71
                                           ; SOURCE LINE # 72
                                           ; SOURCE LINE # 73
002A         ?C0002:
                                           ; SOURCE LINE # 75
002A 300017      R     JNB     Min_update,?C0005
                                           ; SOURCE LINE # 76
                                           ; SOURCE LINE # 79
002D E500        R     MOV     A,Min_G
002F 75F00A            MOV     B,#0AH
0032 84                DIV     AB
0033 900000      E     MOV     DPTR,#LED_Table_G
0036 93                MOVC    A,@A+DPTR
0037 F500        E     MOV     LED_Mx4_Data_G+01H,A
                                           ; SOURCE LINE # 80
0039 E500        R     MOV     A,Min_G
003B 75F00A            MOV     B,#0AH
003E 84                DIV     AB
003F E5F0              MOV     A,B
0041 93                MOVC    A,@A+DPTR
C51 COMPILER V8.05a   CLOC_MX4                                                             06/07/2007 19:40:26 PAGE 12  

0042 F500        E     MOV     LED_Mx4_Data_G,A
                                           ; SOURCE LINE # 81
0044         ?C0005:
                                           ; SOURCE LINE # 86
0044 E500        R     MOV     A,Sec_G
0046 20E010            JB      ACC.0,?C0006
                                           ; SOURCE LINE # 87
                                           ; SOURCE LINE # 88
0049 E500        R     MOV     A,Hou_G
004B 75F00A            MOV     B,#0AH
004E 84                DIV     AB
004F E5F0              MOV     A,B
0051 900000      E     MOV     DPTR,#LED_Table_G
0054 93                MOVC    A,@A+DPTR
0055 F500        E     MOV     LED_Mx4_Data_G+02H,A
                                           ; SOURCE LINE # 89
0057 800E              SJMP    ?C0007
0059         ?C0006:
                                           ; SOURCE LINE # 91
                                           ; SOURCE LINE # 92
0059 E500        R     MOV     A,Hou_G
005B 75F00A            MOV     B,#0AH
005E 84                DIV     AB
005F E5F0              MOV     A,B
0061 900000      E     MOV     DPTR,#LED_Table_G+0AH
0064 93                MOVC    A,@A+DPTR
0065 F500        E     MOV     LED_Mx4_Data_G+02H,A
                                           ; SOURCE LINE # 93
0067         ?C0007:
                                           ; SOURCE LINE # 95
0067 30000C      R     JNB     Hou_update,?C0009
                                           ; SOURCE LINE # 96
                                           ; SOURCE LINE # 98
006A E500        R     MOV     A,Hou_G
006C 75F00A            MOV     B,#0AH
006F 84                DIV     AB
0070 900000      E     MOV     DPTR,#LED_Table_G
0073 93                MOVC    A,@A+DPTR
0074 F500        E     MOV     LED_Mx4_Data_G+03H,A
                                           ; SOURCE LINE # 99
                                           ; SOURCE LINE # 100
                                           ; SOURCE LINE # 101
0076         ?C0009:
0076 22                RET     
             ; FUNCTION CLOCK_LED_Time_Update (END)

C51 COMPILER V8.05a   CLOC_MX4                                                             06/07/2007 19:40:26 PAGE 13  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
tLong. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_LONG   -----  4
tByte. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_CHAR   -----  1
tWord. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
state. . . . . . . . . . . . . . . . .  EXTERN   DATA   U_CHAR   -----  1
LED_Mx4_Data_G . . . . . . . . . . . .  EXTERN   DATA   ARRAY    -----  4
Sec_G. . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0000H  1
LED_Table_G. . . . . . . . . . . . . .  EXTERN   CODE   ARRAY    -----  20
Min_G. . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0001H  1
Hou_G. . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0002H  1
CLOCK_LED_Time_Update. . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  Min_update . . . . . . . . . . . . .  AUTO     DATA   BIT      0000H  1
  Hou_update . . . . . . . . . . . . .  AUTO     DATA   BIT      0001H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    119    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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