📄 sch51.lst
字号:
227 adapt, if required, to report errors over serial link, etc.
228
229 Errors are only displayed for a limited period
230 (60000 ticks = 1 minute at 1ms tick interval).
231 After this the the error code is reset to 0.
232
233 This code may be easily adapted to display the last
234 error 'for ever': this may be appropriate in your
235 application.
236
237 See Chapter 10 for further information.
238
239 -*------------------------------------------------------------------*/
240 void SCH_Report_Status(void)
241 {
C51 COMPILER V6.10 SCH51 04/18/2001 16:29:38 PAGE 5
242 1 #ifdef SCH_REPORT_ERRORS
243 1 // ONLY APPLIES IF WE ARE REPORTING ERRORS
244 1 // Check for a new error code
245 1 if (Error_code_G != Last_error_code_G)
246 1 {
247 2 // Negative logic on LEDs assumed
248 2 Error_port = 255 - Error_code_G;
249 2
250 2 Last_error_code_G = Error_code_G;
251 2
252 2 if (Error_code_G != 0)
253 2 {
254 3 Error_tick_count_G = 60000;
255 3 }
256 2 else
257 2 {
258 3 Error_tick_count_G = 0;
259 3 }
260 2 }
261 1 else
262 1 {
263 2 if (Error_tick_count_G != 0)
264 2 {
265 3 if (--Error_tick_count_G == 0)
266 3 {
267 4 Error_code_G = 0; // Reset error code
268 4 }
269 3 }
270 2 }
271 1 #endif
272 1 }
273
274
275 /*------------------------------------------------------------------*-
276
277 SCH_Go_To_Sleep()
278
279 This scheduler enters 'idle mode' between clock ticks
280 to save power. The next clock tick will return the processor
281 to the normal operating state.
282
283 Note: a slight performance improvement is possible if this
284 function is implemented as a macro, or if the code here is simply
285 pasted into the 'dispatch' function.
286
287 However, by making this a function call, it becomes easier
288 - during development - to assess the performance of the
289 scheduler, using the 'performance analyser' in the Keil
290 hardware simulator. See Chapter 14 for examples for this.
291
292 *** May wish to disable this if using a watchdog ***
293
294 *** ADAPT AS REQUIRED FOR YOUR HARDWARE ***
295
296 -*------------------------------------------------------------------*/
297 void SCH_Go_To_Sleep()
298 {
299 1 PCON |= 0x01; // Enter idle mode (generic 8051 version)
300 1
301 1 // Entering idle mode requires TWO consecutive instructions
302 1 // on 80c515 / 80c505 - to avoid accidental triggering
303 1 //PCON |= 0x01; // Enter idle mode (#1)
C51 COMPILER V6.10 SCH51 04/18/2001 16:29:38 PAGE 6
304 1 //PCON |= 0x20; // Enter idle mode (#2)
305 1 }
306
307 /*------------------------------------------------------------------*-
308 ---- END OF FILE -------------------------------------------------
309 -*------------------------------------------------------------------*/
C51 COMPILER V6.10 SCH51 04/18/2001 16:29:38 PAGE 7
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
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
tByte. . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1
SCH_tasks_G. . . . . . . . . . . . . . PUBLIC DATA ARRAY 0000H 14
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
C51 COMPILER V6.10 SCH51 04/18/2001 16:29:38 PAGE 8
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
_SCH_Add_Task. . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
pFunction. . . . . . . . . . . . . . AUTO DATA PTR 0000H 2
DELAY. . . . . . . . . . . . . . . . AUTO DATA U_INT 0002H 2
PERIOD . . . . . . . . . . . . . . . * REG * DATA U_INT 0002H 2
Index. . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
T2EX . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
SCH_Report_Status. . . . . . . . . . . PUBLIC CODE PROC 0000H -----
C_T2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C9H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
LCD_D4 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
LCD_D5 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
RCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CDH 1
LCD_D6 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
LCD_D7 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
TCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CCH 1
PCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0087H 1
Error_code_G . . . . . . . . . . . . . PUBLIC DATA U_CHAR 000EH 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
CP_RL2 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C8H 1
LCD_EN . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
Last_error_code_G. . . . . . . . . . . STATIC DATA U_CHAR 000FH 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
Error_tick_count_G . . . . . . . . . . STATIC DATA U_INT 0010H 2
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
LCD_RS . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
SCH_Dispatch_Tasks . . . . . . . . . . PUBLIC CODE PROC 0000H -----
Index. . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
EXEN2. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CBH 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
_SCH_Delete_Task . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
C51 COMPILER V6.10 SCH51 04/18/2001 16:29:38 PAGE 9
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
TASK_INDEX . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
Return_code. . . . . . . . . . . . . AUTO DATA BIT 0000H 1
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
SCH_Go_To_Sleep. . . . . . . . . . . . STATIC CODE PROC 0000H -----
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 311 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 18 5
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -