📄 rxd.lst
字号:
C51 COMPILER V7.01 RXD 03/08/2007 12:10:01 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE RXD
OBJECT MODULE PLACED IN rxd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE rxd.c OPTIMIZE(7,SPEED) REGFILE(.\fingerPRJ.ORC) BROWSE FLOATFUZZY(0) NOARE
-GS DEBUG OBJECTEXTEND CODE
stmt level source
1 #include "reg58.h"
2
3 #define _RXD_C_
4 #include "rxd.h"
5
6 #include "intrins.h"
7 #include "define.h"
8 #include "keypad.h"
9 #include "finger.h"
10 #include "bus.h"
11 #include "pccomm.h"
12 #include "timer.h"
13 #include "system.h"
14 #include "373.h"
15 /////////////////////////////////////////////////////////////////////////////////
16 //unsigned char UARTDATA uart1buff[MAXUART1LEN];
17 //unsigned char data uart0buff[2];
18 unsigned char data rxd0chksum;
19
20 bit rxd0flag,rxd0packflag,rxd1flag;
21 bit keypackflag;
22 //unsigned short idata rxd1len;
23 unsigned short data rxd0len,rxd0counter;
24 unsigned char data rxd0timer;
25 /////////////////////////////////////////////////////////////////////////////////
26 void rxd1() interrupt 7 using 1
27 {
28 1 if(RI_1) //receive interrupt
29 1 {
30 2 RI_1=0;
31 2
32 2 if(!rxd0packflag)
33 2 {
34 3 if(!rxd0flag) //if uart0 is receiving data, uart1 do nothing
35 3 {
36 4 if(!rxd1flag)
37 4 {
38 5 if(SBUF1==PCPACKAGEHEAD) //receive pc data
39 5 {
40 6 uart0buff[0]=PCPACKAGEHEAD;
41 6 rxd1flag=1;
42 6 rxd0counter=1;
43 6 rxd0timer=timerh;
44 6 }
45 5 }
46 4 else
47 4 {
48 5 if(rxd0counter==1)
49 5 {
50 6 rxd0len=SBUF1+0x100; //+0x100 for fear that rxd0counter can be larger than rxd0len
51 6 }
52 5 else if(rxd0counter==2)
53 5 {
54 6 rxd0len&=0xff;
C51 COMPILER V7.01 RXD 03/08/2007 12:10:01 PAGE 2
55 6 rxd0len+=SBUF1<<8;
56 6 rxd0len+=3; //package length is 5 bytes longer than packagelen
57 6 }
58 5 uart0buff[rxd0counter]=SBUF1;
59 5 rxd0counter++;
60 5 if(rxd0counter>=rxd0len)
61 5 {
62 6 rxd0packflag=1;
63 6 rxd1flag=0;
64 6 }
65 5 }
66 4 }
67 3 }
68 2 }
69 1 else //transmit interrupt
70 1 {
71 2
72 2 }
73 1 }
74 /////////////////////////////////////////////////////////////////////////////////
75 void rxd0() interrupt 4 using 1
76 {
77 1
78 1 if(RI) //receive interrupt
79 1 {
80 2 RI=0;
81 2
82 2 if(!rxd0flag)
83 2 {
84 3 if(SBUF==FIMPACKHEAD)
85 3 {
86 4 keypackflag=0;
87 4 uart0buff[0]=FIMPACKHEAD;
88 4 rxd0flag=1;
89 4 rxd0counter=1;
90 4 rxd0timer=timerh;
91 4 rxd1flag=0; //to keep uart1 from receiving any data
92 4 }
93 3 else if(SBUF==KEYPACKHEAD)
94 3 {
95 4 keypackflag=1;
96 4 rxd0chksum=SBUF;
97 4 rxd0flag=1;
98 4 rxd0counter=1;
99 4 rxd0timer=timerh;
100 4 }
101 3
102 3 }
103 2 else
104 2 {
105 3 if(keypackflag)
106 3 {
107 4 if(rxd0counter<KEYPACKLEN-1)
108 4 {
109 5 if(rxd0counter==2)
110 5 {
111 6 keytype=SBUF;
112 6 }
113 5 else if(rxd0counter==3)
114 5 {
115 6 keynumber=SBUF;
116 6 }
C51 COMPILER V7.01 RXD 03/08/2007 12:10:01 PAGE 3
117 5 else if(rxd0counter==4)
118 5 {
119 6 cardnumhigh=SBUF;
120 6 }
121 5 rxd0counter++;
122 5 rxd0chksum+=SBUF;
123 5 }
124 4 else
125 4 {
126 5 if(!(rxd0chksum+SBUF))
127 5 {
128 6 keydownflag=1;
129 6 rxd0flag=0;
130 6 }
131 5 }
132 4 }
133 3 else
134 3 {
135 4 if(rxd0counter==1)
136 4 {
137 5 rxd0len=SBUF+0X100;
138 5 }
139 4 else if(rxd0counter==2)
140 4 {
141 5 //rxd1len<<=8;
142 5 rxd0len&=0xff;
143 5 rxd0len+=(SBUF<<8);
144 5 rxd0len+=5; //package length is 5 bytes longer than packagelen
145 5 }
146 4 uart0buff[rxd0counter]=SBUF;
147 4 rxd0counter++;
148 4 if(rxd0counter>=rxd0len)
149 4 {
150 5 rxd0packflag=1;
151 5 rxd0flag=0;
152 5 }
153 4 }
154 3 }
155 2 /*if(!rxd0flag) //PC&KEYPAD
156 2 {
157 2 if(SBUF==PCPACKAGEHEAD)
158 2 {
159 2 keypackflag=0;
160 2 uart0buff[0]=PCPACKAGEHEAD;
161 2 rxd0flag=1;
162 2 rxd0counter=1;
163 2 rxd0timer=timerh;
164 2 rxd1flag=1; //to keep uart1 from receiving any data
165 2 }
166 2 else if(SBUF==KEYPACKHEAD)
167 2 {
168 2 keypackflag=1;
169 2 rxd0chksum=SBUF;
170 2 rxd0flag=1;
171 2 rxd0counter=1;
172 2 rxd0timer=timerh;
173 2 }
174 2
175 2 }
176 2 else
177 2 {
178 2 if(keypackflag)
C51 COMPILER V7.01 RXD 03/08/2007 12:10:01 PAGE 4
179 2 {
180 2 if(rxd0counter<KEYPACKLEN-1)
181 2 {
182 2 if(rxd0counter==2)
183 2 {
184 2 keytype=SBUF;
185 2 }
186 2 else if(rxd0counter==3)
187 2 {
188 2 keynumber=SBUF;
189 2 }
190 2 else if(rxd0counter==4)
191 2 {
192 2 cardnumhigh=SBUF;
193 2 }
194 2 rxd0counter++;
195 2 rxd0chksum+=SBUF;
196 2 }
197 2 else
198 2 {
199 2 if(!(rxd0chksum+SBUF))
200 2 {
201 2 keydownflag=1;
202 2 rxd0flag=0;
203 2 }
204 2 }
205 2 }
206 2 else
207 2 {
208 2 if(rxd0counter==1)
209 2 {
210 2 rxd0len=SBUF+0x100;
211 2 }
212 2 else if(rxd0counter==2)
213 2 {
214 2 //rxd1len<<=8;
215 2 rxd0len&=0xff;
216 2 rxd0len+=SBUF<<8;
217 2 rxd0len+=3; //package length is 5 bytes longer than packagelen
218 2 }
219 2 uart0buff[rxd0counter]=SBUF;
220 2 rxd0counter++;
221 2 if(rxd0counter>=rxd0len)
222 2 {
223 2 rxd0packflag=1;
224 2 rxd0flag=0;
225 2 }
226 2 }
227 2 }*/
228 2 /*if(!rxd0flag) //KEYPAD
229 2 {
230 2 if(SBUF==KEYPACKHEAD)
231 2 {
232 2 keypackflag=1;
233 2 rxd0chksum=SBUF;
234 2 rxd0flag=1;
235 2 rxd0counter=1;
236 2 rxd0timer=timerh;
237 2 }
238 2 else if(SBUF==FIMPACKHEAD)
239 2 {
240 2 keypackflag=0;
C51 COMPILER V7.01 RXD 03/08/2007 12:10:01 PAGE 5
241 2 uart0buff[0]=FIMPACKHEAD;
242 2 rxd0flag=1;
243 2 rxd0counter=1;
244 2 rxd0timer=timerh;
245 2 }
246 2 else return;
247 2 }
248 2 else
249 2 {
250 2 if(keypackflag)
251 2 {
252 2 if(rxd0counter<KEYPACKLEN-1)
253 2 {
254 2 if(rxd0counter==2)
255 2 {
256 2 keytype=SBUF;
257 2 }
258 2 else if(rxd0counter==3)
259 2 {
260 2 keynumber=SBUF;
261 2 }
262 2 else if(rxd0counter==4)
263 2 {
264 2 cardnumhigh=SBUF;
265 2 }
266 2 rxd0counter++;
267 2 rxd0chksum+=SBUF;
268 2 }
269 2 else
270 2 {
271 2 if(!(rxd0chksum+SBUF))
272 2 {
273 2 keydownflag=1;
274 2 rxd0flag=0;
275 2 }
276 2 }
277 2 }
278 2 else
279 2 {
280 2 if(rxd0counter==1)
281 2 {
282 2 rxd0len=(unsigned short)SBUF;
283 2 }
284 2 else if(rxd0counter==2)
285 2 {
286 2 //rxd1len<<=8;
287 2 rxd0len+=(SBUF<<8);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -