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

📄 elap_lcd.lst

📁 时间触发嵌入式系统设计模式:使用8051系列微控制器开发可靠应用
💻 LST
字号:
C51 COMPILER V6.10  ELAP_LCD                                                               04/18/2001 16:29:42 PAGE 1   


C51 COMPILER V6.10, COMPILATION OF MODULE ELAP_LCD
OBJECT MODULE PLACED IN .\ELAP_LCD.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE .\ELAP_LCD.C OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND SYMBOLS

stmt level    source

   1          /*------------------------------------------------------------------*-
   2          
   3             Elap_LCD.C (v1.00)
   4          
   5            ------------------------------------------------------------------
   6          
   7             Simple library function for keeping track of elapsed time 
   8             This version for LCD display.
   9          
  10          
  11             COPYRIGHT
  12             ---------
  13          
  14             This code is from the book:
  15          
  16             PATTERNS FOR TIME-TRIGGERED EMBEDDED SYSTEMS by Michael J. Pont 
  17             [Pearson Education, 2001; ISBN: 0-201-33138-1].
  18          
  19             This code is copyright (c) 2001 by Michael J. Pont.
  20           
  21             See book for copyright details and other information.
  22          
  23          -*------------------------------------------------------------------*/
  24          
  25          #include "Main.h"
  26          #include "Elap_LCD.h"
  27          #include "LCD_A.h"
  28          
  29          // ------ Public variable definitions ------------------------------
  30          
  31          tByte Hou_G = 0;
  32          tByte Min_G = 0;
  33          tByte Sec_G = 0;
  34          
  35          // ------ Public variable declarations -----------------------------
  36          
  37          extern char LCD_data_G[LCD_LINES][LCD_CHARACTERS+1];
  38          extern char code CHAR_MAP_G[10];
  39          
  40          extern tByte Hou_G, Min_G;
  41          
  42          
  43          /*------------------------------------------------------------------*-
  44          
  45            Elapsed_Time_LCD_Init()
  46          
  47            Init function for simple library displaying elapsed time on LCD
  48            character panel.
  49          
  50          -*------------------------------------------------------------------*/
  51          void Elapsed_Time_LCD_Init(void)
  52             {
  53   1         // Set up the initial data to be sent to the LCD
  54   1         // ASSUMES 20 CHARACTER DISPLAY
  55   1         char* pTime =  "Elapsed :-      ";
C51 COMPILER V6.10  ELAP_LCD                                                               04/18/2001 16:29:42 PAGE 2   

  56   1         tByte c;
  57   1         
  58   1         for (c = 0; c < LCD_CHARACTERS; c++)
  59   1            {
  60   2            LCD_data_G[0][c] = pTime[c];
  61   2            
  62   2            // For demo purposes only
  63   2            if (c % 2)
  64   2               {
  65   3               LCD_data_G[1][c] = LCD_UDC_DEGREES_C;
  66   3               }
  67   2            else
  68   2               {
  69   3               LCD_data_G[1][c] = LCD_UDC_POUNDS;
  70   3               }  
  71   2            }
  72   1      
  73   1         LCD_data_G[0][11] = CHAR_MAP_G[Hou_G / 10];
  74   1         LCD_data_G[0][12] = CHAR_MAP_G[Hou_G % 10];
  75   1         LCD_data_G[0][14] = CHAR_MAP_G[Min_G / 10];
  76   1         LCD_data_G[0][15] = CHAR_MAP_G[Min_G % 10];
  77   1         }
  78          
  79          
  80          /*------------------------------------------------------------------*-
  81          
  82            Elapsed_Time_LCD_Update()
  83          
  84            Function for displaying elapsed time on LCD character panel.
  85          
  86            *** Must be scheduled once per second ***
  87          
  88          -*------------------------------------------------------------------*/
  89          void Elapsed_Time_LCD_Update(void)     
  90             {
  91   1         bit Min_update = 0;
  92   1         bit Hou_update = 0;
  93   1      
  94   1         // Set (for example) to 2 to test - otherwise 60
  95   1         if (++Sec_G == 60)  
  96   1            { 
  97   2            Sec_G = 0;
  98   2            Min_update = 1;
  99   2            
 100   2            if (++Min_G == 60)  
 101   2               {
 102   3               Min_G = 0;
 103   3               Hou_update = 1;
 104   3                 
 105   3               if (++Hou_G == 24)  
 106   3                  { 
 107   4                  Hou_G = 0;
 108   4                  }
 109   3               }
 110   2            }
 111   1      
 112   1         if (Hou_update)
 113   1            {
 114   2            // Need to update the 'hours' data
 115   2            LCD_data_G[0][11] = CHAR_MAP_G[Hou_G / 10];
 116   2            LCD_data_G[0][12] = CHAR_MAP_G[Hou_G % 10];
 117   2            Hou_update = 0;
C51 COMPILER V6.10  ELAP_LCD                                                               04/18/2001 16:29:42 PAGE 3   

 118   2            }
 119   1      
 120   1         if (Min_update)
 121   1            {
 122   2            // Need to update the minutes data
 123   2            LCD_data_G[0][14] = CHAR_MAP_G[Min_G / 10];
 124   2            LCD_data_G[0][15] = CHAR_MAP_G[Min_G % 10];
 125   2            Min_update = 0;
 126   2            }
 127   1        
 128   1         // We don't display seconds in this version.
 129   1         // We simply use the seconds data to turn on and off the colon
 130   1         // (between hours and minutes) 
 131   1         if ((Sec_G % 2) == 0)
 132   1            {
 133   2            LCD_data_G[0][13] = ' ';
 134   2            }
 135   1         else
 136   1            {
 137   2            LCD_data_G[0][13] = ':';
 138   2            }
 139   1         }
 140          
 141          /*------------------------------------------------------------------*-
 142            ---- END OF FILE -------------------------------------------------
 143          -*------------------------------------------------------------------*/
