📄 main.lst
字号:
264 void MoveKey(void) //移位键
265 {
266 1 if(FunckeyFlag)
267 1 {
268 2 MoveFlag=~ MoveFlag; //移位
269 2 if(MoveFlag)
270 2 {FlightLed3=0;ClearLed3=0;
271 3 FlightLed4=1;
272 3 }
273 2 else
274 2 {
275 3 FlightLed3=1;
276 3 FlightLed4=0;ClearLed4=0;
277 3 }
278 2 }
279 1 }
280
281 //增加键处理
282 void IncKey(void) //增加键
283 {
284 1 if(FunckeyFlag)
285 1 {
286 2 if(MoveFlag)
287 2 {
288 3 if(++DispBuf[4]>0x0f)DispBuf[4]=0;
289 3 }
290 2 else
291 2 if(++DispBuf[3]>0x0f)DispBuf[3]=0;
292 2 }
293 1 }
294
295 //退出键处理
296 void QuitKey(void) //退出键
297 {
298 1 if(FunckeyFlag)
299 1 {
300 2 FunckeyFlag=0;
301 2 Disp_Can(); //上电显示CAN1
302 2 DispFlag=0x00;
303 2 }
C51 COMPILER V7.50 MAIN 06/01/2005 14:29:41 PAGE 6
304 1 }
305
306 //确认键处理
307 void EnterKey(void) //确认键
308 {
309 1 uchar Tempdata;
310 1 if(FunckeyFlag)
311 1 {
312 2 Tempdata=GetLedData();
313 2 if(DispBuf[1]==0x0a)
314 2 {
315 3 switch(DispBuf[2])
316 3 {
317 4 case 0x01:
318 4 SetSystemBuf[0]=Tempdata;
319 4 EnterNext();
320 4 break;
321 4 case 0x02:
322 4 SetSystemBuf[1]=Tempdata;
323 4 if(!BCAN_ENTER_RETMODEL())
324 4 {
325 5 BCAN_SET_OBJECT(SetSystemBuf[0],SetSystemBuf[1]);
326 5 BCAN_QUIT_RETMODEL();
327 5 }
328 4 else Error_disp(CAN_ENTRESET_ERR );
329 4
330 4 EnterNext();
331 4 break;
332 4 case 0x03:
333 4 BandRateBuf=Tempdata;
334 4 if(Tempdata>12) Error_disp(NO_BANDRATE_SIZE);
335 4 else{
336 5 if(!BCAN_ENTER_RETMODEL())
337 5 {
338 6 BCAN_SET_BANDRATE(Tempdata);
339 6 BCAN_QUIT_RETMODEL();
340 6 }
341 5 DispBuf[2]=1;
342 5 DispBuf[3]=0;DispBuf[4]=0;
343 5 FlightLed3=1;
344 5 FlightLed4=0;ClearLed4=0;
345 5 }
346 4 break;
347 4 default:
348 4 break;
349 4 }
350 3 }
351 2 if(DispBuf[1]==0x0b)
352 2 {
353 3 if(0<DispBuf[2])
354 3 {
355 4 SetSystemBuf[DispBuf[2]-1]=Tempdata;
356 4
357 4 if(DispBuf[2]==0x0a)
358 4 {
359 5 DispBuf[2]=1;
360 5 DispBuf[3]=0;DispBuf[4]=0;
361 5 FlightLed3=1;
362 5 FlightLed4=0;ClearLed4=0;
363 5 }
364 4 else EnterNext();
365 4 }
C51 COMPILER V7.50 MAIN 06/01/2005 14:29:41 PAGE 7
366 3 }
367 2 if(DispBuf[1]==0x0c)
368 2 {
369 3 switch(DispBuf[2])
370 3 {
371 4 case 1:
372 4 EditMsSendCount =Tempdata;
373 4 EditMsSendSave =Tempdata;
374 4 DispBuf[1]=0x05;
375 4 DispBuf[2]=0x0d;
376 4 FunckeyCount++;
377 4 ClearDispAttr();
378 4 MoveFlag=0;
379 4 break;
380 4 default:
381 4 break;
382 4 }
383 3 }
384 2 }
385 1 }
386
387 //按确认键后进入下一小项处理
388 void EnterNext(void) //按确认键后进入下一小项处理
389 {
390 1 DispBuf[3]=0;DispBuf[4]=0;
391 1 FlightLed3=1;
392 1 FlightLed4=0;ClearLed4=0;
393 1 MoveFlag=0;
394 1 DispBuf[2]++;
395 1 }
396
397 //发送键处理
398 void CanSendKey(void) //发送键
399 {
400 1 if(!FunckeyFlag)
401 1 { BCAN_DATA_WRITE(SetSystemBuf); //将编辑的数据发送到can总线
402 2 BCAN_CMD_PRG(TR_CMD);
403 2 }
404 1 }
405
406 //
407 void InitCPU(void)
408 {
409 1 EA =1;
410 1 IT0 =1;
411 1 EX0 =1;
412 1 PX0 =1;
413 1 InitUart(); //初始化串口
414 1 }
415
416 ////
417 uchar Config_SJA(void)
418 {
419 1 uchar data status=0;
420 1 Delay_50us(100) ;
421 1 TimeOut_Start(20);
422 1 BandRateBuf = ByteRate_1000k;
423 1 BCAN_ENTER_RETMODEL();
424 1 if(BCAN_CREATE_COMMUNATION())//
425 1 {
426 2 status = CAN_INTERFACE_ERR;
427 2 return(status);
C51 COMPILER V7.50 MAIN 06/01/2005 14:29:41 PAGE 8
428 2 }
429 1 if(BCAN_SET_BANDRATE(BandRateBuf))//初始化系统默认值波特率100kbps
430 1 {
431 2 status = CAN_INITBTR_ERR ;
432 2 return(status);
433 2 }
434 1 if(BCAN_SET_OBJECT(0xaa,0x00))
435 1 {
436 2 status =CAN_INITOBJECT_ERR;
437 2 return(status);
438 2 }
439 1
440 1 if(BCAN_SET_OUTCLK(0xaa,0x48))
441 1 {
442 2 status =CAN_INITOUTCTL_ERR;
443 2 return(status);
444 2 }
445 1 if(BCAN_QUIT_RETMODEL())
446 1 {
447 2 status = CAN_QUITRESET_ERR;
448 2 return(status);
449 2 }
450 1
451 1 SJA_BCANAdr=REG_CONTROL;
452 1 *SJA_BCANAdr=0X1E;
453 1
454 1 return status;
455 1 }
456
457 //
458 void CanRcv_Prg(void)
459 {
460 1 uchar data buf[10],status;
461 1 if(BCAN_DATA_RECEIVE(buf)) //接收数据
462 1 {status=0xe9;
463 2 Error_disp(status);
464 2 }
465 1 else
466 1 {
467 2 if(BCAN_CMD_PRG(0x04))
468 2 Error_disp(0xe8);
469 2
470 2 if((buf[1]&0x10)!=0)
471 2 {
472 3 switch(buf[1]&0x0f){ //远程帧处理
473 4 case 0: //请求发送命令字为0c1h的命令帧
474 4 buf[1]=(buf[1]&0xe0)|0x06;
475 4 buf[2]=0xc1;
476 4 BCAN_DATA_WRITE(buf); //将编辑的数据发送到can总线
477 4 BCAN_CMD_PRG(TR_CMD);
478 4 break;
479 4 case 1:
480 4 buf[1]=(buf[1]&0xe0)|0x06;
481 4 buf[2]=0xc2;
482 4 BCAN_DATA_WRITE(buf); //将编辑的数据发送到can总线
483 4 BCAN_CMD_PRG(TR_CMD);
484 4 break;
485 4 case 2:
486 4 buf[1]=(buf[1]&0xe0)|0x06;
487 4 buf[2]=0xc3;
488 4 BCAN_DATA_WRITE(buf); //将编辑的数据发送到can总线
489 4 BCAN_CMD_PRG(TR_CMD);
C51 COMPILER V7.50 MAIN 06/01/2005 14:29:41 PAGE 9
490 4 break;
491 4 case 3:
492 4 buf[1]=(buf[1]&0xe0)|0x06;
493 4 buf[2]=0xc4;
494 4 BCAN_DATA_WRITE(buf); //将编辑的数据发送到can总线
495 4 BCAN_CMD_PRG(TR_CMD);
496 4 break;
497 4 case 4:
498 4 buf[1]=(buf[1]&0xe0)|0x06;
499 4 buf[2]=0xc5;
500 4 BCAN_DATA_WRITE(buf); //将编辑的数据发送到can总线
501 4 BCAN_CMD_PRG(TR_CMD);
502 4 break;
503 4 case 5:
504 4 buf[1]=(buf[1]&0xe0)|0x06;
505 4 buf[2]=0xc6;
506 4 BCAN_DATA_WRITE(buf); //将编辑的数据发送到can总线
507 4 BCAN_CMD_PRG(TR_CMD);
508 4 break;
509 4 case 6:
510 4 case 7:
511 4 case 8:
512 4 case 9:
513 4 default:
514 4 break;
515 4 }
516 3 }
517 2 else
518 2 switch(buf[2])
519 2 {
520 3 case 0xc1: //直通显示
521 3 DrecDisplay(&buf[3]);
522 3 break;
523 3 case 0xc2: //消隐命令
524 3 ClearDispPrg(&buf[3]);
525 3 break;
526 3 case 0xc3: //测试命令
527 3 TestDispPrg();
528 3 break;
529 3 case 0xc4: //左循环命令
530 3 LiftCrcDispPrg(&buf[3]);
531 3 break;
532 3 case 0xc5: //右循环命令
533 3 RightCrcDispPrg(&buf[3]);
534 3 break;
535 3 case 0xc6: //闪烁
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -