CCS PCM C Compiler, Version 4.093, 5967 04-mrt-10 15:40 Filename: C:\Documents and Settings\Mijn documenten\Elektronica\C code\CCS Compiler\Timer0 interrupt\main.lst ROM used: 115 words (1%) Largest free fragment is 2048 RAM used: 16 (4%) at main() level 16 (4%) worst case Stack: 1 worst case (0 in main + 1 for interrupts) * 0000: MOVLW 00 0001: MOVWF 0A 0002: GOTO 046 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: BTFSS 0B.5 001A: GOTO 01D 001B: BTFSC 0B.2 001C: GOTO 030 001D: MOVF 22,W 001E: MOVWF 04 001F: MOVF 23,W 0020: MOVWF 77 0021: MOVF 24,W 0022: MOVWF 78 0023: MOVF 25,W 0024: MOVWF 79 0025: MOVF 26,W 0026: MOVWF 7A 0027: MOVF 27,W 0028: MOVWF 7B 0029: MOVF 20,W 002A: MOVWF 0A 002B: SWAPF 21,W 002C: MOVWF 03 002D: SWAPF 7F,F 002E: SWAPF 7F,W 002F: RETFIE 0030: BCF 0A.3 0031: BCF 0A.4 0032: GOTO 033 .................... #include "C:\Documents and Settings\Mijn documenten\Elektronica\C code\CCS Compiler\Timer0 interrupt\main.h" .................... #include <16F877A.h> .................... //////// Standard Header file for the PIC16F877A device //////////////// .................... #device PIC16F877A .................... #list .................... .................... .................... #FUSES NOWDT //No Watch Dog Timer .................... #FUSES XT //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD .................... #FUSES PUT //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 WRT_50% //Lower half of Program Memory is Write Protected .................... .................... #use delay(clock=4000000) .................... .................... .................... int8 x=0; * 0051: BCF 03.5 0052: CLRF 28 .................... .................... #int_RTCC .................... void RTCC_isr(void) .................... { .................... output_bit(pin_C3, !input(pin_C3)); * 0033: BSF 29.3 0034: MOVF 29,W 0035: BSF 03.5 0036: MOVWF 07 0037: BCF 03.5 0038: BTFSS 07.3 0039: GOTO 03C 003A: BCF 07.3 003B: GOTO 03D 003C: BSF 07.3 003D: BCF 29.3 003E: MOVF 29,W 003F: BSF 03.5 0040: MOVWF 07 .................... } .................... .................... 0041: BCF 03.5 0042: BCF 0B.2 0043: BCF 0A.3 0044: BCF 0A.4 0045: GOTO 01D .................... void main() .................... { 0046: CLRF 04 0047: BCF 03.7 0048: MOVLW 1F 0049: ANDWF 03,F 004A: BSF 03.5 004B: BSF 1F.0 004C: BSF 1F.1 004D: BSF 1F.2 004E: BCF 1F.3 004F: MOVLW 07 0050: MOVWF 1C .................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256); * 0055: BSF 03.5 0056: MOVF 01,W 0057: ANDLW C0 0058: IORLW 07 0059: MOVWF 01 .................... enable_interrupts(INT_RTCC); 005A: BCF 03.5 005B: BSF 0B.5 .................... enable_interrupts(GLOBAL); 005C: MOVLW C0 005D: IORWF 0B,F .................... .................... .................... while(1) .................... { .................... x=get_timer0(); 005E: MOVF 01,W 005F: MOVWF 28 .................... .................... if(x<=128)output_high(pin_C2); 0060: MOVF 28,W 0061: SUBLW 80 0062: BTFSS 03.0 0063: GOTO 06B 0064: BCF 29.2 0065: MOVF 29,W 0066: BSF 03.5 0067: MOVWF 07 0068: BCF 03.5 0069: BSF 07.2 .................... else output_low(pin_C2); 006A: GOTO 071 006B: BCF 29.2 006C: MOVF 29,W 006D: BSF 03.5 006E: MOVWF 07 006F: BCF 03.5 0070: BCF 07.2 .................... } 0071: GOTO 05E .................... .................... } 0072: SLEEP Configuration Fuses: Word 1: 3931 XT NOWDT PUT NODEBUG NOPROTECT NOBROWNOUT NOLVP NOCPD WRT_50%