📄 main.lst
字号:
14 =1
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 -*------------------------------------------------------------------*/
37 #include "Cloc_Adjust.h"
1 =1 /*------------------------------------------------------------------*-
2 =1
3 =1 Cloc_Adjust.H (v1.00)
4 =1
5 =1 ------------------------------------------------------------------
6 =1
7 =1 - See Cloc_MX4.C for details.
8 =1
9 =1
10 =1 COPYRIGHT
11 =1 ---------
12 =1
13 =1 This code is from the book:
14 =1
15 =1 PATTERNS FOR TIME-TRIGGERED EMBEDDED SYSTEMS by Michael J. Pont
16 =1 [Pearson Education, 2001; ISBN: 0-201-33138-1].
C51 COMPILER V8.05a MAIN 06/07/2007 19:40:24 PAGE 14
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_Adjust_Init(void);
27 =1 void CLOCK_LED_Time_Adjust(void);
28 =1
29 =1 /*------------------------------------------------------------------*-
30 =1 ---- END OF FILE -------------------------------------------------
31 =1 -*------------------------------------------------------------------*/
38 #include "port.H"
1 =1 /*------------------------------------------------------------------*-
2 =1
3 =1 Port.H (v1.00)
4 =1
5 =1 ------------------------------------------------------------------
6 =1
7 =1 'Port Header' (see Chap 10) for project ELAPSED (see Chap 21)
8 =1
9 =1
10 =1 COPYRIGHT
11 =1 ---------
12 =1
13 =1 This code is from the book:
14 =1
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 // ------ Sch51.C ----------------------------------------
25 =1
26 =1 // Comment this line out if error reporting is NOT required
27 =1 #define SCH_REPORT_ERRORS
28 =1
29 =1 #ifdef SCH_REPORT_ERRORS
30 =1 // The port on which error codes will be displayed
31 =1 // ONLY USED IF ERRORS ARE REPORTED
32 =1 #define Error_port P1
33 =1
34 =1 #endif
35 =1
36 =1 // ------ LED_MX4.C -----------------------------------------------
37 =1
38 =1 // LED connection requires 12 port pins
39 =1 #define LED_DATA_PORT (P2)
40 =1
41 =1 /* Connections to LED_DATA_PORT - See Figure 21.6 for details
42 =1
43 =1 DP G F E D C B A = LED display pins
44 =1 | | | | | | | |
45 =1 x.7 x.6 x.5 x.4 x.3 x.2 x.1 x.0 = Port pins
46 =1
C51 COMPILER V8.05a MAIN 06/07/2007 19:40:24 PAGE 15
47 =1 x.7 == LED_DATA_PORT^7, etc
48 =1
49 =1 LED codes (NB - positive logic assumed here)
50 =1
51 =1 0 = abcdef => 00111111 = 0x3F
52 =1 1 = bc => 00000110 = 0x06
53 =1 2 = abdeg => 01011011 = 0x5B
54 =1 3 = abcdg => 01001111 = 0x4F
55 =1 4 = bcfg => 01100110 = 0x66
56 =1 5 = acdfg => 01101101 = 0x6D
57 =1 6 = acdefg => 01111101 = 0x7D
58 =1 7 = abc => 00000111 = 0x07
59 =1 8 = abcdefg => 01111111 = 0x7F
60 =1 9 = abcdfg => 01101111 = 0x6F
61 =1
62 =1 To display decimal point, add 10 (decimal) to the above values */
63 =1
64 =1 // Any combination of (4) pins on any ports may be used here
65 =1 sbit LED_DIGIT_0 = P3^3;
66 =1 sbit LED_DIGIT_1 = P3^4;
67 =1 sbit LED_DIGIT_2 = P3^5;
68 =1 sbit LED_DIGIT_3 = P3^6;
69 =1 sbit SET_pin = P1^0;
70 =1 sbit ADD_pin = P1^1;
71 =1 sbit SUB_pin = P1^2;
72 =1 sbit LED_pin = P1^3;
73 =1
74 =1
75 =1 /*------------------------------------------------------------------*-
76 =1 ---- END OF FILE -------------------------------------------------
77 =1 -*------------------------------------------------------------------*/
78 =1
79 =1
80 =1
39
40 /* ............................................................... */
41 /* ............................................................... */
42
43 void main(void)
44 {
45 1 // Set up the scheduler
46 1 SCH_Init_T2();
47 1 //调整时间函数初始化
48 1 LED_pin = 0;
49 1 CLOCK_LED_Time_Adjust_Init();
50 1 // Add the 'Time Update' task (once per second)
51 1 // - timings are in ticks (1 ms tick interval)
52 1 // (Max interval / delay is 65535 ticks)
53 1 // Add the 'Display Update' task (once per second)
54 1 // Need to update a 4-segment display every 3 ms (approx)
55 1 // Need to update a 2-segment display every 6 ms (approx)
56 1 SCH_Add_Task(LED_MX4_Display_Update,0,13);
57 1 SCH_Add_Task(CLOCK_LED_Time_Update,100,1000);
58 1 SCH_Add_Task(CLOCK_LED_Time_Adjust,200,200);
59 1
60 1
61 1
62 1
63 1
64 1
65 1 // Start the scheduler
66 1 SCH_Start();
C51 COMPILER V8.05a MAIN 06/07/2007 19:40:24 PAGE 16
67 1
68 1 while(1)
69 1 {
70 2 SCH_Dispatch_Tasks();
71 2 }
72 1 }
73
74 /*------------------------------------------------------------------*-
75 ---- END OF FILE -------------------------------------------------
76 -*------------------------------------------------------------------*/
C51 COMPILER V8.05a MAIN 06/07/2007 19:40:24 PAGE 17
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION main (BEGIN)
; SOURCE LINE # 43
; SOURCE LINE # 44
; SOURCE LINE # 46
0000 120000 E LCALL SCH_Init_T2
; SOURCE LINE # 48
0003 C293 CLR LED_pin
; SOURCE LINE # 49
0005 120000 E LCALL CLOCK_LED_Time_Adjust_Init
; SOURCE LINE # 56
0008 7E00 E MOV R6,#HIGH LED_MX4_Display_Update
000A 7F00 E MOV R7,#LOW LED_MX4_Display_Update
000C 7B0D MOV R3,#0DH
000E 7A00 MOV R2,#00H
0010 E4 CLR A
0011 FD MOV R5,A
0012 FC MOV R4,A
0013 120000 E LCALL _SCH_Add_Task
; SOURCE LINE # 57
0016 7E00 E MOV R6,#HIGH CLOCK_LED_Time_Update
0018 7F00 E MOV R7,#LOW CLOCK_LED_Time_Update
001A 7BE8 MOV R3,#0E8H
001C 7A03 MOV R2,#03H
001E 7D64 MOV R5,#064H
0020 7C00 MOV R4,#00H
0022 120000 E LCALL _SCH_Add_Task
; SOURCE LINE # 58
0025 7E00 E MOV R6,#HIGH CLOCK_LED_Time_Adjust
0027 7F00 E MOV R7,#LOW CLOCK_LED_Time_Adjust
0029 7BC8 MOV R3,#0C8H
002B 7A00 MOV R2,#00H
002D 7DC8 MOV R5,#0C8H
002F 7C00 MOV R4,#00H
0031 120000 E LCALL _SCH_Add_Task
; SOURCE LINE # 66
0034 120000 E LCALL SCH_Start
0037 ?C0001:
; SOURCE LINE # 68
; SOURCE LINE # 69
; SOURCE LINE # 70
0037 120000 E LCALL SCH_Dispatch_Tasks
; SOURCE LINE # 71
003A 80FB SJMP ?C0001
003C 22 RET
; FUNCTION main (END)
C51 COMPILER V8.05a MAIN 06/07/2007 19:40:24 PAGE 18
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
LED_pin. . . . . . . . . . . . . . . . ABSBIT ----- BIT 0093H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
tLong. . . . . . . . . . . . . . . . . TYPEDEF ----- U_LONG ----- 4
sTask. . . . . . . . . . . . . . . . . TYPEDEF DATA STRUCT ----- 7
pTask. . . . . . . . . . . . . . . . MEMBER ----- PTR 0000H 2
Delay. . . . . . . . . . . . . . . . MEMBER ----- U_INT 0002H 2
Period . . . . . . . . . . . . . . . MEMBER ----- U_INT 0004H 2
RunMe. . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0006H 1
tByte. . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1
LED_MX4_Display_Update . . . . . . . . EXTERN CODE PROC ----- -----
tWord. . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
SCH_Init_T2. . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
_SCH_Add_Task. . . . . . . . . . . . . EXTERN CODE PROC ----- -----
SCH_Start. . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
CLOCK_LED_Time_Adjust_Init . . . . . . EXTERN CODE PROC ----- -----
CLOCK_LED_Time_Update. . . . . . . . . EXTERN CODE PROC ----- -----
SCH_Dispatch_Tasks . . . . . . . . . . EXTERN CODE PROC ----- -----
CLOCK_LED_Time_Adjust. . . . . . . . . EXTERN CODE PROC ----- -----
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 61 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -