📄 timer.lst
字号:
C51 COMPILER V7.01 TIMER 03/08/2007 12:09:36 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE TIMER
OBJECT MODULE PLACED IN timer.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE timer.c OPTIMIZE(7,SPEED) REGFILE(.\fingerPRJ.ORC) BROWSE FLOATFUZZY(0) NOA
-REGS DEBUG OBJECTEXTEND CODE
stmt level source
1 #include "reg58.h"
2
3 #define _TIMER_C_
4 #include "timer.h"
5 #include "clock.h"
6 #include "setup.h"
7 #include "sram.h"
8
9 unsigned char data timerl,timerh,timeruh;
10 unsigned char data datetime[8],seconds;
11 bit secondsflag;
12 ///////////////////////////////////////////////////////////////////////////////////////////
13 ///////////////////////////////////////////////////////////////////////////////////////////
14
15 void init_timer()
16 {
17 1 unsigned char tempdata;
18 1 TMOD=0X22; //timer0:8bits reload ,timer1:8bits reload
19 1 TCON=0X50; //start timer0 and timer1
20 1 TH0=31;
21 1
22 1 //SCON=0X70; //seted in rxd.c //10bits asynchronous variable
23 1 //SCON1=0X70; //seted in rxd.c //10bits asynchronous variable
24 1
25 1 T2CON=0X34; //serial port 0 using timer2 as timebase
26 1 T2MOD=0;
27 1
28 1 SMOD1=1;
29 1 RCAP2H=0XFF;
30 1 RCAP2L=0XB8; //set uart0 baudrate 9600
31 1
32 1 tempdata=readbaudrate();
33 1 TH1=baudratetimer[tempdata]; //set baudrate of uart1
34 1
35 1 getdatetime();
36 1
37 1 IE=0X52; //enable uart1,uart0,timer0
38 1 PCON=0X80;
39 1 //IE=0X12;
40 1 EA=1;
41 1 }
42
43 void timer0() interrupt 1 using 1
44 {
45 1 timerl++;
46 1 if(!timerl)
47 1 {
48 2 timerh++;
49 2
50 2 if(!(timerh&0x1f))
51 2 {
52 3 secondsflag=1;
53 3 seconds++;
54 3 }
C51 COMPILER V7.01 TIMER 03/08/2007 12:09:36 PAGE 2
55 2
56 2 if(!timerh)
57 2 {
58 3 timeruh++;
59 3 }
60 2 }
61 1 }
62
63 void timer1() interrupt 3 using 1
64 {
65 1 }
66
67 void timer2() interrupt 5 using 1
68 {
69 1 }
70 void delayTimerl(unsigned char delaytime)
71 {
72 1 unsigned char temptimer;
73 1 temptimer=timerl;
74 1 while((timerl-temptimer)<delaytime);
75 1 }
76 void delaytimerh(unsigned char delaytime)
77 {
78 1 unsigned char temptimer;
79 1 temptimer=timerh;
80 1 while((timerh-temptimer)<delaytime);
81 1 }
82
83 void delay50us()
84 {
85 1 unsigned char i=100;
86 1 for(;i;i--);
87 1 }
88
89 void delay500ms()
90 {
91 1 unsigned char i,j;
92 1 for(i=0;i<100;i++)
93 1 {
94 2 for(j=0;j<100;j++)
95 2 {
96 3 delay50us();
97 3 }
98 2 }
99 1 }
100 /*void delaytimeruh(unsigned char delaytime)
101 {
102 unsigned char temptimer;
103 temptimer=timeruh;
104 while((timeruh-temptimer)<delaytime);
105 }*/
106 //void delay(unsigned char delaytime)
107 //{
108 // unsigned char temptimer;
109 //
110 // temptimer=timerl;
111 // while((timerl-temptimer)<delaytime);
112 //
113 //}
C51 COMPILER V7.01 TIMER 03/08/2007 12:09:36 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION init_timer (BEGIN)
; SOURCE LINE # 15
; SOURCE LINE # 16
; SOURCE LINE # 18
0000 758922 MOV TMOD,#022H
; SOURCE LINE # 19
0003 758850 MOV TCON,#050H
; SOURCE LINE # 20
0006 758C1F MOV TH0,#01FH
; SOURCE LINE # 25
0009 75C834 MOV T2CON,#034H
; SOURCE LINE # 26
000C E4 CLR A
000D F5C9 MOV T2MOD,A
; SOURCE LINE # 28
000F D2DF SETB SMOD1
; SOURCE LINE # 29
0011 75CBFF MOV RCAP2H,#0FFH
; SOURCE LINE # 30
0014 75CAB8 MOV RCAP2L,#0B8H
; SOURCE LINE # 32
0017 120000 E LCALL readbaudrate
;---- Variable 'tempdata' assigned to Register 'R7' ----
; SOURCE LINE # 33
001A EF MOV A,R7
001B 900000 E MOV DPTR,#baudratetimer
001E 93 MOVC A,@A+DPTR
001F F58D MOV TH1,A
; SOURCE LINE # 35
0021 120000 E LCALL getdatetime
; SOURCE LINE # 37
0024 75A852 MOV IE,#052H
; SOURCE LINE # 38
0027 758780 MOV PCON,#080H
; SOURCE LINE # 40
002A D2AF SETB EA
; SOURCE LINE # 41
002C 22 RET
; FUNCTION init_timer (END)
; FUNCTION timer0 (BEGIN)
0000 C0E0 PUSH ACC
; SOURCE LINE # 43
; SOURCE LINE # 45
0002 0500 R INC timerl
; SOURCE LINE # 46
0004 E500 R MOV A,timerl
0006 7012 JNZ ?C0005
; SOURCE LINE # 47
; SOURCE LINE # 48
0008 0500 R INC timerh
; SOURCE LINE # 50
000A E500 R MOV A,timerh
000C 541F ANL A,#01FH
000E 7004 JNZ ?C0003
; SOURCE LINE # 51
; SOURCE LINE # 52
0010 D200 R SETB secondsflag
; SOURCE LINE # 53
C51 COMPILER V7.01 TIMER 03/08/2007 12:09:36 PAGE 4
0012 0500 R INC seconds
; SOURCE LINE # 54
0014 ?C0003:
; SOURCE LINE # 56
0014 E500 R MOV A,timerh
0016 7002 JNZ ?C0005
; SOURCE LINE # 57
; SOURCE LINE # 58
0018 0500 R INC timeruh
; SOURCE LINE # 59
; SOURCE LINE # 60
; SOURCE LINE # 61
001A ?C0005:
001A D0E0 POP ACC
001C 32 RETI
; FUNCTION timer0 (END)
; FUNCTION timer1 (BEGIN)
; SOURCE LINE # 63
; SOURCE LINE # 65
0000 32 RETI
; FUNCTION timer1 (END)
; FUNCTION timer2 (BEGIN)
; SOURCE LINE # 67
; SOURCE LINE # 69
0000 32 RETI
; FUNCTION timer2 (END)
; FUNCTION _delayTimerl (BEGIN)
; SOURCE LINE # 70
;---- Variable 'delaytime' assigned to Register 'R7' ----
; SOURCE LINE # 71
; SOURCE LINE # 73
;---- Variable 'temptimer' assigned to Register 'R6' ----
0000 AE00 R MOV R6,timerl
0002 ?C0008:
; SOURCE LINE # 74
0002 C3 CLR C
0003 E500 R MOV A,timerl
0005 9E SUBB A,R6
0006 C3 CLR C
0007 9F SUBB A,R7
0008 40F8 JC ?C0008
; SOURCE LINE # 75
000A ?C0010:
000A 22 RET
; FUNCTION _delayTimerl (END)
; FUNCTION _delaytimerh (BEGIN)
; SOURCE LINE # 76
;---- Variable 'delaytime' assigned to Register 'R7' ----
; SOURCE LINE # 77
; SOURCE LINE # 79
;---- Variable 'temptimer' assigned to Register 'R6' ----
0000 AE00 R MOV R6,timerh
0002 ?C0011:
; SOURCE LINE # 80
0002 C3 CLR C
0003 E500 R MOV A,timerh
0005 9E SUBB A,R6
0006 C3 CLR C
C51 COMPILER V7.01 TIMER 03/08/2007 12:09:36 PAGE 5
0007 9F SUBB A,R7
0008 40F8 JC ?C0011
; SOURCE LINE # 81
000A ?C0013:
000A 22 RET
; FUNCTION _delaytimerh (END)
; FUNCTION delay50us (BEGIN)
; SOURCE LINE # 83
; SOURCE LINE # 84
; SOURCE LINE # 85
;---- Variable 'i' assigned to Register 'R7' ----
0000 7F64 MOV R7,#064H
; SOURCE LINE # 86
0002 ?C0014:
0002 DFFE DJNZ R7,?C0014
; SOURCE LINE # 87
0004 ?C0017:
0004 22 RET
; FUNCTION delay50us (END)
; FUNCTION delay500ms (BEGIN)
; SOURCE LINE # 89
; SOURCE LINE # 90
; SOURCE LINE # 92
;---- Variable 'i' assigned to Register 'R6' ----
0000 E4 CLR A
0001 FE MOV R6,A
0002 ?C0018:
; SOURCE LINE # 93
; SOURCE LINE # 94
;---- Variable 'j' assigned to Register 'R5' ----
0002 E4 CLR A
0003 FD MOV R5,A
0004 ?C0021:
; SOURCE LINE # 95
; SOURCE LINE # 96
0004 120000 R LCALL delay50us
; SOURCE LINE # 97
0007 0D INC R5
0008 BD64F9 CJNE R5,#064H,?C0021
; SOURCE LINE # 98
000B ?C0020:
000B 0E INC R6
000C BE64F3 CJNE R6,#064H,?C0018
; SOURCE LINE # 99
000F ?C0024:
000F 22 RET
; FUNCTION delay500ms (END)
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 119 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 ----
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 + -