CCS PCM C Compiler, Version 3.245, 27853 11-V-08 11:01Filename: D:\MLAB_E\projekty\rotacni_display\SW\infra\infra.lstROM used: 595 words (7%)Largest free fragment is 2048RAM used: 36 (21%) at main() level38 (22%) worst caseStack: 2 worst case (1 in main + 1 for interrupts)*0000: MOVLW 000001: MOVWF 0A0002: GOTO 1490003: 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 0F6.................... #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)*010D: MOVLW 39010E: MOVWF 04010F: MOVF 00,W0110: BTFSC 03.20111: GOTO 1230112: MOVLW 010113: MOVWF 780114: MOVLW BF0115: MOVWF 770116: CLRWDT0117: DECFSZ 77,F0118: GOTO 1160119: DECFSZ 78,F011A: GOTO 114011B: MOVLW 4A011C: MOVWF 77011D: DECFSZ 77,F011E: GOTO 11D011F: NOP0120: CLRWDT0121: DECFSZ 00,F0122: GOTO 1120123: RETLW 00.................... #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[2*MAX_SLOVO] ={'[','[',92,'[','E',']','A','[',92,'[','[','^','_','_',']',96,'^','_','_','a'}; // [blesk] E4A [blesk] , 2004-2008........................................ #int_RDA.................... void RDA_isr(void).................... {.................... int n;.................... output_B(0x55);*00F6: BSF 03.500F7: CLRF 0600F8: MOVLW 5500F9: BCF 03.500FA: MOVWF 06.................... for(n=0;n<MAX_SLOVO;n++)00FB: CLRF 3F00FC: MOVF 3F,W00FD: SUBLW 0900FE: BTFSS 03.000FF: GOTO 109.................... {.................... napis[n]=getc();0100: MOVLW 280101: ADDWF 3F,W0102: MOVWF 040103: BTFSS 0C.50104: GOTO 1030105: MOVF 1A,W0106: MOVWF 00.................... }0107: INCF 3F,F0108: GOTO 0FC.................... }....................0109: BCF 0C.5010A: BCF 0A.3010B: BCF 0A.4010C: GOTO 01F.................... void main().................... {*0149: CLRF 04014A: MOVLW 1F014B: ANDWF 03,F014C: MOVLW 67014D: BSF 03.5014E: MOVWF 19014F: MOVLW 220150: MOVWF 180151: MOVLW 900152: BCF 03.50153: MOVWF 180154: BSF 03.50155: BSF 1F.00156: BSF 1F.10157: BSF 1F.20158: BCF 1F.30159: MOVLW 07015A: MOVWF 1C........................................ 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.................... };........................................ setup_adc_ports(AN0);*015E: BSF 03.5015F: BCF 1F.00160: BSF 1F.10161: BSF 1F.20162: BSF 1F.3.................... setup_adc(ADC_CLOCK_INTERNAL);0163: BCF 1F.60164: BCF 03.50165: BSF 1F.60166: BSF 1F.70167: BSF 03.50168: BCF 1F.70169: BCF 03.5016A: BSF 1F.0.................... setup_psp(PSP_DISABLED);016B: BSF 03.5016C: BCF 09.4.................... setup_spi(SPI_SS_DISABLED);*015B: MOVLW FF015C: BCF 03.5015D: MOVWF 34*016D: BCF 03.5016E: BCF 14.5016F: BCF 34.50170: MOVF 34,W0171: BSF 03.50172: MOVWF 070173: BCF 03.50174: BSF 34.40175: MOVF 34,W0176: BSF 03.50177: MOVWF 070178: BCF 03.50179: BCF 34.3017A: MOVF 34,W017B: BSF 03.5017C: MOVWF 07017D: MOVLW 01017E: BCF 03.5017F: MOVWF 140180: MOVLW 000181: BSF 03.50182: MOVWF 14.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);0183: MOVF 01,W0184: ANDLW C70185: IORLW 080186: MOVWF 01.................... setup_wdt(WDT_2304MS);0187: MOVLW 0F0188: MOVWF 770189: MOVLW 07018A: BCF 03.5018B: CLRF 01018C: MOVLW 81018D: MOVWF 04018E: MOVF 00,W018F: ANDLW F00190: IORLW 070191: MOVWF 000192: CLRWDT0193: MOVF 00,W0194: ANDLW F70195: BTFSC 77.30196: ANDLW F00197: IORWF 77,W0198: MOVWF 00.................... setup_timer_1(T1_DISABLED);0199: CLRF 10.................... setup_timer_2(T2_DISABLED,0,1);019A: MOVLW 00019B: MOVWF 78019C: MOVWF 12019D: MOVLW 00019E: BSF 03.5019F: MOVWF 12.................... setup_comparator(NC_NC_NC_NC);01A0: MOVLW 0701A1: MOVWF 1C01A2: MOVF 05,W01A3: CLRWDT01A4: MOVLW 0201A5: MOVWF 7701A6: DECFSZ 77,F01A7: GOTO 1A601A8: NOP01A9: NOP01AA: MOVF 1C,W01AB: BCF 03.501AC: BCF 0D.6.................... setup_vref(FALSE);01AD: BSF 03.501AE: CLRF 1D........................................ enable_interrupts(INT_RDA);01AF: BSF 0C.5.................... enable_interrupts(GLOBAL);01B0: MOVLW C001B1: BCF 03.501B2: IORWF 0B,F........................................ set_adc_channel(0); // Prevodnik pro Hall01B3: MOVLW 0001B4: MOVWF 7801B5: MOVF 1F,W01B6: ANDLW C701B7: IORWF 78,W01B8: MOVWF 1F.................... output_B(0xFF); // Zhasneme01B9: BSF 03.501BA: CLRF 0601BB: MOVLW FF01BC: BCF 03.501BD: MOVWF 06........................................ otacky=0;01BE: CLRF 33.................... napis[0]=0;01BF: CLRF 28........................................ while(TRUE).................... {.................... while(napis[0]!=0).................... {01C0: MOVF 28,F01C1: BTFSC 03.201C2: GOTO 1FE.................... while(read_adc()<9); // Cekani na magnet01C3: BSF 1F.201C4: BTFSC 1F.201C5: GOTO 1C401C6: MOVF 1E,W01C7: SUBLW 0801C8: BTFSC 03.001C9: GOTO 1C3.................... delay_ms(10);01CA: MOVLW 0A01CB: MOVWF 3901CC: CALL 10D........................................ for(pismeno=0;pismeno<MAX_SLOVO;pismeno++)01CD: CLRF 3601CE: MOVF 36,W01CF: SUBLW 0901D0: BTFSS 03.001D1: GOTO 1FD.................... {.................... for(sloupec=0;sloupec<5;sloupec++)01D2: CLRF 3701D3: MOVF 37,W01D4: SUBLW 0401D5: BTFSS 03.001D6: GOTO 1F1.................... {.................... output_B(pis[(napis[pismeno]-0x41)*5+sloupec]);01D7: MOVLW 2801D8: ADDWF 36,W01D9: MOVWF 0401DA: MOVLW 4101DB: SUBWF 00,W01DC: MOVWF 3B01DD: MOVWF 3D01DE: MOVLW 0501DF: MOVWF 3E01E0: CALL 12401E1: MOVF 37,W01E2: ADDWF 78,W01E3: CALL 04D01E4: MOVWF 3901E5: BSF 03.501E6: CLRF 0601E7: BCF 03.501E8: MOVF 39,W01E9: MOVWF 06.................... delay_us(500);01EA: CLRWDT01EB: MOVLW A601EC: MOVWF 7701ED: DECFSZ 77,F01EE: GOTO 1ED.................... }01EF: INCF 37,F01F0: GOTO 1D3.................... output_B(0xFF);01F1: BSF 03.501F2: CLRF 0601F3: MOVLW FF01F4: BCF 03.501F5: MOVWF 06.................... delay_us(500);01F6: CLRWDT01F7: MOVLW A601F8: MOVWF 7701F9: DECFSZ 77,F01FA: GOTO 1F9.................... }01FB: INCF 36,F01FC: GOTO 1CE.................... }01FD: GOTO 1C0........................................ for(slovo=0;slovo<2;slovo++)01FE: CLRF 3501FF: MOVF 35,W0200: SUBLW 010201: BTFSS 03.00202: GOTO 251.................... for(j=0;j<=20;j++) // Jedno slovo se zobrazi stokrat0203: CLRF 380204: MOVF 38,W0205: SUBLW 140206: BTFSS 03.00207: GOTO 24F.................... {.................... while(read_adc()<9); // Cekani na magnet0208: BSF 1F.20209: BTFSC 1F.2020A: GOTO 209020B: MOVF 1E,W020C: SUBLW 08020D: BTFSC 03.0020E: GOTO 208.................... delay_ms(10);020F: MOVLW 0A0210: MOVWF 390211: CALL 10D........................................ for(pismeno=0;pismeno<MAX_SLOVO;pismeno++)0212: CLRF 360213: MOVF 36,W0214: SUBLW 090215: BTFSS 03.00216: GOTO 246.................... {.................... for(sloupec=0;sloupec<5;sloupec++)0217: CLRF 370218: MOVF 37,W0219: SUBLW 04021A: BTFSS 03.0021B: GOTO 23A.................... {.................... output_B(pis[(logo[slovo*MAX_SLOVO+pismeno]-0x41)*5+sloupec]);021C: MOVF 35,W021D: MOVWF 3D021E: MOVLW 0A021F: MOVWF 3E0220: CALL 1240221: MOVF 36,W0222: ADDWF 78,W0223: CALL 0350224: ADDLW BF0225: MOVWF 3C0226: MOVWF 3D0227: MOVLW 050228: MOVWF 3E0229: CALL 124022A: MOVF 37,W022B: ADDWF 78,W022C: CALL 04D022D: MOVWF 39022E: BSF 03.5022F: CLRF 060230: BCF 03.50231: MOVF 39,W0232: MOVWF 06.................... delay_us(500);0233: CLRWDT0234: MOVLW A60235: MOVWF 770236: DECFSZ 77,F0237: GOTO 236.................... }0238: INCF 37,F0239: GOTO 218.................... output_B(0xFF);023A: BSF 03.5023B: CLRF 06023C: MOVLW FF023D: BCF 03.5023E: MOVWF 06.................... delay_us(500);023F: CLRWDT0240: MOVLW A60241: MOVWF 770242: DECFSZ 77,F0243: GOTO 242.................... }0244: INCF 36,F0245: GOTO 213.................... if (otacky++>120) reset_cpu();0246: MOVF 33,W0247: INCF 33,F0248: SUBLW 780249: BTFSC 03.0024A: GOTO 24D024B: CLRF 0A024C: GOTO 000.................... }024D: INCF 38,F024E: GOTO 204024F: INCF 35,F0250: GOTO 1FF.................... }0251: GOTO 1C0.................... }0252: SLEEPConfiguration Fuses:Word 1: 3F3D XT WDT NOPUT NODEBUG NOPROTECT NOBROWNOUT NOLVP NOCPD NOWRT