📄 interrupt.lst
字号:
C51 COMPILER V7.50 INTERRUPT 11/12/2006 10:31:35 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE INTERRUPT
OBJECT MODULE PLACED IN Interrupt.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE Interrupt.c BROWSE DEBUG OBJECTEXTEND CODE
line level source
1 #include "Global.H"
2 #include "ClockTask.H"
3
4 //INT0_InterruptService
5 //=====================
6 void INT0_InterruptService(void) interrupt 0 using 1
7 {
8 1 //请求切换任务
9 1 //============
10 1 TaskChangeFlag = 1;
11 1 }
12
13 //INT1_InterruptService
14 //=====================
15 void INT1_InterruptService(void) interrupt 2 using 1
16 {
17 1 }
18
19 //Timer0_InterruptService
20 //=======================
21 void Timer0_InterruptService(void) interrupt 1 using 1
22 {
23 1 TH0 = 0x00;//重置定时器0计数初值
24 1 TL0 = 0x00;
25 1 }
26
27 //Timer1_InterruptService
28 //=======================
29 void Timer1_InterruptService(void) interrupt 3 using 1
30 {
31 1 }
32
33
34 UNINT Counter_1s = 0;//产生1秒信号的计数器
35 UNINT Counter_Flash = 0;//控制闪烁计数器
36 //Timer2_InterruptService
37 //=======================
38 void Timer2_InterruptService(void) interrupt 5 using 3
39 {
40 1 if(TF2)
41 1 {
42 2 //秒信号控制
43 2 //==========
44 2 Counter_1s++;
45 2 if(Counter_1s>=400)
46 2 {//1秒时间到
47 3 Counter_1s = 0;
48 3
49 3 SecondFlag = 1;//设置时钟秒信号标志
50 3 }
51 2
52 2 //字符闪烁频率控制
53 2 //================
54 2 Counter_Flash++;
55 2 if(Counter_Flash == 200)
C51 COMPILER V7.50 INTERRUPT 11/12/2006 10:31:35 PAGE 2
56 2 {
57 3 FlashControl = 2;//让闪烁字符消隐
58 3 }
59 2 else if(Counter_Flash>300)
60 2 {
61 3 FlashControl = 1;//让闪烁字符显示
62 3 Counter_Flash = 0;
63 3 }
64 2
65 2 //显示键盘控制
66 2 //============
67 2 DisplayKeyboardControl();
68 2
69 2 TF2 = 0;//清TF2中断标志
70 2 }//End of TF2
71 1
72 1 if(EXF2)
73 1 {//处理外部中断INT2
74 2 EXF2 = 0;//清EXF2中断标志
75 2 }
76 1 }
77
78 //SerialPort_InterruptService
79 //===========================
80 void SerialPort_InterruptService(void) interrupt 4 using 2
81 {
82 1 if(RI)
83 1 {//处理接收缓冲区满中断
84 2 RI = 0;//清RI中断标志
85 2 }
86 1
87 1 if(TI)
88 1 {//处理发送缓冲区空中断
89 2 TI = 0;//清TI中断标志
90 2 }
91 1 }
92
C51 COMPILER V7.50 INTERRUPT 11/12/2006 10:31:35 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION INT0_InterruptService (BEGIN)
; SOURCE LINE # 6
; SOURCE LINE # 10
0000 D200 E SETB TaskChangeFlag
; SOURCE LINE # 11
0002 32 RETI
; FUNCTION INT0_InterruptService (END)
; FUNCTION INT1_InterruptService (BEGIN)
; SOURCE LINE # 15
; SOURCE LINE # 17
0000 32 RETI
; FUNCTION INT1_InterruptService (END)
; FUNCTION Timer0_InterruptService (BEGIN)
; SOURCE LINE # 21
; SOURCE LINE # 23
0000 758C00 MOV TH0,#00H
; SOURCE LINE # 24
0003 758A00 MOV TL0,#00H
; SOURCE LINE # 25
0006 32 RETI
; FUNCTION Timer0_InterruptService (END)
; FUNCTION Timer1_InterruptService (BEGIN)
; SOURCE LINE # 29
; SOURCE LINE # 31
0000 32 RETI
; FUNCTION Timer1_InterruptService (END)
; FUNCTION Timer2_InterruptService (BEGIN)
0000 C0E0 PUSH ACC
0002 C0F0 PUSH B
0004 C083 PUSH DPH
0006 C082 PUSH DPL
0008 C0D0 PUSH PSW
000A 75D018 MOV PSW,#018H
; SOURCE LINE # 38
; SOURCE LINE # 40
000D 30CF45 JNB TF2,?C0005
; SOURCE LINE # 41
; SOURCE LINE # 44
0010 0500 R INC Counter_1s+01H
0012 E500 R MOV A,Counter_1s+01H
0014 7002 JNZ ?C0015
0016 0500 R INC Counter_1s
0018 ?C0015:
; SOURCE LINE # 45
0018 C3 CLR C
0019 9490 SUBB A,#090H
001B E500 R MOV A,Counter_1s
001D 9401 SUBB A,#01H
001F 4008 JC ?C0006
; SOURCE LINE # 46
; SOURCE LINE # 47
0021 750000 R MOV Counter_1s,#00H
0024 750000 R MOV Counter_1s+01H,#00H
; SOURCE LINE # 49
0027 D200 E SETB SecondFlag
C51 COMPILER V7.50 INTERRUPT 11/12/2006 10:31:35 PAGE 4
; SOURCE LINE # 50
0029 ?C0006:
; SOURCE LINE # 54
0029 0500 R INC Counter_Flash+01H
002B E500 R MOV A,Counter_Flash+01H
002D 7002 JNZ ?C0016
002F 0500 R INC Counter_Flash
0031 ?C0016:
; SOURCE LINE # 55
0031 64C8 XRL A,#0C8H
0033 4500 R ORL A,Counter_Flash
0035 7005 JNZ ?C0007
; SOURCE LINE # 56
; SOURCE LINE # 57
0037 750002 E MOV FlashControl,#02H
; SOURCE LINE # 58
003A 8014 SJMP ?C0008
003C ?C0007:
; SOURCE LINE # 59
003C D3 SETB C
003D E500 R MOV A,Counter_Flash+01H
003F 942C SUBB A,#02CH
0041 E500 R MOV A,Counter_Flash
0043 9401 SUBB A,#01H
0045 4009 JC ?C0008
; SOURCE LINE # 60
; SOURCE LINE # 61
0047 750001 E MOV FlashControl,#01H
; SOURCE LINE # 62
004A 750000 R MOV Counter_Flash,#00H
004D 750000 R MOV Counter_Flash+01H,#00H
; SOURCE LINE # 63
0050 ?C0008:
; SOURCE LINE # 67
0050 120000 E LCALL DisplayKeyboardControl
; SOURCE LINE # 69
0053 C2CF CLR TF2
; SOURCE LINE # 70
0055 ?C0005:
; SOURCE LINE # 72
0055 30CE02 JNB EXF2,?C0011
; SOURCE LINE # 73
; SOURCE LINE # 74
0058 C2CE CLR EXF2
; SOURCE LINE # 75
; SOURCE LINE # 76
005A ?C0011:
005A D0D0 POP PSW
005C D082 POP DPL
005E D083 POP DPH
0060 D0F0 POP B
0062 D0E0 POP ACC
0064 32 RETI
; FUNCTION Timer2_InterruptService (END)
; FUNCTION SerialPort_InterruptService (BEGIN)
; SOURCE LINE # 80
; SOURCE LINE # 82
0000 309802 JNB RI,?C0012
; SOURCE LINE # 83
; SOURCE LINE # 84
0003 C298 CLR RI
C51 COMPILER V7.50 INTERRUPT 11/12/2006 10:31:35 PAGE 5
; SOURCE LINE # 85
0005 ?C0012:
; SOURCE LINE # 87
0005 309902 JNB TI,?C0014
; SOURCE LINE # 88
; SOURCE LINE # 89
0008 C299 CLR TI
; SOURCE LINE # 90
; SOURCE LINE # 91
000A ?C0014:
000A 32 RETI
; FUNCTION SerialPort_InterruptService (END)
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 124 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 ----
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 + -