📄 m101(2)x_test.lst
字号:
231 1 {
232 2 Delay100uS(1);
233 2 }
234 1 if ((g_cReceBuf[1] != cPa[1]) || (0 == cCnt))
235 1 {
236 2 return 5;
237 2 }
238 1 //比较写入的和读出的数据
239 1 cPa = &ComWriteBlock4[10];
240 1 cPb = &g_cReceBuf[2];
241 1 if (memcmp(cPa, cPb, 16) != 0)
C51 COMPILER V7.07 M101_2_X_TEST 06/18/2007 15:10:20 PAGE 5
242 1 {
243 2 return 6;
244 2 }
245 1
246 1 //初始化钱包的值为0x12345678
247 1 cPa = ComIntiPurse5;
248 1 SendUart(cPa);
249 1 for (cCnt=200; (cCnt > 0) && !g_bReceCommandOk; cCnt--)
250 1 {
251 2 Delay100uS(1);
252 2 }
253 1 if ((g_cReceBuf[1] != cPa[1]) || (0 == cCnt))
254 1 {
255 2 return 7;
256 2 }
257 1 //增值
258 1 cPa = ComIncrPurse5;
259 1 SendUart(cPa);
260 1 for (cCnt=200; (cCnt > 0) && !g_bReceCommandOk; cCnt--)
261 1 {
262 2 Delay100uS(1);
263 2 }
264 1 if ((g_cReceBuf[1] != cPa[1]) || (0 == cCnt))
265 1 {
266 2 return 8;
267 2 }
268 1
269 1 //减值
270 1 cPa=ComDecrPurse5;
271 1 SendUart(cPa);
272 1 for (cCnt=200; (cCnt > 0) && !g_bReceCommandOk; cCnt--)
273 1 {
274 2 Delay100uS(1);
275 2 }
276 1 if ((g_cReceBuf[1] != cPa[1]) || (0 == cCnt))
277 1 {
278 2 return 9;
279 2 }
280 1
281 1 //restore the purse in block No.5 to block No.6
282 1 cPa = ComBakPurse56;
283 1 SendUart(cPa);
284 1 for (cCnt=200; (cCnt > 0) && !g_bReceCommandOk; cCnt--)
285 1 {
286 2 Delay100uS(1);
287 2 }
288 1 if ((g_cReceBuf[1] != cPa[1]) || (0 == cCnt))
289 1 {
290 2 return 10;
291 2 }
292 1
293 1 //读块6
294 1 cPa = ComReadPurse6;
295 1 SendUart(cPa);
296 1 for (cCnt=200; (cCnt > 0) && !g_bReceCommandOk; cCnt--)
297 1 {
298 2 Delay100uS(1);
299 2 }
300 1 if ((g_cReceBuf[1] != cPa[1]) || (0 == cCnt))
301 1 {
302 2 return 11;
303 2 }
C51 COMPILER V7.07 M101_2_X_TEST 06/18/2007 15:10:20 PAGE 6
304 1 //比较操作钱包的结果
305 1 cPa = pursevalue;
306 1 cPb = &g_cReceBuf[2];
307 1 if (memcmp(cPa, cPb, 4) != 0)
308 1 {
309 2 return 12;
310 2 }
311 1
312 1 cPa=ComHaltMCU;
313 1 SendUart(cPa);
314 1 for (cCnt=200; (cCnt > 0) && !g_bReceCommandOk; cCnt--)
315 1 {
316 2 Delay100uS(1);
317 2 }
318 1 if ((g_cReceBuf[1] != cPa[1]) || (0 == cCnt))
319 1 {
320 2 return 13;
321 2 }
322 1 return SUCCESS;
323 1 }
324 /*****************************************************************************
325 * 发光管错误指示
326 *****************************************************************************/
327 void ShowError(unsigned char cTimes)
328 {
329 1 Delay100uS(5000);
330 1 while (cTimes--)
331 1 {
332 2 LED_error = 0;
333 2 Delay100uS(1000);
334 2 LED_error = 1;
335 2 Delay100uS(1000);
336 2 }
337 1 }
338 /*****************************************************************************
339 错误,蜂鸣器1s
340 *****************************************************************************/
341 void Err()
342 {
343 1 BEEP = 1;
344 1 Delay100uS(1000);
345 1 BEEP = 0;
346 1 }
347
348 /*****************************************************************************
349 系统初始化
350 *****************************************************************************/
351 void InitializeSystem()
352 {
353 1 TMOD = 0x21;
354 1 PCON |= 0x80;
355 1 SCON = 0xD0;
356 1 TH1 = 0xFD;
357 1 TL1 = TH1;
358 1 TR1 = 1;
359 1 IE |= 0x90;
360 1 }
361 /*****************************************************************************
362 *命令传送
363 *****************************************************************************/
364 void SendUart(unsigned char *cSendBuffer)
365 {
C51 COMPILER V7.07 M101_2_X_TEST 06/18/2007 15:10:20 PAGE 7
366 1 unsigned char i;
367 1 unsigned char cCheckSum;
368 1 g_bReceCommandOk = 0;
369 1 LED_zhishi = CARDPIN;
370 1 ES = 0;
371 1 TI = 0;
372 1 TB8 = 1;
373 1 SBUF = 0;
374 1 while (!TI);
375 1 TB8 = 1;
376 1 TI = 0;
377 1 SBUF = 0;
378 1 while (!TI);
379 1 cCheckSum = 0;
380 1 for (i=0; i<cSendBuffer[0]; i++)
381 1 {
382 2 cCheckSum ^= cSendBuffer[i];
383 2 TB8 = 0;
384 2 TI = 0;
385 2 SBUF = cSendBuffer[i];
386 2 while (!TI);
387 2 }
388 1 TI = 0;
389 1 TB8 = 0;
390 1 SBUF = cCheckSum;
391 1 while (!TI);
392 1 TI = 0;
393 1 ES = 1;
394 1 }
395 /*****************************************************************************
396 串口中断程序
397 *****************************************************************************/
398 seri_int () interrupt 4 using 1
399 {
400 1 static unsigned char i;
401 1 static unsigned char cReceivedData;
402 1 static unsigned char cCheckSum;
403 1 if (RI)
404 1 {
405 2 cReceivedData = SBUF;
406 2 RI = 0;
407 2 if (g_bReceAA)
408 2 {
409 3 g_bReceAA = 0;
410 3 if (0 != cReceivedData)
411 3 {
412 4 g_cReceNum = 0;
413 4 LED_UART = ~LED_UART;
414 4 }
415 3 }
416 2 else
417 2 {
418 3 if (0xAA == cReceivedData)
419 3 {
420 4 g_bReceAA = 1;
421 4 }
422 3 g_cReceBuf[g_cReceNum++] = cReceivedData;
423 3
424 3 if (g_cReceNum > g_cReceBuf[0])
425 3 {
426 4 cCheckSum = 0;
427 4 for (i=0; i <= g_cReceBuf[0]; i++)
C51 COMPILER V7.07 M101_2_X_TEST 06/18/2007 15:10:20 PAGE 8
428 4 {
429 5 cCheckSum ^= g_cReceBuf[i];
430 5 }
431 4 LED_UART = ~LED_UART;
432 4 if (0 == cCheckSum)
433 4 {
434 5 g_bReceCommandOk = 1;
435 5 ES = 0;
436 5 }
437 4 g_bReceAA = 0;
438 4 g_cReceNum = 0;
439 4 }
440 3 if (g_cReceNum >= sizeof(g_cReceBuf))
441 3 {
442 4 g_cReceNum = 0;
443 4 g_bReceAA = 0;
444 4 }
445 3 }
446 2 }
447 1 if (TI)
448 1 {
449 2 TI = 0;
450 2 }
451 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1080 ----
CONSTANT SIZE = 142 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 63 23
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -