📄 swit_ply.lst
字号:
32 =1 /*------------------------------------------------------------------*-
33 =1 ---- END OF FILE -------------------------------------------------
34 =1 -*------------------------------------------------------------------*/
35 =1
32
33 // ------ Public variable definitions ------------------------------
34
35 bit Sw_pressed_G = 0; // The current switch status
36
37 // ------ Public variable declarations -----------------------------
38
39 extern bit SPEECH_PLAYBACK_Playing_G; // Current playback status
40
41 // ------ Private constants ----------------------------------------
42
43 // Allows NO or NC switch to be used (or other wiring variations)
44 #define SW_PRESSED (0)
45
46 // SW_THRES must be > 1 for correct debounce behaviour
47 #define SW_THRES (3)
48
49
50 /*------------------------------------------------------------------*-
51
52 SWITCH_Init()
53
54 Initialisation function for the switch library.
55
56 -*------------------------------------------------------------------*/
57 void SWITCH_Init(void)
58 {
59 1 Sw_pin = 1; // Use this pin for input
C51 COMPILER V6.10 SWIT_PLY 04/19/2001 12:07:08 PAGE 15
60 1 }
61
62 /*------------------------------------------------------------------*-
63
64 SWITCH_Update()
65
66 This is the main switch function.
67
68 It should be scheduled every 50 - 500 ms.
69
70 -*------------------------------------------------------------------*/
71 void SWITCH_Update(void)
72 {
73 1 static tByte Duration;
74 1
75 1 if (Sw_pin == SW_PRESSED)
76 1 {
77 2 Duration += 1;
78 2
79 2 if (Duration > SW_THRES)
80 2 {
81 3 Duration = SW_THRES;
82 3
83 3 Sw_pressed_G = 1; // Switch is pressed...
84 3
85 3 // We add the 'playback' task to the scheduler here
86 3 // (after checking if it is already running)
87 3 // Add the 'playback' task (duration 10 seconds)
88 3 // THIS IS A CO-OPERATIVE (one-shot) TASK
89 3 if (SPEECH_PLAYBACK_Playing_G == 0)
90 3 {
91 4 hSCH_Add_Task(SPEECH_PLAYBACK_Update, 0, 0, 1);
92 4 }
93 3
94 3 return;
95 3 }
96 2
97 2 // Switch pressed, but not yet for long enough
98 2 Sw_pressed_G = 0;
99 2 return;
100 2 }
101 1
102 1 // Switch not pressed - reset the count
103 1 Duration = 0;
104 1 Sw_pressed_G = 0; // Switch not pressed...
105 1 }
106
107
108 /*------------------------------------------------------------------*-
109 ---- END OF FILE -------------------------------------------------
110 -*------------------------------------------------------------------*/
C51 COMPILER V6.10 SWIT_PLY 04/19/2001 12:07:08 PAGE 16
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION SWITCH_Init (BEGIN)
; SOURCE LINE # 57
; SOURCE LINE # 58
; SOURCE LINE # 59
0000 D2B3 SETB Sw_pin
; SOURCE LINE # 60
0002 22 RET
; FUNCTION SWITCH_Init (END)
; FUNCTION SWITCH_Update (BEGIN)
; SOURCE LINE # 71
; SOURCE LINE # 72
; SOURCE LINE # 75
0000 20B323 JB Sw_pin,?C0002
; SOURCE LINE # 76
; SOURCE LINE # 77
0003 0500 R INC Duration
; SOURCE LINE # 79
0005 E500 R MOV A,Duration
0007 D3 SETB C
0008 9403 SUBB A,#03H
000A 4017 JC ?C0003
; SOURCE LINE # 80
; SOURCE LINE # 81
000C 750003 R MOV Duration,#03H
; SOURCE LINE # 83
000F D200 R SETB Sw_pressed_G
; SOURCE LINE # 89
0011 200017 E JB SPEECH_PLAYBACK_Playing_G,?C0005
; SOURCE LINE # 90
; SOURCE LINE # 91
0014 7E00 E MOV R6,#HIGH SPEECH_PLAYBACK_Update
0016 7F00 E MOV R7,#LOW SPEECH_PLAYBACK_Update
0018 D200 E SETB ?_hSCH_Add_Task?BIT
001A E4 CLR A
001B FB MOV R3,A
001C FA MOV R2,A
001D FD MOV R5,A
001E FC MOV R4,A
001F 120000 E LCALL _hSCH_Add_Task
; SOURCE LINE # 92
0022 22 RET
; SOURCE LINE # 95
0023 ?C0003:
; SOURCE LINE # 98
0023 C200 R CLR Sw_pressed_G
0025 22 RET
; SOURCE LINE # 100
0026 ?C0002:
; SOURCE LINE # 103
0026 E4 CLR A
0027 F500 R MOV Duration,A
; SOURCE LINE # 104
0029 C200 R CLR Sw_pressed_G
; SOURCE LINE # 105
002B ?C0005:
002B 22 RET
; FUNCTION SWITCH_Update (END)
C51 COMPILER V6.10 SWIT_PLY 04/19/2001 12:07:08 PAGE 17
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 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
_hSCH_Add_Task . . . . . . . . . . . . EXTERN CODE PROC ----- -----
tByte. . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1
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
SWITCH_Update. . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
Duration . . . . . . . . . . . . . . STATIC DATA U_CHAR 0000H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
T2EX . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
C51 COMPILER V6.10 SWIT_PLY 04/19/2001 12:07:08 PAGE 18
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
C_T2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C9H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
SPEECH_PLAYBACK_Update . . . . . . . . EXTERN CODE PROC ----- -----
RCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CDH 1
TCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CCH 1
SPEECH_CSLSB_pin . . . . . . . . . . . ABSBIT ----- BIT 0080H 1
SPEECH_CSMSB_pin . . . . . . . . . . . ABSBIT ----- BIT 0081H 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
CP_RL2 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C8H 1
SPEECH_PLAYBACK_Playing_G. . . . . . . EXTERN DATA BIT ----- 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
SWITCH_Init. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
ET2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ADH 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
TF2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CFH 1
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
Sw_pressed_G . . . . . . . . . . . . . PUBLIC DATA BIT 0000H 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
sTaskH . . . . . . . . . . . . . . . . TYPEDEF DATA STRUCT ----- 8
pTask. . . . . . . . . . . . . . . . MEMBER ----- PTR 0000H 2
Delay. . . . . . . . . . . . . . . . MEMBER ----- U_INT 0002H 2
Period . . . . . . . . . . . . . . . MEMBER ----- U_INT 0004H 2
RunMe. . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0006H 1
Co_op. . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0007H 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
EXEN2. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CBH 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
Sw_pin . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 47 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
C51 COMPILER V6.10 SWIT_PLY 04/19/2001 12:07:08 PAGE 19
DATA SIZE = 1 ----
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 + -