📄 scar.lst
字号:
0133: MOVWF 53
0134: BCF 03.5
0135: CALL 0DD
.................... delay_ms(5);
0136: MOVLW 05
0137: BSF 03.5
0138: MOVWF 55
0139: BCF 03.5
013A: CALL 0B9
.................... LCD_write_char(0,0x28);
013B: BSF 03.5
013C: CLRF 52
013D: MOVLW 28
013E: MOVWF 53
013F: BCF 03.5
0140: CALL 0DD
.................... delay_ms(5);
0141: MOVLW 05
0142: BSF 03.5
0143: MOVWF 55
0144: BCF 03.5
0145: CALL 0B9
.................... LCD_write_char(0,0x28); //显示模式设置(以后均检测忙信号)//
0146: BSF 03.5
0147: CLRF 52
0148: MOVLW 28
0149: MOVWF 53
014A: BCF 03.5
014B: CALL 0DD
.................... LCD_write_char(0,0x08); // 显示关闭 //
014C: BSF 03.5
014D: CLRF 52
014E: MOVLW 08
014F: MOVWF 53
0150: BCF 03.5
0151: CALL 0DD
.................... LCD_write_char(0,0x01); // 显示清屏 //
0152: BSF 03.5
0153: CLRF 52
0154: MOVLW 01
0155: MOVWF 53
0156: BCF 03.5
0157: CALL 0DD
.................... LCD_write_char(0,0x06); // 显示光标移动设置 //
0158: BSF 03.5
0159: CLRF 52
015A: MOVLW 06
015B: MOVWF 53
015C: BCF 03.5
015D: CALL 0DD
.................... LCD_write_char(0,0x0c); // 显示开及光标设置 //
015E: BSF 03.5
015F: CLRF 52
0160: MOVLW 0C
0161: MOVWF 53
0162: BCF 03.5
0163: CALL 0DD
.................... LCD_write_char(0,0x01);
0164: BSF 03.5
0165: CLRF 52
0166: MOVLW 01
0167: MOVWF 53
0168: BCF 03.5
0169: CALL 0DD
.................... }
016A: BSF 0A.3
016B: BCF 0A.4
016C: GOTO 16B (RETURN)
....................
.................... void motorA_Forward()
.................... {
.................... output_high(PIN_C2);
*
041F: BCF 67.2
0420: MOVF 67,W
0421: BSF 03.5
0422: MOVWF 07
0423: BCF 03.5
0424: BSF 07.2
.................... output_low(PIN_D0);
0425: BSF 03.5
0426: BCF 08.0
0427: BCF 03.5
0428: BCF 08.0
.................... output_high(PIN_D1);
0429: BSF 03.5
042A: BCF 08.1
042B: BCF 03.5
042C: BSF 08.1
.................... }
042D: RETLW 00
....................
.................... void motorA_Backward()
.................... {
.................... output_high(PIN_C2);
*
0497: BCF 67.2
0498: MOVF 67,W
0499: BSF 03.5
049A: MOVWF 07
049B: BCF 03.5
049C: BSF 07.2
.................... output_high(PIN_D0);
049D: BSF 03.5
049E: BCF 08.0
049F: BCF 03.5
04A0: BSF 08.0
.................... output_low(PIN_D1);
04A1: BSF 03.5
04A2: BCF 08.1
04A3: BCF 03.5
04A4: BCF 08.1
.................... }
04A5: RETLW 00
....................
.................... void brakeA()
.................... {
.................... output_high(PIN_C2);
*
0477: BCF 67.2
0478: MOVF 67,W
0479: BSF 03.5
047A: MOVWF 07
047B: BCF 03.5
047C: BSF 07.2
.................... output_high(PIN_D0);
047D: BSF 03.5
047E: BCF 08.0
047F: BCF 03.5
0480: BSF 08.0
.................... output_high(PIN_D1);
0481: BSF 03.5
0482: BCF 08.1
0483: BCF 03.5
0484: BSF 08.1
.................... }
....................
.................... void brakeB()
.................... {
.................... output_high(PIN_C1);
0485: BCF 67.1
0486: MOVF 67,W
0487: BSF 03.5
0488: MOVWF 07
0489: BCF 03.5
048A: BSF 07.1
.................... output_high(PIN_D2);
048B: BSF 03.5
048C: BCF 08.2
048D: BCF 03.5
048E: BSF 08.2
.................... output_high(PIN_D3);
048F: BSF 03.5
0490: BCF 08.3
0491: BCF 03.5
0492: BSF 08.3
.................... }
....................
.................... void motorB_Forward()
.................... {
.................... output_high(PIN_C1);
*
042E: BCF 67.1
042F: MOVF 67,W
0430: BSF 03.5
0431: MOVWF 07
0432: BCF 03.5
0433: BSF 07.1
.................... output_low(PIN_D2);
0434: BSF 03.5
0435: BCF 08.2
0436: BCF 03.5
0437: BCF 08.2
.................... output_high(PIN_D3);
0438: BSF 03.5
0439: BCF 08.3
043A: BCF 03.5
043B: BSF 08.3
.................... }
043C: RETLW 00
....................
.................... void motorB_Backward()
.................... {
.................... output_high(PIN_C1);
*
0591: BCF 67.1
0592: MOVF 67,W
0593: BSF 03.5
0594: MOVWF 07
0595: BCF 03.5
0596: BSF 07.1
.................... output_high(PIN_D2);
0597: BSF 03.5
0598: BCF 08.2
0599: BCF 03.5
059A: BSF 08.2
.................... output_low(PIN_D3);
059B: BSF 03.5
059C: BCF 08.3
059D: BCF 03.5
059E: BCF 08.3
.................... }
....................
.................... void GoStraight()
.................... {
.................... motorA_Forward();
*
0494: CALL 41F
.................... motorB_Forward();
0495: CALL 42E
.................... }
0496: RETLW 00
....................
.................... void GoBack()
.................... {
.................... motorA_Backward();
.................... motorB_Backward();
.................... }
....................
.................... void TurnLeft()
.................... {
.................... motorA_Backward();
*
05A0: CALL 497
.................... motorB_Forward();
05A1: CALL 42E
.................... }
05A2: RETLW 00
.................... void TurnRight()
.................... {
.................... motorA_Forward();
*
0590: CALL 41F
.................... motorB_Backward();
.................... }
*
059F: RETLW 00
.................... void brake()
.................... {
.................... brakeA();
.................... brakeB();
.................... }
*
0493: RETLW 00
....................
.................... void TurnLittle(int16 dir)
.................... {
.................... int16 i;
.................... for(i=0; i<2000; i++)
*
0452: CLRF 55
0453: CLRF 54
0454: MOVF 55,W
0455: SUBLW 07
0456: BTFSS 03.0
0457: GOTO 46F
0458: BTFSS 03.2
0459: GOTO 45E
045A: MOVF 54,W
045B: SUBLW CF
045C: BTFSS 03.0
045D: GOTO 46F
.................... {
.................... //direction == 1(LETURN_RIGHTFT) || direction == 0(RIGHT)
.................... dir??otorA_Forward():motorB_Forward();
045E: MOVF 52,W
045F: IORWF 53,W
0460: BTFSC 03.2
0461: GOTO 468
0462: BCF 03.5
0463: CALL 41F
0464: CLRF 7A
0465: MOVF 78,W
0466: GOTO 46A
0467: BSF 03.5
0468: BCF 03.5
0469: CALL 42E
.................... }
046A: BSF 03.5
046B: INCF 54,F
046C: BTFSC 03.2
046D: INCF 55,F
046E: GOTO 454
.................... }
....................
.................... void TurnAngle(int16 dir, int16 angle) // angle must be multiple 1 degree
.................... {
.................... for(i=0; i<angle; i++)
*
043D: CLRF 21
043E: CLRF 20
043F: MOVF 21,W
0440: BSF 03.5
0441: SUBWF 51,W
0442: BTFSS 03.0
0443: GOTO 475
0444: BTFSS 03.2
0445: GOTO 44E
0446: MOVF 50,W
0447: BCF 03.5
0448: SUBWF 20,W
0449: BTFSS 03.0
044A: GOTO 44D
044B: BSF 03.5
044C: GOTO 475
044D: BSF 03.5
.................... {
.................... TurnLittle(dir);
044E: MOVF 4F,W
044F: MOVWF 53
0450: MOVF 4E,W
0451: MOVWF 52
.................... }
*
046F: BCF 03.5
0470: INCF 20,F
0471: BTFSC 03.2
0472: INCF 21,F
0473: GOTO 43F
0474: BSF 03.5
.................... }
0475: BCF 03.5
0476: RETLW 00
....................
.................... int16 Read_IrSensor(int16 channel)
.................... {
.................... int16 value;
.................... setup_adc_ports(A_ANALOG );
*
055E: MOVLW 82
055F: BSF 03.5
0560: MOVWF 1F
.................... setup_adc(ADC_CLOCK_INTERNAL );
0561: BCF 03.5
0562: MOVF 1F,W
0563: ANDLW 38
0564: IORLW C1
0565: MOVWF 1F
.................... set_adc_channel(channel);
0566: BSF 03.5
0567: RLF 56,W
0568: MOVWF 77
0569: RLF 57,W
056A: MOVWF 78
056B: RLF 77,F
056C: RLF 78,F
056D: RLF 77,F
056E: RLF 78,F
056F: MOVLW F8
0570: ANDWF 77,F
0571: BCF 03.5
0572: MOVF 1F,W
0573: ANDLW C7
0574: IORWF 77,W
0575: MOVWF 1F
.................... delay_us(10);
0576: MOVLW 10
0577: MOVWF 77
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -