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

📄 stimer.ls1

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 LS1
📖 第 1 页 / 共 5 页
字号:
                     224     
----                 225             RSEG  ?DT?GetTickCount?STIMER
0000                 226             cyl?444:   DS   2
                     227     
----                 228             RSEG  ?DT?GetTickCount?STIMER
0002                 229              ms?445:   DS   2
                     230     
----                 231             RSEG  ?DT?GetTenTickCount?STIMER
0000                 232             tmp?546:   DS   2
                     233     
----                 234             RSEG  ?DT?_InitTimer?STIMER
0000                 235            ltmp?648:   DS   4
                     236     
----                 237             RSEG  ?DT?_StartCLKO?STIMER
0000                 238             rld?953:   DS   2
                     239     
----                 240             RSEG  ?C_INITSEG
0000 03              241             DB      003H
0001 00       F      242             DB      Interval
0002 0399            243             DW      00399H
0004 24              244             DB      024H
                     245     
0005 04              246             DB      004H
0006 00       F      247             DB      TStatus
0007 0000            248             DW      00000H
0009 0000            249             DB  000H,000H
                     250     
                     251     
000B 01              252             DB      001H
000C 00       F      253             DB      LedTick
000D 00              254             DB      000H
                     255     
A51 MACRO ASSEMBLER  STIMER                                                               03/13/2009 15:44:55 PAGE     5

000E 01              256             DB      001H
000F 00       F      257             DB      LedCnt
0010 00              258             DB      000H
                     259     
0011 C100     F      260             DB      0C1H, LedFlash + 000H   ; bit-init
                     261     
0013 01              262             DB      001H
0014 00       F      263             DB      BuzzerTick
0015 00              264             DB      000H
                     265     
0016 01              266             DB      001H
0017 00       F      267             DB      BuzzerCnt
0018 00              268             DB      000H
                     269     
0019 01              270             DB      001H
001A 00       F      271             DB      BuzzerTimes
001B 00              272             DB      000H
                     273     
001C C100     F      274             DB      0C1H, fSetting + 000H   ; bit-init
                     275     
                     276     ; //////////////////////////////////////////////
                     277     ; //  timer.c                                 //
                     278     ; //  1毫秒系统时钟                           //
                     279     ; //  自定义时间长度中断调用                  //
                     280     ; //  预定义时间长度中断调用                  //
                     281     ; //  design by: 刘俐训                       //
                     282     ; //////////////////////////////////////////////
                     283     ; 
                     284     ; #include <reg52.h>
                     285     ; #include "stimer.h"
                     286     ; #include <v51rx2.h>
                     287     ; #include "t_event.h"
                     288     ; #include "intrsc.h"
                     289     ; #include "wdt.h"
                     290     ; 
                     291     ; #ifndef enable
                     292     ; #define enable()     EA=1
                     293     ; #define disable()    EA=0
                     294     ; #endif
                     295     ; 
                     296     ; #ifdef  BUZZEROUT
                     297     ; #ifndef BZFRQ
                     298     ; #define BZFRQ
                     299     ; #define BZFRQ0      0
                     300     ; #define BZFRQ2K               2
                     301     ; #define BZFRQ4K               4
                     302     ; #endif
                     303     ; #endif
                     304     ; 
                     305     ; #ifndef NULL
                     306     ; #define NULL    (void *)0
                     307     ; #endif
                     308     ; 
                     309     ; #define USER_TIMER  TL0
                     310     ; #define SYS_TIMER   TH0
                     311     ; #define TF_USER     TF0
                     312     ; #define TF_SYS      TF1
                     313     ; 
                     314     ; 
                     315     ; typedef struct _INTERVAL
                     316     ; {
                     317     ;     unsigned int mscycles;
                     318     ;     unsigned char tenmsloops;
                     319     ; }INTERVAL;
                     320     ; 
                     321     ; typedef struct _TSTATUS
A51 MACRO ASSEMBLER  STIMER                                                               03/13/2009 15:44:55 PAGE     6

                     322     ; {
                     323     ;     union _TICK
                     324     ;     {
                     325     ;         unsigned int cycles;
                     326     ;         unsigned char loops;
                     327     ;     }Tick;
                     328     ;     unsigned int ms;
                     329     ; }TSTATUS;
                     330     ; 
                     331     ; static INTERVAL data Interval = {921, 36};
                     332     ; static volatile TSTATUS data TStatus = {0};
                     333     ; 
                     334     ; static unsigned char data LedTick = 0;
                     335     ; static unsigned char data LedCnt = 0;
                     336     ; static bit LedFlash = 0;
                     337     ; 
                     338     ; static unsigned char data UserReload;
                     339     ; static unsigned long SysClk;
                     340     ; 
                     341     ; /*
                     342     ; static unsigned char data Led1Tick = 0;
                     343     ; static unsigned char data Led1Cnt = 0;
                     344     ; static bit Led1Flash = 0;
                     345     ; */
                     346     ; 
                     347     ; static unsigned char data BuzzerTick = 0;
                     348     ; static unsigned char data BuzzerCnt = 0;
                     349     ; static unsigned char data BuzzerTimes = 0;
                     350     ; static bit fSetting = 0;
                     351     ; 
