📄 elap_232.lst
字号:
C51 COMPILER V6.10 ELAP_232 04/19/2001 11:40:03 PAGE 1
C51 COMPILER V6.10, COMPILATION OF MODULE ELAP_232
OBJECT MODULE PLACED IN .\ELAP_232.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE .\ELAP_232.C OPTIMIZE(6,SIZE) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*------------------------------------------------------------------*-
2
3 Elap_232.C (v1.01)
4
5 ------------------------------------------------------------------
6
7 Simple library function for keeping track of elapsed time
8 Demo version to display time on PC screen via RS232 link.
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_232.h"
27 #include "PC_O.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 // See Char_Map.c
38 extern const char code CHAR_MAP_G[10];
39
40 /*------------------------------------------------------------------*-
41
42 Elapsed_Time_RS232_Init()
43
44 Init function for simple library displaying elapsed time on PC
45 via RS-232 link.
46
47 -*------------------------------------------------------------------*/
48 void Elapsed_Time_RS232_Init(void)
49 {
50 1 char Time_Str[] = "Elapsed time";
51 1
52 1 PC_LINK_O_Write_String_To_Buffer(Time_Str);
53 1 }
54
55
C51 COMPILER V6.10 ELAP_232 04/19/2001 11:40:03 PAGE 2
56 /*------------------------------------------------------------------*-
57
58 Elapsed_Time_RS232_Update()
59
60 Function for displaying elapsed time on PC Screen.
61
62 *** Must be scheduled once per second ***
63
64 -*------------------------------------------------------------------*/
65 void Elapsed_Time_RS232_Update(void)
66 {
67 1 char Time_Str[30] = "\rElapsed time: ";
68 1
69 1 if (++Sec_G == 60)
70 1 {
71 2 Sec_G = 0;
72 2
73 2 if (++Min_G == 60)
74 2 {
75 3 Min_G = 0;
76 3
77 3 if (++Hou_G == 24)
78 3 {
79 4 Hou_G = 0;
80 4 }
81 3 }
82 2 }
83 1
84 1 Time_Str[15] = CHAR_MAP_G[Hou_G / 10];
85 1 Time_Str[16] = CHAR_MAP_G[Hou_G % 10];
86 1
87 1 Time_Str[18] = CHAR_MAP_G[Min_G / 10];
88 1 Time_Str[19] = CHAR_MAP_G[Min_G % 10];
89 1
90 1 Time_Str[21] = CHAR_MAP_G[Sec_G / 10];
91 1 Time_Str[22] = CHAR_MAP_G[Sec_G % 10];
92 1
93 1 // We don't display seconds in this version.
94 1 // We simply use the seconds data to turn on and off the colon
95 1 // (between hours and minutes)
96 1 if ((Sec_G % 2) == 0)
97 1 {
98 2 Time_Str[17] = ':';
99 2 Time_Str[20] = ':';
100 2 }
101 1 else
102 1 {
103 2 Time_Str[17] = ' ';
104 2 Time_Str[20] = ' ';
105 2 }
106 1
107 1 PC_LINK_O_Write_String_To_Buffer(Time_Str);
108 1 }
109
110 /*------------------------------------------------------------------*-
111 ---- END OF FILE -------------------------------------------------
112 -*------------------------------------------------------------------*/
113
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 170 ----
C51 COMPILER V6.10 ELAP_232 04/19/2001 11:40:03 PAGE 3
CONSTANT SIZE = 43 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 43
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 + -