📄 elap_232.lst
字号:
C51 COMPILER V6.21 ELAP_232 01/23/2002 18:04:13 PAGE 1
C51 COMPILER V6.21, 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.00)
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 associated with the book:
15
16 EMBEDDED C by Michael J. Pont
17 [Pearson Education, 2002: ISBN: 0-201-79523-X].
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;
32 tByte Min_G;
33 tByte Sec_G;
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 Hou_G = 0;
51 1 Min_G = 0;
52 1 Sec_G = 0;
53 1 }
54
55 /*------------------------------------------------------------------*-
C51 COMPILER V6.21 ELAP_232 01/23/2002 18:04:13 PAGE 2
56
57 Elapsed_Time_RS232_Update()
58
59 Function for displaying elapsed time on PC Screen.
60
61 *** Must be called once per second ***
62
63 -*------------------------------------------------------------------*/
64 void Elapsed_Time_RS232_Update(void)
65 {
66 1 char Time_Str[30] = "\rElapsed time: ";
67 1
68 1 if (++Sec_G == 60)
69 1 {
70 2 Sec_G = 0;
71 2
72 2 if (++Min_G == 60)
73 2 {
74 3 Min_G = 0;
75 3
76 3 if (++Hou_G == 24)
77 3 {
78 4 Hou_G = 0;
79 4 }
80 3 }
81 2 }
82 1
83 1 Time_Str[15] = CHAR_MAP_G[Hou_G / 10];
84 1 Time_Str[16] = CHAR_MAP_G[Hou_G % 10];
85 1
86 1 Time_Str[18] = CHAR_MAP_G[Min_G / 10];
87 1 Time_Str[19] = CHAR_MAP_G[Min_G % 10];
88 1
89 1 Time_Str[21] = CHAR_MAP_G[Sec_G / 10];
90 1 Time_Str[22] = CHAR_MAP_G[Sec_G % 10];
91 1
92 1 // We don't display seconds in this version.
93 1 // We simply use the seconds data to turn on and off the colon
94 1 // (between hours and minutes)
95 1 if ((Sec_G % 2) == 0)
96 1 {
97 2 Time_Str[17] = ':';
98 2 Time_Str[20] = ':';
99 2 }
100 1 else
101 1 {
102 2 Time_Str[17] = ' ';
103 2 Time_Str[20] = ' ';
104 2 }
105 1
106 1 PC_LINK_O_Write_String_To_Buffer(Time_Str);
107 1 }
108
109 /*------------------------------------------------------------------*-
110 ---- END OF FILE -------------------------------------------------
111 -*------------------------------------------------------------------*/
112
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 149 ----
CONSTANT SIZE = 30 ----
C51 COMPILER V6.21 ELAP_232 01/23/2002 18:04:13 PAGE 3
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 30
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 + -