📄 base.ls1
字号:
0007 00 F 389 DB avge0
0008 00000000 390 DB 000H,000H,000H,000H ; long
391
000C 01 392 DB 001H
000D 00 F 393 DB time1
000E 00 394 DB 000H
395
000F 01 396 DB 001H
0010 00 F 397 DB time2
0011 00 398 DB 000H
399
0012 01 400 DB 001H
0013 00 F 401 DB counter1
0014 00 402 DB 000H
403
0015 01 404 DB 001H
0016 00 F 405 DB counter2
0017 00 406 DB 000H
407
0018 01 408 DB 001H
0019 00 F 409 DB forward
001A 00 410 DB 000H
411
001B 01 412 DB 001H
001C 00 F 413 DB black
001D 00 414 DB 000H
415
001E 01 416 DB 001H
001F 00 F 417 DB keykey
0020 00 418 DB 000H
419
0021 01 420 DB 001H
0022 00 F 421 DB backward
0023 00 422 DB 000H
423
0024 01 424 DB 001H
0025 00 F 425 DB xianshi
0026 01 426 DB 001H
427
0027 01 428 DB 001H
0028 00 F 429 DB T0_OF
0029 00 430 DB 000H
431
002A 01 432 DB 001H
002B 00 F 433 DB min
002C 00 434 DB 000H
435
002D 01 436 DB 001H
002E 00 F 437 DB sec
002F 00 438 DB 000H
439
0030 01 440 DB 001H
0031 00 F 441 DB stage_sec
0032 00 442 DB 000H
443
0033 01 444 DB 001H
0034 00 F 445 DB stage_clk_flag
0035 00 446 DB 000H
447
448 ; /////////////////////////////////////
449 ; // COPYRIGHT RERVERED BY BUANDXIA //
450 ; /////////////////////////////////////
451 ;
452 ; #include "c8051F020.h"
453 ; #include "intrins.h"
454 ; #include "CH452CMD.H" // 定义常用命令码及外部子程序
A51 MACRO ASSEMBLER BASE 09/05/2007 14:31:50 PAGE 8
455 ; #include "pin.h"
456 ; #include "math.h"
457 ; #include "key_display.h"
458 ;
459 ;
460 ; //定义端口
461 ; sbit LEDG = P3^4;
462 ; sbit BACK = P0^4;
463 ; sbit START = P0^5;
464 ; sbit SPOKER = P0^6;
465 ; sbit IN0 = P1^1;//左
466 ; sbit IN1 = P1^3;//中
467 ; sbit IN2 = P1^0;//右
468 ; //sbit IN3 = P1^5;//斜右
469 ; //sbit IN4 = P1^2;//斜左
470 ; sbit IN5 = P1^2;//正面左
471 ; sbit IN6 = P1^6;//正面右
472 ; sbit LASTS = P1^4;
473 ; sbit LASTB = P1^5;
474 ;
475 ; //定义全局变量
476 ; ulong xdata data0[15];
477 ; ulong avge=0,avge0=0;
478 ; uchar time1=0,time2=0,counter1=0,counter2=0;
479 ; uchar a,bb,c,d,e,f,g,right,left;
480 ; uchar forward=0,black=0,keykey=0,backward=0,xianshi=1;
481 ; uchar T0_OF=0,min=0,sec=0; //T0_OF时T0溢出次数 ,t_n=0
482 ; uchar stage_sec=0,stage_clk_flag=0; //stage_clk_flag为1是阶段计时标志位.不用sta
ge_min
483 ; // Peripheral specific initialization functions,
484 ; // Called from the Init_Device() function
485 ;
486 ;
487 ; void Port_IO_Init()
488
---- 489 RSEG ?PR?Port_IO_Init?BASE
0000 490 Port_IO_Init:
491 ; SOURCE LINE # 40
492 ; {
493 ; SOURCE LINE # 41
494 ; // P0.0 - CEX0 (PCA), Open-Drain, Digital
495 ; // P0.1 - CEX1 (PCA), Open-Drain, Digital
496 ; XBR0 = 0x10; /*CEX0-->P0.0,CEX1-->P0.1*/
497 ; SOURCE LINE # 44
0000 75E110 498 MOV XBR0,#010H
499 ; XBR2 = 0x40;
500 ; SOURCE LINE # 45
0003 75E340 501 MOV XBR2,#040H
502 ; }
503 ; SOURCE LINE # 46
0006 22 504 RET
505 ; END OF Port_IO_Init
506
507 ;
508 ; void Interrupts_Init()
509
---- 510 RSEG ?PR?Interrupts_Init?BASE
0000 511 Interrupts_Init:
512 ; SOURCE LINE # 48
513 ; {
514 ; SOURCE LINE # 49
515 ;
516 ; IE = 0x0A; //使能定时器1中断//使能定时器0中断
517 ; SOURCE LINE # 51
0000 75A80A 518 MOV IE,#0AH
519 ; IP = 0x02; //使定时器1,0优先级高
A51 MACRO ASSEMBLER BASE 09/05/2007 14:31:50 PAGE 9
520 ; SOURCE LINE # 52
0003 75B802 521 MOV IP,#02H
522 ; EIE1 = 0x08; //使能PCA0中断
523 ; SOURCE LINE # 53
0006 75E608 524 MOV EIE1,#08H
525 ; EIE2 = 0x20; //使能外部键盘中断
526 ; SOURCE LINE # 54
0009 75E720 527 MOV EIE2,#020H
528 ; EIP2 = 0x20; //使外部键盘优先级高
529 ; SOURCE LINE # 55
000C 75F720 530 MOV EIP2,#020H
531 ;
532 ; }
533 ; SOURCE LINE # 57
000F 22 534 RET
535 ; END OF Interrupts_Init
536
537 ;
538 ; // Initialization function for device,
539 ; // Call Init_Device() from your main program
540 ; void Init_Device(void)
541
---- 542 RSEG ?PR?Init_Device?BASE
0000 543 Init_Device:
544 USING 0
545 ; SOURCE LINE # 61
546 ; {
547 ; SOURCE LINE # 62
548 ; Reset_Sources_Init();
549 ; SOURCE LINE # 63
0000 120000 F 550 LCALL Reset_Sources_Init
551 ; ADC_Init();
552 ; SOURCE LINE # 64
0003 120000 F 553 LCALL ADC_Init
554 ; PCA_Init();
555 ; SOURCE LINE # 65
0006 120000 F 556 LCALL PCA_Init
557 ; Timer_Init();
558 ; SOURCE LINE # 66
0009 120000 F 559 LCALL Timer_Init
560 ; Oscillator_Init();
561 ; SOURCE LINE # 67
000C 120000 F 562 LCALL Oscillator_Init
563 ; Voltage_Reference_Init();
564 ; SOURCE LINE # 68
000F 120000 F 565 LCALL Voltage_Reference_Init
566 ; Port_IO_Init();
567 ; SOURCE LINE # 69
0012 120000 F 568 LCALL Port_IO_Init
569 ; Interrupts_Init();
570 ; SOURCE LINE # 70
0015 020000 F 571 LJMP Interrupts_Init
572 ; END OF Init_Device
573
574 ; }
575 ; void speedchange(uchar duty,uchar i)
576
---- 577 RSEG ?PR?_speedchange?BASE
0000 578 _speedchange:
579 USING 0
580 ; SOURCE LINE # 72
0000 8F00 F 581 MOV duty?340,R7
0002 8D00 F 582 MOV i?341,R5
583 ; {
584 ; SOURCE LINE # 73
585 ; if(i==0) PCA0CPH0 =(uchar)((100-duty)*2.56); //把duty值转换,赋值给控制
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -