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

📄 smart_timer.ls1

📁 单片机实现消息队列的例子
💻 LS1
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  SMART_TIMER                                                          10/31/2003 02:22:29 PAGE     1


MACRO ASSEMBLER A51 V7.01
OBJECT MODULE PLACED IN .\smart_timer.OBJ
ASSEMBLER INVOKED BY: C:\Program Files\Keil\C51\BIN\A51.EXE .\smart_timer.src PR(.\smart_timer.ls1) EP DEBUG

LOC  OBJ            LINE     SOURCE

                       1     ; .\smart_timer.SRC generated from: ..\SourceFile\smart_timer.c
                       2     ; COMPILER INVOKED BY:
                       3     ;        C:\Program Files\Keil\C51\BIN\C51.EXE ..\SourceFile\smart_timer.c LARGE BROWSE DEB
                             UG OBJECTEXTEND PRINT(.\smart_timer.lst) SRC(.\smart_timer.SRC)
                       4     
                       5     $nomod51 
                       6     
                       7     NAME    SMART_TIMER
                       8     
  0080                 9     P0      DATA    080H
  0090                10     P1      DATA    090H
  00A0                11     P2      DATA    0A0H
  00B0                12     P3      DATA    0B0H
  00B4                13     T0      BIT     0B0H.4
  00D6                14     AC      BIT     0D0H.6
  00B5                15     T1      BIT     0B0H.5
  0090                16     T2      BIT     090H.0
  00AF                17     EA      BIT     0A8H.7
  00A8                18     IE      DATA    0A8H
  00CE                19     EXF2    BIT     0C8H.6
  00B7                20     RD      BIT     0B0H.7
  00AC                21     ES      BIT     0A8H.4
  00B8                22     IP      DATA    0B8H
  0098                23     RI      BIT     098H.0
  00B2                24     INT0    BIT     0B0H.2
  00D7                25     CY      BIT     0D0H.7
  0099                26     TI      BIT     098H.1
  00B3                27     INT1    BIT     0B0H.3
  00CB                28     RCAP2H  DATA    0CBH
  00BC                29     PS      BIT     0B8H.4
  0081                30     SP      DATA    081H
  0091                31     T2EX    BIT     090H.1
  00D2                32     OV      BIT     0D0H.2
  00CA                33     RCAP2L  DATA    0CAH
  00C9                34     C_T2    BIT     0C8H.1
  00B6                35     WR      BIT     0B0H.6
  00CD                36     RCLK    BIT     0C8H.5
  00CC                37     TCLK    BIT     0C8H.4
  0099                38     SBUF    DATA    099H
  0087                39     PCON    DATA    087H
  0098                40     SCON    DATA    098H
  0089                41     TMOD    DATA    089H
  0088                42     TCON    DATA    088H
  0089                43     IE0     BIT     088H.1
  008B                44     IE1     BIT     088H.3
  008E                45     AUXR    DATA    08EH
  00F0                46     B       DATA    0F0H
  00C8                47     CP_RL2  BIT     0C8H.0
  00E0                48     ACC     DATA    0E0H
  00A9                49     ET0     BIT     0A8H.1
  00AB                50     ET1     BIT     0A8H.3
  008D                51     TF0     BIT     088H.5
  00AD                52     ET2     BIT     0A8H.5
  008F                53     TF1     BIT     088H.7
  00CF                54     TF2     BIT     0C8H.7
  009A                55     RB8     BIT     098H.2
  008C                56     TH0     DATA    08CH
  00A8                57     EX0     BIT     0A8H.0