----                 352     CSEG    AT      0000BH
000B 020000   F      353             LJMP    IntUserTimer
                     354     
                     355     ; void IntUserTimer(void) interrupt TF0_VECTOR    using 2
                     356     
----                 357             RSEG  ?PR?IntUserTimer?STIMER
                     358             USING   2
0000                 359     IntUserTimer:
0000 C0E0            360             PUSH    ACC
0002 C0F0            361             PUSH    B
0004 C083            362             PUSH    DPH
0006 C082            363             PUSH    DPL
0008 C0D0            364             PUSH    PSW
                     365             USING   2
000A 75D010          366             MOV     PSW,#010H
                     367                             ; SOURCE LINE # 77
                     368     ; {
                     369     ;     TL0 += UserReload;
                     370                             ; SOURCE LINE # 79
000D E500     F      371             MOV     A,UserReload
000F 258A            372             ADD     A,TL0
0011 F58A            373             MOV     TL0,A
                     374     ;     TimerEvent();
                     375                             ; SOURCE LINE # 80
0013 120000   F      376             LCALL   TimerEvent
                     377     ; }
                     378                             ; SOURCE LINE # 81
0016 D0D0            379             POP     PSW
0018 D082            380             POP     DPL
001A D083            381             POP     DPH
001C D0F0            382             POP     B
001E D0E0            383             POP     ACC
0020 32              384             RETI    
                     385     ; END OF IntUserTimer
                     386     
----                 387     CSEG    AT      0001BH
A51 MACRO ASSEMBLER  STIMER                                                               03/13/2009 15:44:55 PAGE     7

001B 020000   F      388             LJMP    IntSysTimer
                     389     
                     390     ; 
                     391     ; void IntSysTimer( void ) interrupt TF1_VECTOR   using 1
                     392     
----                 393             RSEG  ?PR?IntSysTimer?STIMER
                     394             USING   1
0000                 395     IntSysTimer:
0000 C0E0            396             PUSH    ACC
0002 C0D0            397             PUSH    PSW
                     398                             ; SOURCE LINE # 83
                     399     ; {
                     400     ;     TStatus.Tick.loops ++;
                     401                             ; SOURCE LINE # 85
0004 0500     F      402             INC     TStatus
                     403     ;     if(TStatus.Tick.loops > Interval.tenmsloops)
                     404                             ; SOURCE LINE # 86
0006 E500     F      405             MOV     A,TStatus
0008 D3              406             SETB    C
0009 9500     F      407             SUBB    A,Interval+02H
000B 4039            408             JC      ?C0008
                     409     ;     {
                     410                             ; SOURCE LINE # 87
                     411     ;         TStatus.Tick.loops = 0;
                     412                             ; SOURCE LINE # 88
000D 750000   F      413             MOV     TStatus,#00H
                     414     ;         TStatus.ms += 10;
                     415                             ; SOURCE LINE # 89
0010 740A            416             MOV     A,#0AH
0012 2500     F      417             ADD     A,TStatus+03H
0014 F500     F      418             MOV     TStatus+03H,A
0016 E4              419             CLR     A
0017 3500     F      420             ADDC    A,TStatus+02H
0019 F500     F      421             MOV     TStatus+02H,A
                     422     ;         if(LedFlash)
                     423                             ; SOURCE LINE # 90
001B 30000E   F      424             JNB     LedFlash,?C0003
                     425     ;         {
                     426                             ; SOURCE LINE # 91
                     427     ;             LedCnt ++;
                     428                             ; SOURCE LINE # 92
001E 0500     F      429             INC     LedCnt
                     430     ;             if(LedCnt >= LedTick)
                     431                             ; SOURCE LINE # 93
0020 E500     F      432             MOV     A,LedCnt
0022 C3              433             CLR     C
0023 9500     F      434             SUBB    A,LedTick
0025 4005            435             JC      ?C0003
                     436     ;             {
                     437                             ; SOURCE LINE # 94
                     438     ;                 LedCnt = 0;
                     439                             ; SOURCE LINE # 95
0027 750000   F      440             MOV     LedCnt,#00H
                     441     ;                 LED = ~LED;
                     442                             ; SOURCE LINE # 96
002A B293            443             CPL     P1_3
                     444     ;             }
                     445                             ; SOURCE LINE # 97
                     446     ;         }
                     447                             ; SOURCE LINE # 98
002C                 448     ?C0003:
                     449     ;         
                     450     ;         /*
                     451     ;         if(Led1Flash)
                     452     ;         {
                     453     ;             Led1Cnt ++;
A51 MACRO ASSEMBLER  STIMER                                                               03/13/2009 15:44:55 PAGE     8

                     454     ;             if(Led1Cnt >= Led1Tick)

⌨️ 快捷键说明

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