📄 main.lst
字号:
1 =1 /*------------------------------------------------------------------*-
2 =1
3 =1 TLight_B.H (v1.00)
4 =1
5 =1 ------------------------------------------------------------------
6 =1
7 =1 - See TLight_B.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].
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 data type declarations ----------------------------
25 =1
26 =1 // Possible system states
27 =1 typedef
28 =1 enum {RED, RED_AMBER, GREEN, AMBER, BULB_BLOWN} eLight_State;
29 =1
30 =1
31 =1 // ------ Public constants -----------------------------------------
32 =1
33 =1 #define MASTER 1
34 =1 #define SLAVE 0
35 =1
36 =1 // ------ Public function prototypes -------------------------------
37 =1
38 =1 void TRAFFIC_LIGHTS_Init(void);
39 =1 void TRAFFIC_LIGHTS_Update(void);
40 =1
41 =1 void TRAFFIC_LIGHTS_Display_Safe_Output(void);
42 =1
43 =1 /*------------------------------------------------------------------*-
44 =1 ---- END OF FILE -------------------------------------------------
45 =1 -*------------------------------------------------------------------*/
38
C51 COMPILER V6.10 MAIN 04/18/2001 16:48:02 PAGE 14
39 /* ................................................................. */
40 /* ................................................................. */
41
42 void main(void)
43 {
44 1 // Set up the scheduler
45 1 SCI_D_MASTER_Init_T2();
46 1
47 1 // Prepare for the traffic light task
48 1 TRAFFIC_LIGHTS_Init();
49 1
50 1 // Prepare for the flash LED task (demo only)
51 1 LED_Flash_Init();
52 1
53 1 // Add a 'flash LED' task (on for 1000 ms, off for 1000 ms)
54 1 SCH_Add_Task(LED_Flash_Update, 0, 1000);
55 1
56 1 // Add a 'traffic light' task
57 1 SCH_Add_Task(TRAFFIC_LIGHTS_Update, 30, 1000);
58 1
59 1 // Start the scheduler
60 1 SCI_D_MASTER_Start();
61 1
62 1 while(1)
63 1 {
64 2 SCH_Dispatch_Tasks();
65 2 }
66 1 }
67
68 /*------------------------------------------------------------------*-
69 ---- END OF FILE -------------------------------------------------
70 -*------------------------------------------------------------------*/
C51 COMPILER V6.10 MAIN 04/18/2001 16:48:02 PAGE 15
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION main (BEGIN)
; SOURCE LINE # 42
; SOURCE LINE # 43
; SOURCE LINE # 45
0000 120000 E LCALL SCI_D_MASTER_Init_T2
; SOURCE LINE # 48
0003 120000 E LCALL TRAFFIC_LIGHTS_Init
; SOURCE LINE # 51
0006 120000 E LCALL LED_Flash_Init
; SOURCE LINE # 54
0009 7E00 E MOV R6,#HIGH LED_Flash_Update
000B 7F00 E MOV R7,#LOW LED_Flash_Update
000D 7BE8 MOV R3,#0E8H
000F 7A03 MOV R2,#03H
0011 E4 CLR A
0012 FD MOV R5,A
0013 FC MOV R4,A
0014 120000 E LCALL _SCH_Add_Task
; SOURCE LINE # 57
0017 7E00 E MOV R6,#HIGH TRAFFIC_LIGHTS_Update
0019 7F00 E MOV R7,#LOW TRAFFIC_LIGHTS_Update
001B 7BE8 MOV R3,#0E8H
001D 7A03 MOV R2,#03H
001F 7D1E MOV R5,#01EH
0021 7C00 MOV R4,#00H
0023 120000 E LCALL _SCH_Add_Task
; SOURCE LINE # 60
0026 120000 E LCALL SCI_D_MASTER_Start
0029 ?C0001:
; SOURCE LINE # 62
; SOURCE LINE # 63
; SOURCE LINE # 64
0029 120000 E LCALL SCH_Dispatch_Tasks
; SOURCE LINE # 65
002C 80FB SJMP ?C0001
002E 22 RET
; FUNCTION main (END)
C51 COMPILER V6.10 MAIN 04/18/2001 16:48:02 PAGE 16
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
T2 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 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
BULB_BLOWN . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1
tByte. . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1
P0_0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0080H 1
SCI_D_MASTER_Init_T2 . . . . . . . . . EXTERN CODE PROC ----- -----
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
LED_Flash_Init . . . . . . . . . . . . EXTERN CODE PROC ----- -----
C51 COMPILER V6.10 MAIN 04/18/2001 16:48:02 PAGE 17
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
_SCH_Add_Task. . . . . . . . . . . . . EXTERN CODE PROC ----- -----
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
T2EX . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1
RED_AMBER. . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1
SCI_D_MASTER_Start . . . . . . . . . . EXTERN CODE PROC ----- -----
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
TRAFFIC_LIGHTS_Init. . . . . . . . . . EXTERN CODE PROC ----- -----
C_T2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C9H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
RCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CDH 1
TCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CCH 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
CP_RL2 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C8H 1
eLight_State . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 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
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
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
RED. . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1
SCH_Dispatch_Tasks . . . . . . . . . . EXTERN CODE PROC ----- -----
EXEN2. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CBH 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
AMBER. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1
LED_Flash_Update . . . . . . . . . . . EXTERN CODE PROC ----- -----
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
GREEN. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
TRAFFIC_LIGHTS_Update. . . . . . . . . EXTERN CODE PROC ----- -----
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 47 ----
CONSTANT SIZE = ---- ----
C51 COMPILER V6.10 MAIN 04/18/2001 16:48:02 PAGE 18
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 + -