A51 MACRO ASSEMBLER  SMART_TIMER                                                          10/31/2003 02:22:29 PAGE     2

  0088                58     IT0     BIT     088H.0
  008D                59     TH1     DATA    08DH
  009B                60     TB8     BIT     098H.3
  00AA                61     EX1     BIT     0A8H.2
  008A                62     IT1     BIT     088H.2
  00CD                63     TH2     DATA    0CDH
  00D0                64     P       BIT     0D0H.0
  009F                65     SM0     BIT     098H.7
  008A                66     TL0     DATA    08AH
  009E                67     SM1     BIT     098H.6
  008B                68     TL1     DATA    08BH
  009D                69     SM2     BIT     098H.5
  00CC                70     TL2     DATA    0CCH
  00B9                71     PT0     BIT     0B8H.1
  00BB                72     PT1     BIT     0B8H.3
  00D3                73     RS0     BIT     0D0H.3
  00BD                74     PT2     BIT     0B8H.5
  008C                75     TR0     BIT     088H.4
  00D4                76     RS1     BIT     0D0H.4
  008E                77     TR1     BIT     088H.6
  00CA                78     TR2     BIT     0C8H.2
  00B8                79     PX0     BIT     0B8H.0
  00BA                80     PX1     BIT     0B8H.2
  0083                81     DPH     DATA    083H
  0082                82     DPL     DATA    082H
  00B7                83     IPH     DATA    0B7H
  00CB                84     EXEN2   BIT     0C8H.3
  009C                85     REN     BIT     098H.4
  00C9                86     T2MOD   DATA    0C9H
  00C8                87     T2CON   DATA    0C8H
  00B9                88     SADEN   DATA    0B9H
  00B0                89     RXD     BIT     0B0H.0
  00A9                90     SADDR   DATA    0A9H
  008F                91     CKCON   DATA    08FH
  00B1                92     TXD     BIT     0B0H.1
  00A2                93     AUXR1   DATA    0A2H
  00D5                94     F0      BIT     0D0H.5
  00D0                95     PSW     DATA    0D0H
                      96     ?PR?smart_timer_server?SMART_TIMER       SEGMENT CODE 
                      97     ?PR?smart_timer_idle_check?SMART_TIMER   SEGMENT CODE 
                      98     ?PR?_smart_timer_start?SMART_TIMER       SEGMENT CODE 
                      99     ?XD?_smart_timer_start?SMART_TIMER       SEGMENT XDATA OVERLAYABLE 
                     100     ?PR?_smart_timer_stop?SMART_TIMER        SEGMENT CODE 
                     101     ?C_INITSEG           SEGMENT CODE 
                     102     ?ID?SMART_TIMER      SEGMENT IDATA 
                     103     ?DT?SMART_TIMER      SEGMENT DATA 
                     104     ?ID?smart_timer_server?SMART_TIMER       SEGMENT IDATA OVERLAYABLE 
                     105     ?ID?smart_timer_idle_check?SMART_TIMER   SEGMENT IDATA OVERLAYABLE 
                     106     ?ID?_smart_timer_start?SMART_TIMER       SEGMENT IDATA OVERLAYABLE 
                     107             EXTRN   CODE (_msg_queue_in)
                     108             PUBLIC  SmartTimerNumber
                     109             PUBLIC  wSmartTimerCounterRestorePool
                     110             PUBLIC  SmartTimerMsgPool
                     111             PUBLIC  wSmartTimerCounterPool
                     112             PUBLIC  SmartTimerSeveralPool
                     113             PUBLIC  _smart_timer_stop
                     114             PUBLIC  ?_smart_timer_start?BYTE
                     115             PUBLIC  _smart_timer_start
                     116             PUBLIC  smart_timer_idle_check
                     117             PUBLIC  smart_timer_server
                     118     
----                 119             RSEG  ?XD?_smart_timer_start?SMART_TIMER
0000                 120     ?_smart_timer_start?BYTE:
0000                 121         msgType?243:   DS   1
0001                 122        msgPoint?244:   DS   1
0002                 123        wCounter?245:   DS   2
A51 MACRO ASSEMBLER  SMART_TIMER                                                          10/31/2003 02:22:29 PAGE     3

0004                 124         several?246:   DS   1
                     125     
----                 126             RSEG  ?ID?SMART_TIMER
0000                 127     SmartTimerSeveralPool:   DS   4
0004                 128     SmartTimerMsgPool:   DS   8
000C                 129     wSmartTimerCounterRestorePool:   DS   8
                     130     
----                 131             RSEG  ?DT?SMART_TIMER
0000                 132     wSmartTimerCounterPool:   DS   8
0008                 133     SmartTimerNumber:   DS   1
                     134     
----                 135             RSEG  ?ID?smart_timer_server?SMART_TIMER
0000                 136               i?040:   DS   1
                     137     
----                 138             RSEG  ?ID?smart_timer_idle_check?SMART_TIMER
0000                 139               i?141:   DS   1
                     140     
----                 141             RSEG  ?ID?smart_timer_idle_check?SMART_TIMER
0001                 142          number?142:   DS   1
                     143     
