📄 mmm.lst
字号:
167 4 }
168 3 break;
169 3 case 2: //接收长度
170 3
171 3 RX_len=c;
172 3 if(RX_len>16)
173 3 {
174 4 RX_len=0;
175 4 RXSTAT=0;
C51 COMPILER V7.07 MMM 02/25/2009 22:17:42 PAGE 4
176 4 CALL_isr_T0();
177 4 }
178 3 else
179 3 {
180 4 RXNOM=0;
181 4 START_T0(20);
182 4 RXSTAT=3;
183 4 }
184 3 break;
185 3 case 3:
186 3
187 3 RXtem[RXNOM]=c;
188 3 RXNOM++;
189 3 if(RXNOM==RX_len)
190 3 {
191 4 RXSTAT=4;
192 4 }
193 3 START_T0(20);
194 3 break;
195 3 case 4:
196 3 add=0;
197 3 for(i=0;i<RXNOM;i++)
198 3 {
199 4 add=add+RXtem[i];
200 4 }
201 3 if(c==add)
202 3 {
203 4 rxok=1;
204 4 }
205 3
206 3 CALL_isr_T0();
207 3 RXSTAT=0;
208 3 break;
209 3 default:
210 3 RXSTAT=0;
211 3 break;
212 3 }
213 2
214 2 }
215 1 else
216 1 {
217 2 TI=0;
218 2
219 2 }
220 1 }
221 /*************************原有的函数需改变*************************************
222 * *
223 * Function: isr_timer0 *
224 * *
225 * Input: - *
226 * Output: - *
227 * *
228 * Description: *
229 * *
230 * *
231 ****************************************************************************/
232 void isr_timer0(void) interrupt 1 using 2
233 {
234 1 TR0=0;
235 1 if(RXTimerOUT!=0) //此if{}else{} 为新加入的判断超时功能
236 1 {
237 2 RXTimerOUT--;
C51 COMPILER V7.07 MMM 02/25/2009 22:17:42 PAGE 5
238 2 }
239 1 else
240 1 {
241 2 RXSTAT=0;
242 2 RXNOM=0;
243 2 }
244 1
245 1
246 1
247 1 TH0=0X4c;
248 1 TL0=0X95;
249 1 TR0=1;
250 1 }
251 //***********************************************************
252 void Send_ok(void)
253 {
254 1 char i;
255 1 ES=0;
256 1 for(i=0;i<2;i++)
257 1 {
258 2 SBUF=0Xff;
259 2 while(!TI);
260 2 TI=0;
261 2 SBUF=0X55;
262 2 while(!TI);
263 2 TI=0;
264 2 SBUF=0XAA;
265 2 while(!TI);
266 2 TI=0;
267 2 }
268 1 ES=1;
269 1 }
270 //***************************************************
271 void test(void)
272 {
273 1 while(1)
274 1 {
275 2 TX_EN=! TX_EN;
276 2 Delay1ms(5);
277 2 TX_EN=! TX_EN;
278 2 Delay1ms(5);
279 2 }
280 1
281 1 }
282 //**************************************************************************
283 void main(void)
284 {
285 1 // unsigned int xx;
286 1
287 1 unsigned char i;
288 1 unsigned long yyy=0;
289 1 Test_led=!Test_led;
290 1 Delay100ms(5);
291 1 Test_led=!Test_led;
292 1 wdog=! wdog;
293 1 TX_EN=0;
294 1 init_com();
295 1 // ES=0;
296 1 //test();
297 1
298 1 ES=1;
299 1 i=0;
C51 COMPILER V7.07 MMM 02/25/2009 22:17:42 PAGE 6
300 1 PWR_UP=1;
301 1 CS=01;
302 1 EA=1;
303 1
304 1 while(1)
305 1 {
306 2 wdog=! wdog;
307 2 TX_EN=0;
308 2 RX=1;
309 2 if(rxok)
310 2 {
311 3 rxok=0;
312 3 TX_EN=1;
313 3 RX=1;
314 3 TX=1;
315 3 Delay1ms(3);
316 3 Send_ok();
317 3
318 3 // Delay1ms(1);
319 3 TX_EN=0;
320 3 RX=1;
321 3 Delay1ms(3);
322 3 Test_led=!Test_led;
323 3 Delay1ms(60);
324 3 Test_led=!Test_led;
325 3 }
326 2 // Test_led=!Test_led;
327 2 }
328 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 483 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 28 5
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 + -