📄 t0_test.lst
字号:
C51 COMPILER V7.08 T0_TEST 05/23/2004 23:11:10 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE T0_TEST
OBJECT MODULE PLACED IN T0_TEST.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE T0_TEST.C BROWSE DEBUG OBJECTEXTEND CODE NOCOND
line level source
1 //author: zzwj5120
2 //email: zzwj5120@sina.com
3 //date: 2004/5/19
4
5 #include <reg52.h>
6
7 sbit led1=P1^0;
8 sbit led2=P1^1;
9 sbit led3=P1^2;
10 sbit led4=P1^3;
11
12 #define LED_ON 0
13 #define LED_OFF 1
14
15 unsigned char count;
16 unsigned char delay1;
17 unsigned char delay2;
18 unsigned char delay3;
19 unsigned char delay4;
20
21 void timer0(void) interrupt 1 using 0
22 {
23 1 TL0=0x06;
24 1 TH0=0xf8;
25 1 if (++count > 200){
26 2 count = 0;
27 2 }
28 1 }
29 void serial() interrupt 4 using 3
30 {
31 1
32 1 }
33
34 main(){
35 1 EA = 1; //开总中断
36 1 ET0 = 1; //允许定时器0中断
37 1
38 1 TMOD = 1; //定时器工作方式选择
39 1 TL0 = 0x06;
40 1 TH0 = 0xf8; //定时器赋予初值
41 1
42 1 TR0 = 1; //启动定时器
43 1
44 1 delay1 = 4;
45 1 delay2 = 2;
46 1 delay3 = 4;
47 1 delay4 = 2;
48 1
49 1 while(1){
50 2 if (count == 0){
51 3 if (++delay1 > 4){
52 4 delay1 = 0;
53 4 }
54 3 if (++delay2 > 4){
55 4 delay2 = 0;
C51 COMPILER V7.08 T0_TEST 05/23/2004 23:11:10 PAGE 2
56 4 }
57 3 if (++delay3 > 4){
58 4 delay3 = 0;
59 4 }
60 3 if (++delay4 > 4){
61 4 delay4 = 0;
62 4 }
63 3 }
64 2 if (delay1 < 2){
65 3 led1 = LED_OFF;
66 3 }
67 2 else {
68 3 led1 = LED_ON;
69 3 }
70 2 if (delay2 < 2){
71 3 led2 = LED_OFF;
72 3 }
73 2 else {
74 3 led2 = LED_ON;
75 3 }
76 2 if (delay3 < 2){
77 3 led3 = LED_OFF;
78 3 }
79 2 else {
80 3 led3 = LED_ON;
81 3 }
82 2 if (delay4 < 2){
83 3 led4 = LED_OFF;
84 3 }
85 2 else {
86 3 led4 = LED_ON;
87 3 }
88 2 }
89 1 }
90
C51 COMPILER V7.08 T0_TEST 05/23/2004 23:11:10 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION timer0 (BEGIN)
0000 C0E0 PUSH ACC
0002 C0D0 PUSH PSW
; SOURCE LINE # 21
; SOURCE LINE # 23
0004 758A06 MOV TL0,#06H
; SOURCE LINE # 24
0007 758CF8 MOV TH0,#0F8H
; SOURCE LINE # 25
000A 0500 R INC count
000C E500 R MOV A,count
000E D3 SETB C
000F 94C8 SUBB A,#0C8H
0011 4003 JC ?C0002
; SOURCE LINE # 26
0013 750000 R MOV count,#00H
; SOURCE LINE # 27
; SOURCE LINE # 28
0016 ?C0002:
0016 D0D0 POP PSW
0018 D0E0 POP ACC
001A 32 RETI
; FUNCTION timer0 (END)
; FUNCTION serial (BEGIN)
; SOURCE LINE # 29
; SOURCE LINE # 32
0000 32 RETI
; FUNCTION serial (END)
; FUNCTION main (BEGIN)
; SOURCE LINE # 34
; SOURCE LINE # 35
0000 D2AF SETB EA
; SOURCE LINE # 36
0002 D2A9 SETB ET0
; SOURCE LINE # 38
0004 758901 MOV TMOD,#01H
; SOURCE LINE # 39
0007 758A06 MOV TL0,#06H
; SOURCE LINE # 40
000A 758CF8 MOV TH0,#0F8H
; SOURCE LINE # 42
000D D28C SETB TR0
; SOURCE LINE # 44
000F 750004 R MOV delay1,#04H
; SOURCE LINE # 45
0012 750002 R MOV delay2,#02H
; SOURCE LINE # 46
0015 750004 R MOV delay3,#04H
; SOURCE LINE # 47
0018 750002 R MOV delay4,#02H
001B ?C0004:
; SOURCE LINE # 49
; SOURCE LINE # 50
001B E500 R MOV A,count
001D 7030 JNZ ?C0006
; SOURCE LINE # 51
001F 0500 R INC delay1
C51 COMPILER V7.08 T0_TEST 05/23/2004 23:11:10 PAGE 4
0021 E500 R MOV A,delay1
0023 D3 SETB C
0024 9404 SUBB A,#04H
0026 4003 JC ?C0007
; SOURCE LINE # 52
0028 E4 CLR A
0029 F500 R MOV delay1,A
; SOURCE LINE # 53
002B ?C0007:
; SOURCE LINE # 54
002B 0500 R INC delay2
002D E500 R MOV A,delay2
002F D3 SETB C
0030 9404 SUBB A,#04H
0032 4003 JC ?C0008
; SOURCE LINE # 55
0034 E4 CLR A
0035 F500 R MOV delay2,A
; SOURCE LINE # 56
0037 ?C0008:
; SOURCE LINE # 57
0037 0500 R INC delay3
0039 E500 R MOV A,delay3
003B D3 SETB C
003C 9404 SUBB A,#04H
003E 4003 JC ?C0009
; SOURCE LINE # 58
0040 E4 CLR A
0041 F500 R MOV delay3,A
; SOURCE LINE # 59
0043 ?C0009:
; SOURCE LINE # 60
0043 0500 R INC delay4
0045 E500 R MOV A,delay4
0047 D3 SETB C
0048 9404 SUBB A,#04H
004A 4003 JC ?C0006
; SOURCE LINE # 61
004C E4 CLR A
004D F500 R MOV delay4,A
; SOURCE LINE # 62
; SOURCE LINE # 63
004F ?C0006:
; SOURCE LINE # 64
004F E500 R MOV A,delay1
0051 C3 CLR C
0052 9402 SUBB A,#02H
0054 5004 JNC ?C0011
; SOURCE LINE # 65
0056 D290 SETB led1
; SOURCE LINE # 66
0058 8002 SJMP ?C0012
005A ?C0011:
; SOURCE LINE # 67
; SOURCE LINE # 68
005A C290 CLR led1
; SOURCE LINE # 69
005C ?C0012:
; SOURCE LINE # 70
005C E500 R MOV A,delay2
005E C3 CLR C
005F 9402 SUBB A,#02H
C51 COMPILER V7.08 T0_TEST 05/23/2004 23:11:10 PAGE 5
0061 5004 JNC ?C0013
; SOURCE LINE # 71
0063 D291 SETB led2
; SOURCE LINE # 72
0065 8002 SJMP ?C0014
0067 ?C0013:
; SOURCE LINE # 73
; SOURCE LINE # 74
0067 C291 CLR led2
; SOURCE LINE # 75
0069 ?C0014:
; SOURCE LINE # 76
0069 E500 R MOV A,delay3
006B C3 CLR C
006C 9402 SUBB A,#02H
006E 5004 JNC ?C0015
; SOURCE LINE # 77
0070 D292 SETB led3
; SOURCE LINE # 78
0072 8002 SJMP ?C0016
0074 ?C0015:
; SOURCE LINE # 79
; SOURCE LINE # 80
0074 C292 CLR led3
; SOURCE LINE # 81
0076 ?C0016:
; SOURCE LINE # 82
0076 E500 R MOV A,delay4
0078 C3 CLR C
0079 9402 SUBB A,#02H
007B 5004 JNC ?C0017
; SOURCE LINE # 83
007D D293 SETB led4
; SOURCE LINE # 84
007F 809A SJMP ?C0004
0081 ?C0017:
; SOURCE LINE # 85
; SOURCE LINE # 86
0081 C293 CLR led4
; SOURCE LINE # 87
; SOURCE LINE # 88
0083 8096 SJMP ?C0004
; FUNCTION main (END)
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 161 ----
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 + -