----                 144             RSEG  ?ID?_smart_timer_start?SMART_TIMER
0000                 145               i?247:   DS   1
                     146     
----                 147             RSEG  ?C_INITSEG
0000 01              148             DB      001H
0001 00       F      149             DB      SmartTimerNumber
0002 00              150             DB      000H
                     151     
                     152     ; /*************************************************/
                     153     ; 
                     154     ; /**************虚拟定时器*******************/
                     155     ; 
                     156     ; /*************2003年2月9日*********************/
                     157     ; 
                     158     ; /************WROTE BY WANGSW********************/
                     159     ; #include "reg52x2.h"
                     160     ; #include "define.h"
                     161     ; 
                     162     ; byte data SmartTimerNumber = 0;       
                     163     ; MSGTYPE idata SmartTimerMsgPool[4][2];
                     164     ; word data wSmartTimerCounterPool[4];
                     165     ; word idata wSmartTimerCounterRestorePool[4];
                     166     ; byte idata SmartTimerSeveralPool[4];
                     167     ; /***************************************/
                     168     ; 
                     169     ; /****************************************************************************************
                             **
                     170     ; *函数名:              smart_timer_server
                     171     ; *参数:                        无
                     172     ; *返回值:              无
                     173     ; *描述:                        智能定时器服务程序,             依次对智能定时器           
                                          中的定时任务进行
                     174     ;                               判定,到时的抛出消息,对于需多次运行的可以重载其定时计
                     175     ;                               数次数
                     176     ; *编写:                        王绍伟
                     177     ; *版本信息:            V1.0                    2003年8月15日
                     178     ; *****************************************************************************************
                             */
                     179     ; extern void smart_timer_server(void)
                     180     
----                 181             RSEG  ?PR?smart_timer_server?SMART_TIMER
0000                 182     smart_timer_server:
                     183             USING   0
                     184                             ; SOURCE LINE # 28
                     185     ; {
                     186                             ; SOURCE LINE # 29
A51 MACRO ASSEMBLER  SMART_TIMER                                                          10/31/2003 02:22:29 PAGE     4

                     187     ;       byte idata i;
                     188     ;       if(!SmartTimerNumber)
                     189                             ; SOURCE LINE # 31
0000 E500     F      190             MOV     A,SmartTimerNumber
0002 7003            191             JNZ     $ + 5H
0004 020000   F      192             LJMP    ?C0002
                     193     ;       {       
                     194                             ; SOURCE LINE # 32
                     195     ;               return;                                 /*r若智能定时器个数为0,则退出*/
                     196     ;       }
                     197                             ; SOURCE LINE # 34
0007                 198     ?C0001:
                     199     ;       for(i = 0; i < 4; i++)
                     200                             ; SOURCE LINE # 35
0007 E4              201             CLR     A
0008 7800     F      202             MOV     R0,#LOW (i?040)
000A F6              203             MOV     @R0,A
000B                 204     ?C0003:
000B 7800     F      205             MOV     R0,#LOW (i?040)
000D E6              206             MOV     A,@R0
000E FF              207             MOV     R7,A
000F C3              208             CLR     C
0010 9404            209             SUBB    A,#04H
0012 4003            210             JC      $ + 5H
0014 020000   F      211             LJMP    ?C0002
                     212     ;       {
                     213                             ; SOURCE LINE # 36
                     214     ;               if(GETBIT(SmartTimerNumber,i))
                     215                             ; SOURCE LINE # 37
0017 E500     F      216             MOV     A,SmartTimerNumber
0019 A807            217             MOV     R0,AR7
001B 08              218             INC     R0
001C 8002            219             SJMP    ?C0026
001E                 220     ?C0025:
001E C3              221             CLR     C
001F 13              222             RRC     A
0020                 223     ?C0026:
0020 D8FC            224             DJNZ    R0,?C0025
0022 20E003          225             JB      ACC.0,$ + 6H
0025 020000   F      226             LJMP    ?C0005
                     227     ;               {
                     228                             ; SOURCE LINE # 38
                     229     ;                       if(!wSmartTimerCounterPool[i])
                     230                             ; SOURCE LINE # 39
0028 7800     F      231             MOV     R0,#LOW (i?040)
002A E6              232             MOV     A,@R0
002B 25E0            233             ADD     A,ACC

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -