CCS PCM C Compiler, Version 4.058s, 42064 02-III-08 00:13
Filename: main.lst
ROM used: 285 words (3%)
Largest free fragment is 2048
RAM used: 11 (3%) at main() level
19 (5%) worst case
Stack: 1 locations
*
0000: MOVLW 00
0001: MOVWF 0A
0002: GOTO 076
0003: NOP
.................... #include "C:\RS\Schmitt\main.h"
.................... #include <16F876A.h>
.................... //////// Standard Header file for the PIC16F876A device ////////////////
.................... #device PIC16F876A
.................... #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 BROWNOUT //Reset when brownout detected
.................... #FUSES LVP //Low Voltage Programming on B3(PIC16) or B5(PIC18)
.................... #FUSES NOCPD //No EE protection
.................... #FUSES NOWRT //Program memory not write protected
....................
.................... #use delay(clock=4000000)
.................... #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
....................
....................
.................... #define mic input(PIN_A4)
.................... #define LED_ON output_low(PIN_A0)
.................... #define LED_OFF output_high(PIN_A0)
....................
.................... void main()
.................... {
0076: CLRF 04
0077: BCF 03.7
0078: MOVLW 1F
0079: ANDWF 03,F
007A: MOVLW 19
007B: BSF 03.5
007C: MOVWF 19
007D: MOVLW A6
007E: MOVWF 18
007F: MOVLW 90
0080: BCF 03.5
0081: MOVWF 18
0082: BSF 03.5
0083: BSF 1F.0
0084: BSF 1F.1
0085: BSF 1F.2
0086: BCF 1F.3
0087: MOVLW 07
0088: MOVWF 1C
.................... setup_adc_ports(NO_ANALOGS);
*
008C: BSF 03.5
008D: BSF 1F.0
008E: BSF 1F.1
008F: BSF 1F.2
0090: BCF 1F.3
.................... setup_adc(ADC_OFF);
0091: BCF 03.5
0092: BCF 1F.0
.................... setup_spi(SPI_SS_DISABLED);
*
0089: MOVLW FF
008A: BCF 03.5
008B: MOVWF 20
*
0093: BCF 14.5
0094: BCF 20.5
0095: MOVF 20,W
0096: BSF 03.5
0097: MOVWF 07
0098: BCF 03.5
0099: BSF 20.4
009A: MOVF 20,W
009B: BSF 03.5
009C: MOVWF 07
009D: BCF 03.5
009E: BCF 20.3
009F: MOVF 20,W
00A0: BSF 03.5
00A1: MOVWF 07
00A2: MOVLW 01
00A3: BCF 03.5
00A4: MOVWF 14
00A5: MOVLW 00
00A6: BSF 03.5
00A7: MOVWF 14
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
00A8: MOVF 01,W
00A9: ANDLW C7
00AA: IORLW 08
00AB: MOVWF 01
.................... setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
00AC: MOVLW 85
00AD: BCF 03.5
00AE: MOVWF 10
.................... setup_timer_2(T2_DISABLED,0,1);
00AF: MOVLW 00
00B0: MOVWF 78
00B1: MOVWF 12
00B2: MOVLW 00
00B3: BSF 03.5
00B4: MOVWF 12
.................... setup_comparator(NC_NC_NC_NC);
00B5: MOVLW 07
00B6: MOVWF 1C
00B7: MOVF 05,W
00B8: MOVLW 03
00B9: MOVWF 77
00BA: DECFSZ 77,F
00BB: GOTO 0BA
00BC: MOVF 1C,W
00BD: BCF 03.5
00BE: BCF 0D.6
.................... setup_vref(FALSE);
00BF: BSF 03.5
00C0: CLRF 1D
....................
.................... while(TRUE)
.................... {
.................... while(mic);
00C1: BSF 05.4
00C2: BCF 03.5
00C3: BTFSS 05.4
00C4: GOTO 0C7
00C5: BSF 03.5
00C6: GOTO 0C1
.................... while(!mic);
00C7: BSF 03.5
00C8: BSF 05.4
00C9: BCF 03.5
00CA: BTFSS 05.4
00CB: GOTO 0C7
.................... while(mic)
.................... {
00CC: BSF 03.5
00CD: BSF 05.4
00CE: BCF 03.5
00CF: BTFSS 05.4
00D0: GOTO 0DD
.................... set_timer1(0);
00D1: CLRF 0F
00D2: CLRF 0E
.................... LED_ON;
00D3: BSF 03.5
00D4: BCF 05.0
00D5: BCF 03.5
00D6: BCF 05.0
.................... while(mic);
00D7: BSF 03.5
00D8: BSF 05.4
00D9: BCF 03.5
00DA: BTFSC 05.4
00DB: GOTO 0D7
.................... }
00DC: GOTO 0CC
.................... while(!mic)
.................... {
00DD: BSF 03.5
00DE: BSF 05.4
00DF: BCF 03.5
00E0: BTFSC 05.4
00E1: GOTO 0EC
.................... LED_OFF;
00E2: BSF 03.5
00E3: BCF 05.0
00E4: BCF 03.5
00E5: BSF 05.0
.................... while(!mic);
00E6: BSF 03.5
00E7: BSF 05.4
00E8: BCF 03.5
00E9: BTFSS 05.4
00EA: GOTO 0E6
.................... }
00EB: GOTO 0DD
.................... printf("Perioda %5Lu us.\n\r",get_timer1());
00EC: MOVF 0F,W
00ED: MOVWF 7A
00EE: MOVF 0E,W
00EF: MOVWF 77
00F0: MOVF 0F,W
00F1: SUBWF 7A,W
00F2: BTFSS 03.2
00F3: GOTO 0EC
00F4: MOVF 77,W
00F5: MOVWF 21
00F6: MOVF 7A,W
00F7: MOVWF 22
00F8: CLRF 23
00F9: MOVF 23,W
00FA: CALL 004
00FB: INCF 23,F
00FC: MOVWF 77
00FD: MOVF 77,W
00FE: BTFSS 0C.4
00FF: GOTO 0FE
0100: MOVWF 19
0101: MOVLW 08
0102: SUBWF 23,W
0103: BTFSS 03.2
0104: GOTO 0F9
0105: MOVLW 00
0106: MOVWF 04
0107: MOVF 22,W
0108: MOVWF 25
0109: MOVF 21,W
010A: MOVWF 24
010B: GOTO 01B
010C: MOVLW 0C
010D: MOVWF 24
010E: MOVF 24,W
010F: CALL 004
0110: INCF 24,F
0111: MOVWF 77
0112: MOVF 77,W
0113: BTFSS 0C.4
0114: GOTO 113
0115: MOVWF 19
0116: MOVLW 12
0117: SUBWF 24,W
0118: BTFSS 03.2
0119: GOTO 10E
.................... }
011A: BSF 03.5
011B: GOTO 0C1
.................... }
011C: SLEEP
Configuration Fuses:
Word 1: 3FF9 XT NOWDT NOPUT NODEBUG NOPROTECT BROWNOUT LVP NOCPD NOWRT