📄 timer.lst
字号:
C51 COMPILER V7.06 TIMER 03/03/2006 15:27:36 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TIMER
OBJECT MODULE PLACED IN Timer.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Timer.c BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS
stmt level source
1 /******************************************************
2 DESIGN FOR TIMER USE
3 Designer: BH Zhang
4 Date:2006-1-11
5 Ver:1.0
6 Modify Mark:NONE
7 *******************************************************/
8 #include <at89x51.h>
9 #include "timer.h"
10 #include "rf315mhz.h"
11 #include "dfq.h"
12 #include "4X4Key.h"
13 //------------------------------------------------------
14 void InitTime(void){
15 1 TMOD&=T1_MASK_;
16 1 TMOD|=T0_M0_|T0_M1_; //T0 Work on Mode 3
17 1 ET0=1; //Enable T0 Interrupt
18 1
19 1 TH0=T1OverFlow;
20 1
21 1 TL0=T0OverFlow;
22 1
23 1 //PTO=0;
24 1 //USE SERIAL COM,T1 NOT NEED INIT
25 1 //TMOD&=T0_MASK_;
26 1 //TMOD|=T1_M0_|T1_M1_; //T1 Work on Mode 3
27 1 ET1=1; //Enable T1 Interrupt
28 1 //TH1=0xEE;
29 1 //TL1=0x10;
30 1 PT1=1;
31 1 }
32 //------------------------------------------------------
33 unsigned int T0DispDelay=2000;
34 unsigned char T0KeyDelay=200;
35 unsigned int T0250usDelay=0;
36 //------------------------------------------------------
37 void timers0() interrupt 1
38 {
39 1 TL0=T0OverFlow;
40 1
41 1 if(nCurMode!=SEND){
42 2 if(--T0DispDelay==0){
43 3 T0DispDelay=2000;
44 3 Display();
45 3 }
46 2 }
47 1
48 1 if(nCurMode==KEY){
49 2 if(nKey==NOKEY)if(--T0KeyDelay==0){
50 3 T0KeyDelay=200;
51 3 nKey=GetKey();
52 3 }
53 2 }
54 1
55 1 if(T0250usDelay)T0250usDelay--;
C51 COMPILER V7.06 TIMER 03/03/2006 15:27:36 PAGE 2
56 1 }
57 //------------------------------------------------------
58 void timers1() interrupt 3
59 {
60 1 TH0=T1OverFlow;
61 1 nCodeLen++; //record length per bit
62 1 }
63 //------------------------------------------------------
C51 COMPILER V7.06 TIMER 03/03/2006 15:27:36 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION InitTime (BEGIN)
; SOURCE LINE # 14
; SOURCE LINE # 15
0000 5389F0 ANL TMOD,#0F0H
; SOURCE LINE # 16
0003 438903 ORL TMOD,#03H
; SOURCE LINE # 17
0006 D2A9 SETB ET0
; SOURCE LINE # 19
0008 758C48 MOV TH0,#048H
; SOURCE LINE # 21
000B 758A1A MOV TL0,#01AH
; SOURCE LINE # 27
000E D2AB SETB ET1
; SOURCE LINE # 30
0010 D2BB SETB PT1
; SOURCE LINE # 31
0012 22 RET
; FUNCTION InitTime (END)
; FUNCTION timers0 (BEGIN)
0000 C0E0 PUSH ACC
0002 C0F0 PUSH B
0004 C083 PUSH DPH
0006 C082 PUSH DPL
0008 C0D0 PUSH PSW
000A 75D000 MOV PSW,#00H
000D C000 PUSH AR0
000F C001 PUSH AR1
0011 C002 PUSH AR2
0013 C003 PUSH AR3
0015 C004 PUSH AR4
0017 C005 PUSH AR5
0019 C006 PUSH AR6
001B C007 PUSH AR7
; SOURCE LINE # 37
; SOURCE LINE # 39
001D 758A1A MOV TL0,#01AH
; SOURCE LINE # 41
0020 E500 E MOV A,nCurMode
0022 6401 XRL A,#01H
0024 6016 JZ ?C0002
; SOURCE LINE # 42
0026 E500 R MOV A,T0DispDelay+01H
0028 1500 R DEC T0DispDelay+01H
002A 7002 JNZ ?C0010
002C 1500 R DEC T0DispDelay
002E ?C0010:
002E 14 DEC A
002F 4500 R ORL A,T0DispDelay
0031 7009 JNZ ?C0002
; SOURCE LINE # 43
0033 750007 R MOV T0DispDelay,#07H
0036 7500D0 R MOV T0DispDelay+01H,#0D0H
; SOURCE LINE # 44
0039 120000 E LCALL Display
; SOURCE LINE # 45
; SOURCE LINE # 46
003C ?C0002:
C51 COMPILER V7.06 TIMER 03/03/2006 15:27:36 PAGE 4
; SOURCE LINE # 48
003C E500 E MOV A,nCurMode
003E 7010 JNZ ?C0004
; SOURCE LINE # 49
0040 E500 E MOV A,nKey
0042 B4FF0B CJNE A,#0FFH,?C0004
0045 D50008 R DJNZ T0KeyDelay,?C0004
; SOURCE LINE # 50
0048 7500C8 R MOV T0KeyDelay,#0C8H
; SOURCE LINE # 51
004B 120000 E LCALL GetKey
004E 8F00 E MOV nKey,R7
; SOURCE LINE # 52
; SOURCE LINE # 53
0050 ?C0004:
; SOURCE LINE # 55
0050 E500 R MOV A,T0250usDelay+01H
0052 4500 R ORL A,T0250usDelay
0054 6008 JZ ?C0008
0056 E500 R MOV A,T0250usDelay+01H
0058 1500 R DEC T0250usDelay+01H
005A 7002 JNZ ?C0011
005C 1500 R DEC T0250usDelay
005E ?C0011:
; SOURCE LINE # 56
005E ?C0008:
005E D007 POP AR7
0060 D006 POP AR6
0062 D005 POP AR5
0064 D004 POP AR4
0066 D003 POP AR3
0068 D002 POP AR2
006A D001 POP AR1
006C D000 POP AR0
006E D0D0 POP PSW
0070 D082 POP DPL
0072 D083 POP DPH
0074 D0F0 POP B
0076 D0E0 POP ACC
0078 32 RETI
; FUNCTION timers0 (END)
; FUNCTION timers1 (BEGIN)
; SOURCE LINE # 58
; SOURCE LINE # 60
0000 758C48 MOV TH0,#048H
; SOURCE LINE # 61
0003 0500 E INC nCodeLen
; SOURCE LINE # 62
0005 32 RETI
; FUNCTION timers1 (END)
C51 COMPILER V7.06 TIMER 03/03/2006 15:27:36 PAGE 5
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
T0DispDelay. . . . . . . . . . . . . . PUBLIC DATA U_INT 0000H 2
nCodeLen . . . . . . . . . . . . . . . EXTERN DATA U_CHAR ----- 1
nKey . . . . . . . . . . . . . . . . . EXTERN DATA U_CHAR ----- 1
T0KeyDelay . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0002H 1
nCurMode . . . . . . . . . . . . . . . EXTERN DATA U_CHAR ----- 1
InitTime . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1
timers0. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
timers1. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
GetKey . . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
TH0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1
TL0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008AH 1
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
Display. . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
T0250usDelay . . . . . . . . . . . . . PUBLIC DATA U_INT 0003H 2
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 146 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -