CCS PCM C Compiler, Version 4.059d, 15399 03-III-07 19:39Filename: main.lstROM used: 252 words (12%)Largest free fragment is 1796RAM used: 8 (2%) at main() level8 (2%) worst caseStack: 0 locations*0000: MOVLW 000001: MOVWF 0A0002: GOTO 0040003: NOP.................... /**** Analog to Digital Converter ****/.................... #include "main.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 WRT_50% //Lower half of Program Memory is Write Protected........................................ #use delay(clock=4000000,RESTART_WDT).................... #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)................................................................................ #define LED1 PIN_A2.................... #define LED2 PIN_A3 // LEDky.................... #define LED3 PIN_A5.................... #define CIDLO 8 // Port A/D prevodniku.................... #define TAD 8 // Doba na prevod jednoho bitu........................................ void main().................... {0004: CLRF 040005: BCF 03.70006: MOVLW 1F0007: ANDWF 03,F0008: MOVLW 190009: BSF 03.5000A: MOVWF 19000B: MOVLW A6000C: MOVWF 18000D: MOVLW 90000E: BCF 03.5000F: MOVWF 180010: BSF 03.50011: BSF 1F.00012: BSF 1F.10013: BSF 1F.20014: BCF 1F.30015: MOVLW 070016: MOVWF 1C.................... int8 t; // Promenna pro nacteni hodnoty z potenciometru........................................ setup_adc_ports(AN0); // Povolime analogovy vstup 0*001A: BSF 03.5001B: BCF 1F.0001C: BSF 1F.1001D: BSF 1F.2001E: BSF 1F.3.................... setup_adc(ADC_CLOCK_DIV_8); // Delicka hodin pro prevodnik001F: BCF 1F.60020: BCF 03.50021: BSF 1F.60022: BCF 1F.70023: BSF 03.50024: BCF 1F.70025: BCF 03.50026: BSF 1F.0.................... // setup_psp(PSP_DISABLED); // Tento HW ma pouze PIC16F877A.................... setup_spi(SPI_SS_DISABLED);*0017: MOVLW FF0018: BCF 03.50019: MOVWF 20*0027: BCF 14.50028: BCF 20.50029: MOVF 20,W002A: BSF 03.5002B: MOVWF 07002C: BCF 03.5002D: BSF 20.4002E: MOVF 20,W002F: BSF 03.50030: MOVWF 070031: BCF 03.50032: BCF 20.30033: MOVF 20,W0034: BSF 03.50035: MOVWF 070036: MOVLW 010037: BCF 03.50038: MOVWF 140039: MOVLW 00003A: BSF 03.5003B: MOVWF 14.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);003C: MOVF 01,W003D: ANDLW C7003E: IORLW 08003F: MOVWF 01.................... setup_timer_1(T1_DISABLED);0040: BCF 03.50041: CLRF 10.................... setup_timer_2(T2_DISABLED,0,1);0042: MOVLW 000043: MOVWF 780044: MOVWF 120045: MOVLW 000046: BSF 03.50047: MOVWF 12.................... setup_comparator(NC_NC_NC_NC);0048: MOVLW 070049: MOVWF 1C004A: MOVF 05,W004B: CLRWDT004C: MOVLW 02004D: MOVWF 77004E: DECFSZ 77,F004F: GOTO 04E0050: GOTO 0510051: MOVF 1C,W0052: BCF 03.50053: BCF 0D.6.................... setup_vref(FALSE);0054: BSF 03.50055: CLRF 1D........................................ set_adc_channel(CIDLO); // Pripojime cidlo na A/D prevodnik0056: MOVLW 400057: MOVWF 780058: BCF 03.50059: MOVF 1F,W005A: ANDLW C7005B: IORWF 78,W005C: MOVWF 1F.................... delay_us(20); // Pockame na nabiti kapacit po prepnuti005D: CLRWDT005E: MOVLW 06005F: MOVWF 770060: DECFSZ 77,F0061: GOTO 060.................... //t=read_adc(); // Prvni precteni cidla........................................ while(TRUE){.................... t=read_adc(); // Prvni precteni cidla0062: BSF 1F.20063: BTFSC 1F.20064: GOTO 0630065: MOVF 1E,W0066: MOVWF 21............................................................ if(t>00&&t<50){0067: MOVF 21,F0068: BTFSC 03.20069: GOTO 073006A: MOVF 21,W006B: SUBLW 31006C: BTFSS 03.0006D: GOTO 073.................... output_high(LED1);006E: BSF 03.5006F: BCF 05.20070: BCF 03.50071: BSF 05.2.................... //rozsvit modrou.................... }.................... else if(t>50&&t<80){0072: GOTO 0FA0073: MOVF 21,W0074: SUBLW 320075: BTFSC 03.00076: GOTO 0A40077: MOVF 21,W0078: SUBLW 4F0079: BTFSS 03.0007A: GOTO 0A4.................... output_high (LED1); // Zhasneme LED007B: BSF 03.5007C: BCF 05.2007D: BCF 03.5007E: BSF 05.2.................... delay_us(100);007F: CLRWDT0080: MOVLW 200081: MOVWF 770082: DECFSZ 77,F0083: GOTO 0820084: GOTO 085.................... output_low (LED1); // Rozsvitime LED0085: BSF 03.50086: BCF 05.20087: BCF 03.50088: BCF 05.2.................... delay_us(100);0089: CLRWDT008A: MOVLW 20008B: MOVWF 77008C: DECFSZ 77,F008D: GOTO 08C008E: GOTO 08F.................... output_low (LED2); // Rozsvitime LED008F: BSF 03.50090: BCF 05.30091: BCF 03.50092: BCF 05.3.................... delay_us(100);0093: CLRWDT0094: MOVLW 200095: MOVWF 770096: DECFSZ 77,F0097: GOTO 0960098: GOTO 099.................... output_high (LED2); // Zhasneme LED0099: BSF 03.5009A: BCF 05.3009B: BCF 03.5009C: BSF 05.3.................... delay_us(100);009D: CLRWDT009E: MOVLW 20009F: MOVWF 7700A0: DECFSZ 77,F00A1: GOTO 0A000A2: GOTO 0A3.................... //rozsvit modrou+zelenou.................... }.................... else if(t>80&&t<120){00A3: GOTO 0FA00A4: MOVF 21,W00A5: SUBLW 5000A6: BTFSC 03.000A7: GOTO 0C100A8: MOVF 21,W00A9: SUBLW 7700AA: BTFSS 03.000AB: GOTO 0C1.................... //output_high(LED2);.................... //rozvit zelenou.................... output_low (LED2); // Rozsvitime LED00AC: BSF 03.500AD: BCF 05.300AE: BCF 03.500AF: BCF 05.3.................... delay_us(100);00B0: CLRWDT00B1: MOVLW 2000B2: MOVWF 7700B3: DECFSZ 77,F00B4: GOTO 0B300B5: GOTO 0B6.................... output_high (LED2); // Zhasneme LED00B6: BSF 03.500B7: BCF 05.300B8: BCF 03.500B9: BSF 05.3.................... delay_us(100);00BA: CLRWDT00BB: MOVLW 2000BC: MOVWF 7700BD: DECFSZ 77,F00BE: GOTO 0BD00BF: GOTO 0C0.................... }.................... else if(t>120&&t<160){00C0: GOTO 0FA00C1: MOVF 21,W00C2: SUBLW 7800C3: BTFSC 03.000C4: GOTO 0F200C5: MOVF 21,W00C6: SUBLW 9F00C7: BTFSS 03.000C8: GOTO 0F2.................... output_high (LED3); // Zhasneme LED00C9: BSF 03.500CA: BCF 05.500CB: BCF 03.500CC: BSF 05.5.................... delay_us(100);00CD: CLRWDT00CE: MOVLW 2000CF: MOVWF 7700D0: DECFSZ 77,F00D1: GOTO 0D000D2: GOTO 0D3.................... output_low (LED3); // Rozsvitime LED00D3: BSF 03.500D4: BCF 05.500D5: BCF 03.500D6: BCF 05.5.................... delay_us(100);00D7: CLRWDT00D8: MOVLW 2000D9: MOVWF 7700DA: DECFSZ 77,F00DB: GOTO 0DA00DC: GOTO 0DD.................... output_low (LED2); // Rozsvitime LED00DD: BSF 03.500DE: BCF 05.300DF: BCF 03.500E0: BCF 05.3.................... delay_us(100);00E1: CLRWDT00E2: MOVLW 2000E3: MOVWF 7700E4: DECFSZ 77,F00E5: GOTO 0E400E6: GOTO 0E7.................... output_high (LED2); // Zhasneme LED00E7: BSF 03.500E8: BCF 05.300E9: BCF 03.500EA: BSF 05.3.................... delay_us(100);00EB: CLRWDT00EC: MOVLW 2000ED: MOVWF 7700EE: DECFSZ 77,F00EF: GOTO 0EE00F0: GOTO 0F1.................... //rozsvit zelenou+cervenou.................... }.................... else if(t>160){00F1: GOTO 0FA00F2: MOVF 21,W00F3: SUBLW A000F4: BTFSC 03.000F5: GOTO 0FA.................... output_high(LED3);00F6: BSF 03.500F7: BCF 05.500F8: BCF 03.500F9: BSF 05.5.................... //rozsvit cervenou.................... }........................................ }}00FA: GOTO 062........................................00FB: SLEEPConfiguration Fuses:Word 1: 3939 XT NOWDT NOPUT NODEBUG NOPROTECT NOBROWNOUT NOLVP NOCPD WRT_50%