CCS PCM C Compiler, Version 4.058s, 42064 04-V-08 15:12
Filename: C:\RS\Prog\alarm\alarm.lst
ROM used: 263 words (3%)
Largest free fragment is 2048
RAM used: 18 (5%) at main() level
21 (6%) worst case
Stack: 3 worst case (1 in main + 2 for interrupts)
*
0000: MOVLW 00
0001: MOVWF 0A
0002: GOTO 068
0003: NOP
0004: MOVWF 7F
0005: SWAPF 03,W
0006: CLRF 03
0007: MOVWF 21
0008: MOVF 0A,W
0009: MOVWF 20
000A: CLRF 0A
000B: MOVF 04,W
000C: MOVWF 22
000D: MOVF 77,W
000E: MOVWF 23
000F: MOVF 78,W
0010: MOVWF 24
0011: MOVF 79,W
0012: MOVWF 25
0013: MOVF 7A,W
0014: MOVWF 26
0015: MOVF 7B,W
0016: MOVWF 27
0017: BCF 03.7
0018: BCF 03.5
0019: MOVLW 8C
001A: MOVWF 04
001B: BTFSS 00.5
001C: GOTO 01F
001D: BTFSC 0C.5
001E: GOTO 032
001F: MOVF 22,W
0020: MOVWF 04
0021: MOVF 23,W
0022: MOVWF 77
0023: MOVF 24,W
0024: MOVWF 78
0025: MOVF 25,W
0026: MOVWF 79
0027: MOVF 26,W
0028: MOVWF 7A
0029: MOVF 27,W
002A: MOVWF 7B
002B: MOVF 20,W
002C: MOVWF 0A
002D: SWAPF 21,W
002E: MOVWF 03
002F: SWAPF 7F,F
0030: SWAPF 7F,W
0031: RETFIE
0032: BCF 0A.3
0033: BCF 0A.4
0034: GOTO 04D
.................... #include "C:\RS\Prog\alarm\alarm.h"
.................... #include <16F877A.h>
.................... //////// Standard Header file for the PIC16F877A device ////////////////
.................... #device PIC16F877A
.................... #list
....................
.................... #device adc=8
....................
.................... #FUSES NOWDT //No Watch Dog Timer
.................... #FUSES XT //Crystal osc <= 4mhz
.................... #FUSES NOPUT //No Power Up Timer
.................... #FUSES NOPROTECT //Code not protected from reading
.................... #FUSES NODEBUG //No Debug mode for ICD
.................... #FUSES NOBROWNOUT //No brownout reset
.................... #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
.................... #FUSES NOCPD //No EE protection
.................... #FUSES NOWRT //Program memory not write protected
....................
.................... #use delay(clock=4000000,RESTART_WDT)
0035: MOVLW 2E
0036: MOVWF 04
0037: BCF 03.7
0038: MOVF 00,W
0039: BTFSC 03.2
003A: GOTO 04C
003B: MOVLW 01
003C: MOVWF 78
003D: MOVLW BF
003E: MOVWF 77
003F: CLRWDT
0040: DECFSZ 77,F
0041: GOTO 03F
0042: DECFSZ 78,F
0043: GOTO 03D
0044: MOVLW 4A
0045: MOVWF 77
0046: DECFSZ 77,F
0047: GOTO 046
0048: NOP
0049: CLRWDT
004A: DECFSZ 00,F
004B: GOTO 03B
004C: RETLW 00
.................... #use rs232(baud=1200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
....................
....................
....................
.................... #int_RDA
.................... void RDA_isr(void)
.................... {
.................... while(TRUE)
.................... {
.................... output_high(PIN_A2);
004D: BSF 03.5
004E: BCF 05.2
004F: BCF 03.5
0050: BSF 05.2
.................... delay_ms(500);
0051: MOVLW 02
0052: MOVWF 2D
0053: MOVLW FA
0054: MOVWF 2E
0055: CALL 035
0056: DECFSZ 2D,F
0057: GOTO 053
.................... output_low(PIN_A2);
0058: BSF 03.5
0059: BCF 05.2
005A: BCF 03.5
005B: BCF 05.2
.................... delay_ms(500);
005C: MOVLW 02
005D: MOVWF 2D
005E: MOVLW FA
005F: MOVWF 2E
0060: CALL 035
0061: DECFSZ 2D,F
0062: GOTO 05E
.................... }
0063: GOTO 04D
.................... }
....................
0064: BCF 0C.5
0065: BCF 0A.3
0066: BCF 0A.4
0067: GOTO 01F
.................... void main()
.................... {
0068: CLRF 04
0069: BCF 03.7
006A: MOVLW 1F
006B: ANDWF 03,F
006C: MOVLW 33
006D: BSF 03.5
006E: MOVWF 19
006F: MOVLW A2
0070: MOVWF 18
0071: MOVLW 90
0072: BCF 03.5
0073: MOVWF 18
0074: BSF 03.5
0075: BSF 1F.0
0076: BSF 1F.1
0077: BSF 1F.2
0078: BCF 1F.3
0079: MOVLW 07
007A: MOVWF 1C
.................... int1 pipak;
....................
.................... port_b_pullups(TRUE);
*
007E: BSF 03.5
007F: BCF 01.7
.................... setup_adc_ports(NO_ANALOGS);
0080: BSF 1F.0
0081: BSF 1F.1
0082: BSF 1F.2
0083: BCF 1F.3
.................... setup_adc(ADC_OFF);
0084: BCF 03.5
0085: BCF 1F.0
.................... setup_psp(PSP_DISABLED);
0086: BSF 03.5
0087: BCF 09.4
.................... setup_spi(SPI_SS_DISABLED);
*
007B: MOVLW FF
007C: BCF 03.5
007D: MOVWF 29
*
0088: BCF 03.5
0089: BCF 14.5
008A: BCF 29.5
008B: MOVF 29,W
008C: BSF 03.5
008D: MOVWF 07
008E: BCF 03.5
008F: BSF 29.4
0090: MOVF 29,W
0091: BSF 03.5
0092: MOVWF 07
0093: BCF 03.5
0094: BCF 29.3
0095: MOVF 29,W
0096: BSF 03.5
0097: MOVWF 07
0098: MOVLW 01
0099: BCF 03.5
009A: MOVWF 14
009B: MOVLW 00
009C: BSF 03.5
009D: MOVWF 14
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
009E: MOVF 01,W
009F: ANDLW C7
00A0: IORLW 08
00A1: MOVWF 01
.................... setup_timer_1(T1_DISABLED);
00A2: BCF 03.5
00A3: CLRF 10
.................... setup_timer_2(T2_DISABLED,0,1);
00A4: MOVLW 00
00A5: MOVWF 78
00A6: MOVWF 12
00A7: MOVLW 00
00A8: BSF 03.5
00A9: MOVWF 12
.................... setup_comparator(NC_NC_NC_NC);
00AA: MOVLW 07
00AB: MOVWF 1C
00AC: MOVF 05,W
00AD: CLRWDT
00AE: MOVLW 02
00AF: MOVWF 77
00B0: DECFSZ 77,F
00B1: GOTO 0B0
00B2: GOTO 0B3
00B3: MOVF 1C,W
00B4: BCF 03.5
00B5: BCF 0D.6
.................... setup_vref(FALSE);
00B6: BSF 03.5
00B7: CLRF 1D
....................
.................... enable_interrupts(INT_RDA);
00B8: BSF 0C.5
.................... enable_interrupts(GLOBAL);
00B9: MOVLW C0
00BA: BCF 03.5
00BB: IORWF 0B,F
....................
.................... While(TRUE)
.................... {
.................... if(!input(PIN_B0))
00BC: BSF 03.5
00BD: BSF 06.0
00BE: BCF 03.5
00BF: BTFSC 06.0
00C0: GOTO 0EA
.................... {
.................... while(!input(PIN_B0))
.................... {
00C1: BSF 03.5
00C2: BSF 06.0
00C3: BCF 03.5
00C4: BTFSC 06.0
00C5: GOTO 0E9
.................... output_high(PIN_A3);
00C6: BSF 03.5
00C7: BCF 05.3
00C8: BCF 03.5
00C9: BSF 05.3
.................... delay_ms(500);
00CA: MOVLW 02
00CB: MOVWF 2B
00CC: CLRF 28
00CD: BTFSC 0B.7
00CE: BSF 28.7
00CF: BCF 0B.7
00D0: MOVLW FA
00D1: MOVWF 2E
00D2: CALL 035
00D3: BTFSC 28.7
00D4: BSF 0B.7
00D5: DECFSZ 2B,F
00D6: GOTO 0CC
.................... output_low(PIN_A3);
00D7: BSF 03.5
00D8: BCF 05.3
00D9: BCF 03.5
00DA: BCF 05.3
.................... delay_ms(500);
00DB: MOVLW 02
00DC: MOVWF 2B
00DD: CLRF 28
00DE: BTFSC 0B.7
00DF: BSF 28.7
00E0: BCF 0B.7
00E1: MOVLW FA
00E2: MOVWF 2E
00E3: CALL 035
00E4: BTFSC 28.7
00E5: BSF 0B.7
00E6: DECFSZ 2B,F
00E7: GOTO 0DD
.................... }
00E8: GOTO 0C1
.................... }
.................... else
00E9: GOTO 105
.................... {
.................... while(TRUE)
.................... {
.................... delay_us(200);
00EA: CLRWDT
00EB: MOVLW 42
00EC: MOVWF 77
00ED: DECFSZ 77,F
00EE: GOTO 0ED
.................... pipak=~pipak; // Membrana reproduktoru sem/tam
00EF: MOVLW 01
00F0: XORWF 2A,F
.................... if(pipak)
00F1: BTFSS 2A.0
00F2: GOTO 0FC
.................... {
.................... output_high(PIN_A4);
00F3: BSF 03.5
00F4: BCF 05.4
00F5: BCF 03.5
00F6: BSF 05.4
.................... output_low(PIN_A5);
00F7: BSF 03.5
00F8: BCF 05.5
00F9: BCF 03.5
00FA: BCF 05.5
.................... }
.................... else
00FB: GOTO 104
.................... {
.................... output_low(PIN_A4);
00FC: BSF 03.5
00FD: BCF 05.4
00FE: BCF 03.5
00FF: BCF 05.4
.................... output_high(PIN_A5);
0100: BSF 03.5
0101: BCF 05.5
0102: BCF 03.5
0103: BSF 05.5
.................... }
.................... }
0104: GOTO 0EA
.................... }
.................... }
0105: GOTO 0BC
.................... }
0106: SLEEP
Configuration Fuses:
Word 1: 3F39 XT NOWDT NOPUT NODEBUG NOPROTECT NOBROWNOUT NOLVP NOCPD NOWRT