⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 swit_ply.lst

📁 时间触发嵌入式系统设计模式:使用8051系列微控制器开发可靠应用
💻 LST
📖 第 1 页 / 共 4 页
字号:
  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 + -