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