Go to most recent revision | Blame | Last modification | View Log | Download
CCS PCW C Compiler, Version 3.110, 15448
Filename: d:\@kaklik\programy\pic_c\robot\auto\main.LST
ROM used: 188 (18%)
Largest free fragment is 836
RAM used: 4 (11%) at main() level
5 (14%) worst case
Stack: 2 locations
*
0000: MOVLW 00
0001: MOVWF 0A
0002: GOTO 071
0003: NOP
.................... #include "D:\@Kaklik\programy\PIC_C\robot\auto\main.h"
.................... #include <16C84.h>
.................... //////// Standard Header file for the PIC16C84 device ////////////////
.................... #device PIC16C84
.................... #list
....................
.................... #use delay(clock=4000000)
0004: MOVLW 10
0005: MOVWF 04
0006: MOVF 00,W
0007: BTFSC 03.2
0008: GOTO 018
0009: MOVLW 01
000A: MOVWF 0D
000B: CLRF 0C
000C: DECFSZ 0C,F
000D: GOTO 00C
000E: DECFSZ 0D,F
000F: GOTO 00B
0010: MOVLW 4A
0011: MOVWF 0C
0012: DECFSZ 0C,F
0013: GOTO 012
0014: NOP
0015: NOP
0016: DECFSZ 00,F
0017: GOTO 009
0018: RETLW 00
.................... #fuses XT,NOWDT
....................
....................
....................
.................... #DEFINE CIDLO1L PIN_B0
.................... #DEFINE CIDLO1R PIN_B1
.................... #DEFINE CIDLO2L PIN_B2
.................... #DEFINE CIDLO2R PIN_B3
....................
.................... #DEFINE RELE1 PIN_B5
.................... #DEFINE RELE2 PIN_B6
.................... #DEFINE MOTOR1 PIN_B4
.................... #DEFINE MOTOR2 PIN_A0
.................... #DEFINE MOTOR2a PIN_A1
....................
.................... #DEFINE LASER PIN_A2
....................
.................... #DEFINE L 0
.................... #DEFINE R 1
....................
.................... int cara;
.................... int movement;
....................
.................... void left()
.................... {
.................... output_high(RELE1);
*
0041: BSF 03.5
0042: BCF 06.5
0043: BCF 03.5
0044: BSF 06.5
.................... output_high(RELE2);
0045: BSF 03.5
0046: BCF 06.6
0047: BCF 03.5
0048: BSF 06.6
.................... delay_ms(100);
0049: MOVLW 64
004A: MOVWF 10
004B: CALL 004
.................... output_high(MOTOR1);
004C: BSF 03.5
004D: BCF 06.4
004E: BCF 03.5
004F: BSF 06.4
.................... output_high(MOTOR2);
0050: BSF 03.5
0051: BCF 05.0
0052: BCF 03.5
0053: BSF 05.0
.................... output_high(MOTOR2a);
0054: BSF 03.5
0055: BCF 05.1
0056: BCF 03.5
0057: BSF 05.1
0058: GOTO 0A4 (RETURN)
.................... }
....................
.................... void right()
.................... {
.................... output_low(RELE1);
0059: BSF 03.5
005A: BCF 06.5
005B: BCF 03.5
005C: BCF 06.5
.................... output_low(RELE2);
005D: BSF 03.5
005E: BCF 06.6
005F: BCF 03.5
0060: BCF 06.6
.................... delay_ms(100);
0061: MOVLW 64
0062: MOVWF 10
0063: CALL 004
.................... output_high(MOTOR1);
0064: BSF 03.5
0065: BCF 06.4
0066: BCF 03.5
0067: BSF 06.4
.................... output_high(MOTOR2);
0068: BSF 03.5
0069: BCF 05.0
006A: BCF 03.5
006B: BSF 05.0
.................... output_high(MOTOR2a);
006C: BSF 03.5
006D: BCF 05.1
006E: BCF 03.5
006F: BSF 05.1
0070: GOTO 0B1 (RETURN)
.................... }
....................
.................... void rovne()
.................... {
.................... output_low(RELE1); // oba motory vpred
*
0029: BSF 03.5
002A: BCF 06.5
002B: BCF 03.5
002C: BCF 06.5
.................... output_high(RELE2);
002D: BSF 03.5
002E: BCF 06.6
002F: BCF 03.5
0030: BSF 06.6
.................... delay_ms(100);
0031: MOVLW 64
0032: MOVWF 10
0033: CALL 004
.................... output_high(MOTOR1);
0034: BSF 03.5
0035: BCF 06.4
0036: BCF 03.5
0037: BSF 06.4
.................... output_high(MOTOR2);
0038: BSF 03.5
0039: BCF 05.0
003A: BCF 03.5
003B: BSF 05.0
.................... output_high(MOTOR2a);
003C: BSF 03.5
003D: BCF 05.1
003E: BCF 03.5
003F: BSF 05.1
0040: RETLW 00
.................... }
....................
.................... void stop()
.................... {
.................... output_low(MOTOR1);
*
0019: BSF 03.5
001A: BCF 06.4
001B: BCF 03.5
001C: BCF 06.4
.................... output_low(MOTOR2);
001D: BSF 03.5
001E: BCF 05.0
001F: BCF 03.5
0020: BCF 05.0
.................... output_low(MOTOR2a);
0021: BSF 03.5
0022: BCF 05.1
0023: BCF 03.5
0024: BCF 05.1
.................... delay_ms(100);
0025: MOVLW 64
0026: MOVWF 10
0027: CALL 004
0028: RETLW 00
.................... }
....................
....................
.................... void main()
.................... {
*
0071: CLRF 04
0072: MOVLW 1F
0073: ANDWF 03,F
.................... cara=L;
0074: CLRF 0E
.................... movement=R;
0075: MOVLW 01
0076: MOVWF 0F
.................... output_low(RELE1); // oba motory vpred
0077: BSF 03.5
0078: BCF 06.5
0079: BCF 03.5
007A: BCF 06.5
.................... output_high(RELE2);
007B: BSF 03.5
007C: BCF 06.6
007D: BCF 03.5
007E: BSF 06.6
.................... delay_ms(100);
007F: MOVLW 64
0080: MOVWF 10
0081: CALL 004
.................... while (true)
.................... {
.................... if (!input(CIDLO1R)) cara=R; // cara vpravo
0082: BSF 03.5
0083: BSF 06.1
0084: BCF 03.5
0085: BTFSC 06.1
0086: GOTO 089
0087: MOVLW 01
0088: MOVWF 0E
.................... if (!input(CIDLO1L)) cara=L; // cara vlevo
0089: BSF 03.5
008A: BSF 06.0
008B: BCF 03.5
008C: BTFSC 06.0
008D: GOTO 08F
008E: CLRF 0E
....................
....................
.................... if (cara != movement)
008F: MOVF 0F,W
0090: SUBWF 0E,W
0091: BTFSC 03.2
0092: GOTO 0B4
.................... {
.................... switch(cara)
0093: MOVF 0E,W
0094: ADDLW FE
0095: BTFSC 03.0
0096: GOTO 0B4
0097: ADDLW 02
0098: GOTO 0B6
.................... {
.................... case L:
.................... output_high(LASER);
0099: BSF 03.5
009A: BCF 05.2
009B: BCF 03.5
009C: BSF 05.2
.................... stop();
009D: CALL 019
.................... rovne();
009E: CALL 029
.................... delay_ms(100);
009F: MOVLW 64
00A0: MOVWF 10
00A1: CALL 004
.................... stop();
00A2: CALL 019
.................... left();
00A3: GOTO 041
.................... movement=L;
00A4: CLRF 0F
.................... break;
00A5: GOTO 0B4
....................
.................... case R:
.................... stop();
00A6: CALL 019
.................... rovne();
00A7: CALL 029
.................... delay_ms(100);
00A8: MOVLW 64
00A9: MOVWF 10
00AA: CALL 004
.................... output_low(LASER);
00AB: BSF 03.5
00AC: BCF 05.2
00AD: BCF 03.5
00AE: BCF 05.2
.................... stop();
00AF: CALL 019
.................... right();
00B0: GOTO 059
.................... movement=R;
00B1: MOVLW 01
00B2: MOVWF 0F
.................... break;
00B3: GOTO 0B4
.................... }
*
00B6: BCF 0A.0
00B7: BCF 0A.1
00B8: BCF 0A.2
00B9: ADDWF 02,F
00BA: GOTO 099
00BB: GOTO 0A6
.................... }
.................... }
*
00B4: GOTO 082
.................... }
....................
00B5: SLEEP