CCS PCM C Compiler, Version 3.245, 27853 11-V-08 12:42Filename: D:\MLAB_E\projekty\rotacni_display\SW\infra\infra.lstROM used: 526 words (6%)Largest free fragment is 2048RAM used: 28 (16%) at main() level37 (21%) worst caseStack: 3 worst case (2 in main + 1 for interrupts)*0000: MOVLW 000001: MOVWF 0A0002: GOTO 1810003: NOP0004: MOVWF 7F0005: SWAPF 03,W0006: CLRF 030007: MOVWF 210008: MOVF 0A,W0009: MOVWF 20000A: CLRF 0A000B: MOVF 04,W000C: MOVWF 22000D: MOVF 77,W000E: MOVWF 23000F: MOVF 78,W0010: MOVWF 240011: MOVF 79,W0012: MOVWF 250013: MOVF 7A,W0014: MOVWF 260015: MOVF 7B,W0016: MOVWF 270017: BCF 03.70018: BCF 03.50019: MOVLW 8C001A: MOVWF 04001B: BTFSS 00.5001C: GOTO 01F001D: BTFSC 0C.5001E: GOTO 032001F: MOVF 22,W0020: MOVWF 040021: MOVF 23,W0022: MOVWF 770023: MOVF 24,W0024: MOVWF 780025: MOVF 25,W0026: MOVWF 790027: MOVF 26,W0028: MOVWF 7A0029: MOVF 27,W002A: MOVWF 7B002B: MOVF 20,W002C: MOVWF 0A002D: SWAPF 21,W002E: MOVWF 03002F: SWAPF 7F,F0030: SWAPF 7F,W0031: RETFIE0032: BCF 0A.30033: BCF 0A.40034: GOTO 0ED.................... #include ".\infra.h".................... #include <16F877A.h>.................... //////// Standard Header file for the PIC16F877A device ////////////////.................... #device PIC16F877A.................... #list........................................ #device adc=8........................................ #FUSES WDT //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)*0104: MOVLW 390105: MOVWF 040106: MOVF 00,W0107: BTFSC 03.20108: GOTO 11A0109: MOVLW 01010A: MOVWF 78010B: MOVLW BF010C: MOVWF 77010D: CLRWDT010E: DECFSZ 77,F010F: GOTO 10D0110: DECFSZ 78,F0111: GOTO 10B0112: MOVLW 4A0113: MOVWF 770114: DECFSZ 77,F0115: GOTO 1140116: NOP0117: CLRWDT0118: DECFSZ 00,F0119: GOTO 109011A: BCF 0A.3011B: BCF 0A.4011C: GOTO 14E (RETURN).................... #use rs232(baud=600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)................................................................................ #define MAX_SLOVO 10 // Maximalni pocet znaku ve slovu........................................ int8 napis[MAX_SLOVO+1];.................... int8 otacky;........................................ const int8 logo[MAX_SLOVO+1]={'[','^','_','_',']',96,'^','_','_','a',0}; // [blesk] E4A [blesk].................... const int8 rok[MAX_SLOVO+1]={'[','[',92,'[','E',']','A','[',92,'[',0}; // 2004-2008........................................ #int_RDA.................... void RDA_isr(void).................... {.................... int n;.................... output_B(0x55);*00ED: BSF 03.500EE: CLRF 0600EF: MOVLW 5500F0: BCF 03.500F1: MOVWF 06.................... for(n=0;n<MAX_SLOVO;n++)00F2: CLRF 3E00F3: MOVF 3E,W00F4: SUBLW 0900F5: BTFSS 03.000F6: GOTO 100.................... {.................... napis[n]=getc();00F7: MOVLW 2800F8: ADDWF 3E,W00F9: MOVWF 0400FA: BTFSS 0C.500FB: GOTO 0FA00FC: MOVF 1A,W00FD: MOVWF 00.................... }00FE: INCF 3E,F00FF: GOTO 0F3.................... }....................0100: BCF 0C.50101: BCF 0A.30102: BCF 0A.40103: GOTO 01F.................... void LED_print().................... {.................... unsigned int slovo,pismeno,sloupec,j;........................................ const int8 pis[33*5]={0b00000001,0b11110110,0b11110110,0b11110110,0b00000001, //A.................... 0b00000000,0b01110110,0b01110110,0b01110110,0b10001001, //B.................... 0b10000001,0b01111110,0b01111110,0b01111110,0b10111101, //C.................... 0b00000000,0b01111110,0b01111110,0b01111110,0b10000001, //D.................... 0b00000000,0b01110110,0b01110110,0b01111110,0b01111110, //E.................... 0b00000000,0b11110110,0b11110110,0b11111110,0b11111110, //F.................... 0b10000001,0b01111110,0b01110110,0b01110110,0b10000101, //G.................... 0b00000000,0b11110111,0b11110111,0b11110111,0b00000000, //H.................... 0b01111110,0b01111110,0b00000000,0b01111110,0b01111110, //I.................... 0b10111110,0b01111110,0b01111110,0b01111110,0b10000000, //J.................... 0b00000000,0b11110111,0b11110111,0b11101011,0b00011100, //K.................... 0b00000000,0b01111111,0b01111111,0b01111111,0b01111111, //L.................... 0b00000000,0b11111110,0b11110000,0b11111110,0b00000000, //M.................... 0b00000000,0b11101111,0b11011111,0b10111111,0b00000000, //N.................... 0b10000001,0b01111110,0b01111110,0b01111110,0b10000001, //O.................... 0b00000000,0b11110110,0b11110110,0b11110110,0b11111001, //P.................... 0b10000001,0b01111110,0b01111110,0b01111110,0b00000001, //Q.................... 0b00000000,0b11110110,0b11110110,0b11110110,0b00001001, //R.................... 0b10111001,0b01110110,0b01110110,0b01110110,0b10001101, //S.................... 0b11111110,0b11111110,0b00000000,0b11111110,0b11111110, //T.................... 0b10000000,0b01111111,0b01111111,0b01111111,0b10000000, //U.................... 0b11000000,0b10111111,0b01111111,0b10111111,0b11000000, //V.................... 0b10000000,0b01111111,0b10000000,0b01111111,0b10000000, //W.................... 0b00011100,0b11101011,0b11110111,0b11101011,0b00011100, //X.................... 0b11111000,0b11110111,0b00000111,0b11110111,0b11111000, //Y.................... 0b00011110,0b01101110,0b01110110,0b01111010,0b01111100, //Z.................... 0b11111111,0b11111111,0b11111111,0b11111111,0b11111111, //mezera.................... 0b00010111,0b00110011,0b01010101,0b11100110,0b11110111, //blesk.................... 0b11110000,0b11110111,0b11110111,0b00000001,0b11110111, //4.................... 0b00111101,0b01011110,0b01101110,0b01110110,0b01111001, //2.................... 0b00000000,0b01111110,0b01111110,0b01111110,0b00000000, //0.................... 0b11110111,0b11110111,0b11110111,0b11110111,0b11110111, //pomlka.................... 0b10001001,0b01110110,0b01110110,0b01110110,0b10001001, //8.................... };.................... while(read_adc()<9); // Cekani na magnet*0144: BSF 1F.20145: BTFSC 1F.20146: GOTO 1450147: MOVF 1E,W0148: SUBLW 080149: BTFSC 03.0014A: GOTO 144.................... delay_ms(10);014B: MOVLW 0A014C: MOVWF 39014D: GOTO 104........................................ for(pismeno=0;pismeno<MAX_SLOVO;pismeno++)014E: CLRF 36014F: MOVF 36,W0150: SUBLW 090151: BTFSS 03.00152: GOTO 17E.................... {.................... for(sloupec=0;sloupec<5;sloupec++)0153: CLRF 370154: MOVF 37,W0155: SUBLW 040156: BTFSS 03.00157: GOTO 172.................... {.................... output_B(pis[(napis[pismeno]-0x41)*5+sloupec]);0158: MOVLW 280159: ADDWF 36,W015A: MOVWF 04015B: MOVLW 41015C: SUBWF 00,W015D: MOVWF 3B015E: MOVWF 3C015F: MOVLW 050160: MOVWF 3D0161: GOTO 11D0162: MOVF 37,W0163: ADDWF 78,W0164: CALL 0440165: MOVWF 390166: BSF 03.50167: CLRF 060168: BCF 03.50169: MOVF 39,W016A: MOVWF 06.................... delay_us(500);016B: CLRWDT016C: MOVLW A6016D: MOVWF 77016E: DECFSZ 77,F016F: GOTO 16E.................... }0170: INCF 37,F0171: GOTO 154.................... output_B(0xFF);0172: BSF 03.50173: CLRF 060174: MOVLW FF0175: BCF 03.50176: MOVWF 06.................... delay_us(500);0177: CLRWDT0178: MOVLW A60179: MOVWF 77017A: DECFSZ 77,F017B: GOTO 17A.................... }017C: INCF 36,F017D: GOTO 14F.................... }017E: BCF 0A.3017F: BCF 0A.40180: GOTO 1FC (RETURN)........................................ void main().................... {0181: CLRF 040182: MOVLW 1F0183: ANDWF 03,F0184: MOVLW 670185: BSF 03.50186: MOVWF 190187: MOVLW 220188: MOVWF 180189: MOVLW 90018A: BCF 03.5018B: MOVWF 18018C: BSF 03.5018D: BSF 1F.0018E: BSF 1F.1018F: BSF 1F.20190: BCF 1F.30191: MOVLW 070192: MOVWF 1C............................................................ setup_adc_ports(AN0);*0196: BSF 03.50197: BCF 1F.00198: BSF 1F.10199: BSF 1F.2019A: BSF 1F.3.................... setup_adc(ADC_CLOCK_INTERNAL);019B: BCF 1F.6019C: BCF 03.5019D: BSF 1F.6019E: BSF 1F.7019F: BSF 03.501A0: BCF 1F.701A1: BCF 03.501A2: BSF 1F.0.................... setup_psp(PSP_DISABLED);01A3: BSF 03.501A4: BCF 09.4.................... setup_spi(SPI_SS_DISABLED);*0193: MOVLW FF0194: BCF 03.50195: MOVWF 34*01A5: BCF 03.501A6: BCF 14.501A7: BCF 34.501A8: MOVF 34,W01A9: BSF 03.501AA: MOVWF 0701AB: BCF 03.501AC: BSF 34.401AD: MOVF 34,W01AE: BSF 03.501AF: MOVWF 0701B0: BCF 03.501B1: BCF 34.301B2: MOVF 34,W01B3: BSF 03.501B4: MOVWF 0701B5: MOVLW 0101B6: BCF 03.501B7: MOVWF 1401B8: MOVLW 0001B9: BSF 03.501BA: MOVWF 14.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);01BB: MOVF 01,W01BC: ANDLW C701BD: IORLW 0801BE: MOVWF 01.................... setup_wdt(WDT_2304MS);01BF: MOVLW 0F01C0: MOVWF 7701C1: MOVLW 0701C2: BCF 03.501C3: CLRF 0101C4: MOVLW 8101C5: MOVWF 0401C6: MOVF 00,W01C7: ANDLW F001C8: IORLW 0701C9: MOVWF 0001CA: CLRWDT01CB: MOVF 00,W01CC: ANDLW F701CD: BTFSC 77.301CE: ANDLW F001CF: IORWF 77,W01D0: MOVWF 00.................... setup_timer_1(T1_DISABLED);01D1: CLRF 10.................... setup_timer_2(T2_DISABLED,0,1);01D2: MOVLW 0001D3: MOVWF 7801D4: MOVWF 1201D5: MOVLW 0001D6: BSF 03.501D7: MOVWF 12.................... setup_comparator(NC_NC_NC_NC);01D8: MOVLW 0701D9: MOVWF 1C01DA: MOVF 05,W01DB: CLRWDT01DC: MOVLW 0201DD: MOVWF 7701DE: DECFSZ 77,F01DF: GOTO 1DE01E0: NOP01E1: NOP01E2: MOVF 1C,W01E3: BCF 03.501E4: BCF 0D.6.................... setup_vref(FALSE);01E5: BSF 03.501E6: CLRF 1D........................................ enable_interrupts(INT_RDA);01E7: BSF 0C.5.................... enable_interrupts(GLOBAL);01E8: MOVLW C001E9: BCF 03.501EA: IORWF 0B,F........................................ set_adc_channel(0); // Prevodnik pro Hall01EB: MOVLW 0001EC: MOVWF 7801ED: MOVF 1F,W01EE: ANDLW C701EF: IORWF 78,W01F0: MOVWF 1F.................... output_B(0xFF); // Zhasneme01F1: BSF 03.501F2: CLRF 0601F3: MOVLW FF01F4: BCF 03.501F5: MOVWF 06........................................ otacky=0;01F6: CLRF 33.................... napis[0]=0;01F7: CLRF 28........................................ while(TRUE).................... {.................... if (napis[0]!=0)01F8: MOVF 28,F01F9: BTFSC 03.201FA: GOTO 1FD.................... {.................... LED_print();01FB: GOTO 144.................... }.................... else01FC: GOTO 20C.................... {.................... strcpy(napis,logo);01FD: CLRF 3501FE: CLRF 3601FF: MOVLW 280200: MOVWF 040201: MOVF 35,W0202: ADDWF 04,F0203: MOVF 36,W0204: CALL 0350205: MOVWF 000206: IORLW 000207: BTFSC 03.20208: GOTO 20C0209: INCF 36,F020A: INCF 35,F020B: GOTO 1FF.................... }.................... }020C: GOTO 1F8.................... }020D: SLEEPConfiguration Fuses:Word 1: 3F3D XT WDT NOPUT NODEBUG NOPROTECT NOBROWNOUT NOLVP NOCPD NOWRT