C51 COMPILER V6.10  ELAP_LCD                                                               04/18/2001 16:29:42 PAGE 4   

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


AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
CHAR_MAP_G . . . . . . . . . . . . . .  EXTERN   CODE   ARRAY    -----  10
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
T2 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
tLong. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_LONG   -----  4
tByte. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_CHAR   -----  1
P0_0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0080H  1
P1_0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
P0_1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0081H  1
FL . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D1H  1
P2_0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A0H  1
P1_1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
P0_2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0082H  1
tWord. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
P3_0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
P2_1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A1H  1
P1_2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0092H  1
P0_3 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0083H  1
P3_1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
P2_2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A2H  1
P1_3 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0093H  1
P0_4 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0084H  1
P3_2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
P2_3 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A3H  1
P1_4 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0094H  1
P0_5 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0085H  1
EXF2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CEH  1
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
P3_3 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
P2_4 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A4H  1
P1_5 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0095H  1
P0_6 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0086H  1
P3_4 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
P2_5 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A5H  1
P1_6 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0096H  1
P0_7 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0087H  1
P3_5 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
P2_6 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A6H  1
P1_7 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0097H  1
P3_6 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
P2_7 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A7H  1
P3_7 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
T2EX . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
C_T2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C9H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
RCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CDH  1
TCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CCH  1
C51 COMPILER V6.10  ELAP_LCD                                                               04/18/2001 16:29:42 PAGE 5   

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


Elapsed_Time_LCD_Update. . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  Min_update . . . . . . . . . . . . .  AUTO     DATA   BIT      0000H  1
  Hou_update . . . . . . . . . . . . .  AUTO     DATA   BIT      0001H  1
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
Sec_G. . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0000H  1
CP_RL2 . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C8H  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
ET2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ADH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
Min_G. . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0001H  1
TF2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CFH  1
RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
Hou_G. . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0002H  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
PT2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BDH  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
TR2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CAH  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
Elapsed_Time_LCD_Init. . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  pTime. . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0000H  3
  c. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
EXEN2. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CBH  1
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1
LCD_data_G . . . . . . . . . . . . . .  EXTERN   DATA   ARRAY    -----  42


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    204    ----
   CONSTANT SIZE    =     17    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3       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 + -