0,0 → 1,274 |
CCS PCW C Compiler, Version 3.110, 15448 |
|
Filename: d:\@kaklik\programy\pic_c\robot\solarni_robot\2004\main.LST |
|
ROM used: 178 (17%) |
Largest free fragment is 846 |
RAM used: 3 (4%) at main() level |
4 (6%) worst case |
Stack: 1 locations |
|
* |
0000: MOVLW 00 |
0001: MOVWF 0A |
0002: GOTO 012 |
0003: NOP |
.................... /* Program pro ovladani slunecniho robota */ |
.................... /* (chodi se zapojenim Dark Walker rev.3 */ |
.................... /* $Header: /programy/PIC_C/robot/solarni_robot/dalsi_verze/main.c 8 7.09.03 12:35 Kaklik $ */ |
.................... |
.................... #include "D:\@Kaklik\programy\PIC_C\robot\solarni_robot\dalsi_verze\main.h" |
.................... #include <16F84.h> |
.................... //////// Standard Header file for the PIC16F84 device //////////////// |
.................... #device PIC16F84 |
.................... #list |
.................... |
.................... #use delay(clock=32768) |
0004: MOVLW 10 |
0005: MOVWF 04 |
0006: MOVF 00,W |
0007: BTFSC 03.2 |
0008: GOTO 011 |
0009: GOTO 00F |
000A: NOP |
000B: NOP |
000C: NOP |
000D: NOP |
000E: NOP |
000F: DECFSZ 00,F |
0010: GOTO 00A |
0011: RETLW 00 |
.................... #fuses LP,PUT,NOWDT |
.................... |
.................... |
.................... |
.................... #define LED PIN_B3 // LED |
.................... #define ON_TIME 75 // Cas sepnuti rele |
.................... #define meridlo PIN_B2 // Napetovy supervisor |
.................... #define RESET PIN_B0 // Pridrzeni RESETu |
.................... |
.................... void rele1() // Sepnuti prvniho rele |
.................... { |
.................... output_low(PIN_A1); |
.................... output_low(PIN_B4); |
.................... delay_ms(ON_TIME); |
.................... output_high(PIN_A1); |
.................... output_high(PIN_B4); |
.................... } |
.................... |
.................... void motor() // Sepnuti motoru |
.................... { |
.................... output_low(pin_A2); |
.................... output_low(pin_B1); |
.................... output_low(PIN_A4); |
.................... delay_ms(ON_TIME); |
.................... output_high(pin_A2); |
.................... output_high(pin_B1); |
.................... output_high(PIN_A4); |
.................... } |
.................... |
.................... |
.................... void main() |
.................... { |
0012: CLRF 04 |
0013: MOVLW 1F |
0014: ANDWF 03,F |
.................... |
.................... setup_counters(RTCC_INTERNAL,WDT_18MS); |
0015: MOVLW 08 |
0016: MOVWF 0C |
0017: BTFSS 0C.3 |
0018: GOTO 021 |
0019: MOVLW 07 |
001A: CLRF 01 |
001B: MOVLW 81 |
001C: MOVWF 04 |
001D: MOVF 00,W |
001E: ANDLW C0 |
001F: IORLW 0F |
0020: MOVWF 00 |
0021: CLRWDT |
0022: MOVLW 81 |
0023: MOVWF 04 |
0024: MOVF 00,W |
0025: ANDLW C0 |
0026: IORWF 0C,W |
0027: MOVWF 00 |
.................... |
.................... output_high(RESET); // vypnuti resetu od supervizoru |
0028: BSF 03.5 |
0029: BCF 06.0 |
002A: BCF 03.5 |
002B: BSF 06.0 |
.................... |
.................... output_low(PIN_A2); // vypni vsechno |
002C: BSF 03.5 |
002D: BCF 05.2 |
002E: BCF 03.5 |
002F: BCF 05.2 |
.................... output_low(PIN_A3); |
0030: BSF 03.5 |
0031: BCF 05.3 |
0032: BCF 03.5 |
0033: BCF 05.3 |
.................... output_low(PIN_B5); |
0034: BSF 03.5 |
0035: BCF 06.5 |
0036: BCF 03.5 |
0037: BCF 06.5 |
.................... |
.................... output_high(LED); // |
0038: BSF 03.5 |
0039: BCF 06.3 |
003A: BCF 03.5 |
003B: BSF 06.3 |
.................... delay_ms(ON_TIME); // bliknuti LED |
003C: MOVLW C7 |
003D: MOVWF 0C |
003E: DECFSZ 0C,F |
003F: GOTO 03E |
0040: NOP |
0041: NOP |
.................... output_low(LED); // |
0042: BSF 03.5 |
0043: BCF 06.3 |
0044: BCF 03.5 |
0045: BCF 06.3 |
.................... |
.................... output_high(PIN_A3); |
0046: BSF 03.5 |
0047: BCF 05.3 |
0048: BCF 03.5 |
0049: BSF 05.3 |
.................... delay_ms(3000); |
004A: MOVLW 0C |
004B: MOVWF 0F |
004C: MOVLW FA |
004D: MOVWF 10 |
004E: CALL 004 |
004F: DECFSZ 0F,F |
0050: GOTO 04C |
.................... output_high(PIN_B5); |
0051: BSF 03.5 |
0052: BCF 06.5 |
0053: BCF 03.5 |
0054: BSF 06.5 |
.................... delay_ms(10000); |
0055: MOVLW 28 |
0056: MOVWF 0F |
0057: MOVLW FA |
0058: MOVWF 10 |
0059: CALL 004 |
005A: DECFSZ 0F,F |
005B: GOTO 057 |
.................... output_low(PIN_B5); |
005C: BSF 03.5 |
005D: BCF 06.5 |
005E: BCF 03.5 |
005F: BCF 06.5 |
.................... |
.................... output_high(PIN_A2); // rozjezd |
0060: BSF 03.5 |
0061: BCF 05.2 |
0062: BCF 03.5 |
0063: BSF 05.2 |
.................... delay_ms(200); |
0064: MOVLW C8 |
0065: MOVWF 10 |
0066: CALL 004 |
.................... output_low(PIN_A3); |
0067: BSF 03.5 |
0068: BCF 05.3 |
0069: BCF 03.5 |
006A: BCF 05.3 |
.................... delay_ms(1000); |
006B: MOVLW 04 |
006C: MOVWF 0F |
006D: MOVLW FA |
006E: MOVWF 10 |
006F: CALL 004 |
0070: DECFSZ 0F,F |
0071: GOTO 06D |
.................... output_high(PIN_A3); |
0072: BSF 03.5 |
0073: BCF 05.3 |
0074: BCF 03.5 |
0075: BSF 05.3 |
.................... delay_ms(200); |
0076: MOVLW C8 |
0077: MOVWF 10 |
0078: CALL 004 |
.................... output_low(PIN_A3); |
0079: BSF 03.5 |
007A: BCF 05.3 |
007B: BCF 03.5 |
007C: BCF 05.3 |
.................... delay_ms(1000); |
007D: MOVLW 04 |
007E: MOVWF 0F |
007F: MOVLW FA |
0080: MOVWF 10 |
0081: CALL 004 |
0082: DECFSZ 0F,F |
0083: GOTO 07F |
.................... output_high(PIN_B5); |
0084: BSF 03.5 |
0085: BCF 06.5 |
0086: BCF 03.5 |
0087: BSF 06.5 |
.................... delay_ms(200); |
0088: MOVLW C8 |
0089: MOVWF 10 |
008A: CALL 004 |
.................... output_low(PIN_B5); |
008B: BSF 03.5 |
008C: BCF 06.5 |
008D: BCF 03.5 |
008E: BCF 06.5 |
.................... delay_ms(1000); |
008F: MOVLW 04 |
0090: MOVWF 0F |
0091: MOVLW FA |
0092: MOVWF 10 |
0093: CALL 004 |
0094: DECFSZ 0F,F |
0095: GOTO 091 |
.................... output_high(PIN_B5); |
0096: BSF 03.5 |
0097: BCF 06.5 |
0098: BCF 03.5 |
0099: BSF 06.5 |
.................... delay_ms(200); |
009A: MOVLW C8 |
009B: MOVWF 10 |
009C: CALL 004 |
.................... output_low(PIN_B5); |
009D: BSF 03.5 |
009E: BCF 06.5 |
009F: BCF 03.5 |
00A0: BCF 06.5 |
.................... |
.................... output_low(PIN_A2); // vypni vsechno |
00A1: BSF 03.5 |
00A2: BCF 05.2 |
00A3: BCF 03.5 |
00A4: BCF 05.2 |
.................... output_low(PIN_A3); |
00A5: BSF 03.5 |
00A6: BCF 05.3 |
00A7: BCF 03.5 |
00A8: BCF 05.3 |
.................... output_low(PIN_B5); |
00A9: BSF 03.5 |
00AA: BCF 06.5 |
00AB: BCF 03.5 |
00AC: BCF 06.5 |
.................... |
.................... output_low(RESET); // zapnuti resetu od supervisoru |
00AD: BSF 03.5 |
00AE: BCF 06.0 |
00AF: BCF 03.5 |
00B0: BCF 06.0 |
.................... } |
.................... |
00B1: SLEEP |