📄 intfun.lst
字号:
C51 COMPILER V7.10 INTFUN 12/15/2007 16:23:18 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE INTFUN
OBJECT MODULE PLACED IN Intfun.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Intfun.c OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND
line level source
1 /*********************************************************************************************************
2 **
3 ** (c) Copyright 2004-2006
4 ** All Rights Reserved
5 **
6 **
7 ** 版权所有:朗顿科技
8 ** http://www.ldmcu.com
9 **
10 ********************************************************************************************************/
11
12 #include <Gendef.h>
13 #include <Val.h>
14 #include <stdio.h>
15 #include<intrins.h>
16
17 void ErrRst(void)
18 {
19 1 EX0 = TRUE;
20 1 ET0 = FALSE;
21 1 TR0 = FALSE;
22 1
23 1 RecTem = 0;
24 1 RecBitCoun = 0;
25 1 RecBytCoun = 0;
26 1
27 1 RecStart = FALSE;
28 1 Recend = FALSE;
29 1 DatRecFlag = FALSE;
30 1 Status = RECRET0;
31 1 }
32
33 void Ex0Int(void) interrupt 0 using 1
34 {
35 1
36 1 // P1 = ~Status;
37 1
38 1 if(Status == RECRET0){
39 2
40 2 EX0 = FALSE;
41 2 ET0 = TRUE;
42 2
43 2 Status = RECRET1;
44 2
45 2 TR0 = FALSE;
46 2 TH0 = TimRefTH[Status];
47 2 TL0 = TimRefTL[Status];
48 2 TR0 = TRUE;
49 2
50 2 }else if (Status == RECRET4){
51 2
52 2 Status++;
53 2 RecTem = 0x00;
54 2 RecBitCoun = 0x00;
55 2 RecBytCoun = 0x00;
C51 COMPILER V7.10 INTFUN 12/15/2007 16:23:18 PAGE 2
56 2 RecStart = TRUE;
57 2 Recend = FALSE;
58 2 DatRecFlag = FALSE;
59 2
60 2 TR0 = FALSE;
61 2 TH0 = TimRefTH[Status];
62 2 TL0 = TimRefTL[Status];
63 2 TR0 = TRUE;
64 2
65 2 }else if(RecStart == TRUE){
66 2
67 2 {
68 3 INT16U RecReg;
69 3
70 3 RecReg = ((TH0<<8) & 0xFF00) | (TL0 & 0xFF);
71 3 RecTem >>= 1;
72 3 if((RecReg > ZERLOWLMT) && (RecReg < ZERHGHLMT)){
73 4 RecTem &= 0x7F;
74 4 }else if((RecReg > ONELOWLMT) && (RecReg < ONEHGHLMT)){
75 4 RecTem |= 0x80;
76 4 }else{
77 4 ErrRst();
78 4
79 4 TI = 0;
80 4 SBUF = 'A';
81 4 while(TI == 0);
82 4 TI = 1;
83 4
84 4 TI = 0;
85 4 SBUF = (RecReg >> 8) & 0xFF;
86 4 while(TI == 0);
87 4 TI = 1;
88 4
89 4 TI = 0;
90 4 SBUF = RecReg & 0xFF;
91 4 while(TI == 0);
92 4 TI = 1;
93 4
94 4 }
95 3
96 3 if(++RecBitCoun >= 8){
97 4 RecBitCoun = 0;
98 4 DatRecBuff[RecBytCoun++] = RecTem;
99 4
100 4 }
101 3 if(RecBytCoun >= 4){
102 4
103 4 // EX0 = TRUE;
104 4 TR0 = FALSE;
105 4 ET0 = FALSE;
106 4
107 4 RecTem = 0;
108 4 RecBitCoun = 0;
109 4 RecBytCoun = 0;
110 4
111 4 RecStart = FALSE;
112 4 Recend = TRUE;
113 4 DatRecFlag = TRUE;
114 4 Status = RECRET0;
115 4
116 4 // P1 = 0x0F;
117 4
C51 COMPILER V7.10 INTFUN 12/15/2007 16:23:18 PAGE 3
118 4 {
119 5
120 5 EX0 = FALSE;
121 5 EA = FALSE;
122 5
123 5 IrdaS = 1;
124 5 while(IrdaS == 0);
125 5
126 5
127 5 IrdaS = 1;
128 5 while(IrdaS == 0);
129 5
130 5 EX0 = TRUE;
131 5 EA = TRUE;
132 5
133 5 }
134 4
135 4 }
136 3 }
137 2
138 2 if((Recend == FALSE)&&(Status == RECRET5)){
139 3 TR0 = FALSE;
140 3 TH0 = TimRefTH[Status];
141 3 TL0 = TimRefTL[Status];
142 3 TR0 = TRUE;
143 3 }
144 2
145 2 }else{
146 2
147 2 ErrRst();
148 2
149 2 }
150 1 }
151
152 void Tim0Int(void) interrupt 1 using 1
153 {
154 1 Status++;
155 1
156 1 // P1 = ~Status;
157 1
158 1 if(1 == Status)
159 1 {
160 2 // P1 = ~0xAF;
161 2 while(1);
162 2 }
163 1
164 1 if(RecStart == TRUE)
165 1 {
166 2
167 2 ErrRst();
168 2
169 2 }else{
170 2
171 2 if((Status == RECRET2)||(Status == RECRET3)){
172 3
173 3 if(IrdaS == 1){
174 4
175 4 ErrRst();
176 4
177 4 }
178 3 }
179 2
C51 COMPILER V7.10 INTFUN 12/15/2007 16:23:18 PAGE 4
180 2 if(Status == RECRET4){
181 3
182 3 if(IrdaS == 0){
183 4 ErrRst();
184 4
185 4 }else{
186 4 ET0 = TRUE;
187 4 EX0 = TRUE;
188 4 }
189 3 }
190 2
191 2 if(Status != RECRET0)
192 2 {
193 3 TR0 = FALSE;
194 3 TH0 = TimRefTH[Status];
195 3 TL0 = TimRefTL[Status];
196 3 TR0 = TRUE;
197 3 }
198 2
199 2 }
200 1 }
201
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 418 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
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 + -