;******************************************************************************* ;* Létrehozva:20 * ;******************************************************************************* ;Távirányító családi kódja 0xD5,0x45 ;Gomb "A" 0x30 ;Gomb "B" 0x0C ;Gomb "C" 0xC0 ;Gomb "D" xX03 ;Reset min. 12 msec. Adatvonalba belenézni H szin megjelenése után ;900 usec-el. 3 byte adat érkezik. ;Lezárás min 50 msec LIST P=PIC18F14K22 ; lista megadása INCLUDE ; includde fájlok megadása RADIX hex ; alapértelmezet számrendszer megadása CONFIG FOSC = IRC ; bels? oszcillátor CONFIG WDTEN = OFF ; watchdog bekapcsolása CONFIG LVP = OFF ; alacsony feszültség? programozás kikapcsolva CONFIG MCLRE = OFF ; RA3 bemenetkénti használatra állítása CBLOCK 0x0001 ADATBYTE CIKLUS CIKLUS1 CIKLUS2 CIKLUS3 CIKLUS4 CIKLUS5 BITEK BYTE_1 BYTE_2 BYTE_3 MIT HOVA SZORZO TABLA MB AUT_KIKAP :2 ENDC #define VALTAS MB,1 #define JEL_FELDOLGOZVA MB,3 org 0x0000 ; program memória kezd? címe nop CALL INICIALIZALAS CLRF MB CLRF TABLA CLRF SZORZO CLRF CIKLUS1 ;------------------------------------------------------------------------------- MAIN CALL SZUNET CLRF CIKLUS2 MOVFF TABLA,CIKLUS3 MAIN2 MOVF SZORZO,W MULWF CIKLUS3 CLRF TBLPTRU MOVLW HIGH FENY MOVWF TBLPTRH MOVLW LOW FENY MOVWF TBLPTRL MOVF PRODL,W ADDWF TBLPTRL MOVF PRODH,W ADDWFC TBLPTRH MOVF CIKLUS2,W ADDWF TBLPTRL CLRF WREG ADDWFC TBLPTRH TBLRD*+ MOVFF TABLAT,MIT INCF CIKLUS2 MOVLW 0x20 CPFSEQ MIT GOTO MAIN3 INCF CIKLUS2 MOVFF CIKLUS2,SZORZO CLRF CIKLUS2 INCF CIKLUS3 CALL TABLA_OLVAS CALL SZUNET GOTO MAIN2 MAIN3 MOVLW 0x58 CPFSEQ MIT GOTO MAIN4 MOVLW 0xFF MOVWF POSTINC0 CALL TABLA_OLVAS BTFSS VALTAS GOTO MAIN INCF CIKLUS3 MOVLW .25 ;Jelenlegi színskála vége CPFSLT CIKLUS3 CLRF CIKLUS3 MOVFF CIKLUS3,TABLA BCF VALTAS CLRF CIKLUS1 GOTO MAIN MAIN4 MOVLW 0x5F CPFSEQ MIT GOTO MAIN5 CLRF TABLA GOTO MAIN MAIN5 CALL ADAT_BETOLT GOTO MAIN2 SZUNET BCF LATC,0 SZU_1 BTFSC PORTB,7 GOTO SZU_2 BTFSS PIR1,1 GOTO $-2 BCF PIR1,1 INCF CIKLUS5 GOTO SZU_1 SZU_2 MOVLW .120 CPFSGT CIKLUS5 GOTO SZU_3 BTFSC JEL_FELDOLGOZVA GOTO SZU_4 MOVLW .24 MOVWF BITEK CLRF BYTE_1 CLRF BYTE_2 CLRF BYTE_3 CLRF CIKLUS5 VETEL ;---------Távirányító jelének vétele--------- INCF CIKLUS5 BTG LATB,6;-------------- BTFSS PIR1,1 GOTO $-2 BCF PIR1,1 MOVLW .9 CPFSEQ CIKLUS5 GOTO VETEL BCF STATUS,C RLCF BYTE_3 RLCF BYTE_2 RLCF BYTE_1 BTFSC PORTB,7 BSF BYTE_3,0 BTFSC PORTB,7 GOTO $-2 BTFSS PORTB,7 GOTO $-2 BCF PIR1,1 CLRF CIKLUS5 DECFSZ BITEK GOTO VETEL MOVLW 0xD5 CPFSEQ BYTE_1 GOTO SZU_3 MOVLW 0x45 CPFSEQ BYTE_2 GOTO SZU_3 MOVLW 0x0C CPFSEQ BYTE_3 GOTO VET_0 BTFSS PORTA,5 GOTO SZU_3 MOVLW .28 MOVWF TABLA BSF JEL_FELDOLGOZVA CLRF CIKLUS4 GOTO SZU_4 VET_0 MOVLW 0x30 CPFSEQ BYTE_3 GOTO VET_1 BTFSS PORTA,5 GOTO SZU_3 BSF VALTAS BSF JEL_FELDOLGOZVA CLRF CIKLUS4 GOTO SZU_4 VET_1 MOVLW 0xC0 CPFSEQ BYTE_3 GOTO VET_2 BTFSS PORTA,5 GOTO SZU_3 MOVLW .26 MOVWF TABLA BSF JEL_FELDOLGOZVA CLRF CIKLUS4 GOTO SZU_4 VET_2 MOVLW 0x03 CPFSEQ BYTE_3 GOTO SZU_3 BTFSC PORTA,5 GOTO VET_3 BSF LATA,5 BSF JEL_FELDOLGOZVA CLRF CIKLUS4 BSF OSCCON,6 BSF OSCTUNE,6 MOVLW B'00000110' MOVWF T2CON MOVLW .99 MOVWF PR2 MOVLW 0x07 MOVWF AUT_KIKAP MOVLW 0x12 MOVWF AUT_KIKAP+1 GOTO SZU_4 VET_3 BCF LATA,5 CLRF CIKLUS4 BCF OSCCON,6 BCF OSCTUNE,6 MOVLW B'00000100' MOVWF T2CON MOVLW .24 MOVWF PR2 GOTO SZU_4 SZU_3 CLRF CIKLUS5 BTFSS PORTA,5 GOTO SZU_1 SZU_4 MOVLW .15 CPFSGT CIKLUS4 GOTO SZU_5 BCF JEL_FELDOLGOZVA SZU_5 BTFSS INTCON,2 GOTO SZU_1 BCF INTCON,2 INCF CIKLUS4 CLRF FSR0H MOVLW 0x30 MOVWF FSR0L CLRF WREG DECF AUT_KIKAP SUBWFB AUT_KIKAP+1 BTFSC STATUS,C RETURN BCF LATA,5 CLRF CIKLUS4 BCF OSCCON,6 BCF OSCTUNE,6 MOVLW B'00000100' MOVWF T2CON MOVLW .24 MOVWF PR2 RETURN ;----------------------------------Színbeírás----------------------------------- ADAT_BETOLT MOVLW 0x3A CPFSGT MIT GOTO AB1 MOVLW 0x07 SUBWF MIT,F AB1 MOVLW 0x30 SUBWF MIT,F MOVLW 0x4 MULWF MIT CLRF TBLPTRU MOVLW HIGH SZINKODOK MOVWF TBLPTRH MOVLW LOW SZINKODOK MOVWF TBLPTRL MOVF PRODL,W ADDWF TBLPTRL CLRF WREG ADDWFC TBLPTRH MOVLW 0x3 MOVWF CIKLUS AB2 TBLRD*+ MOVFF TABLAT,POSTINC0 DECFSZ CIKLUS GOTO AB2 RETURN ;------------------------------------------------------------------------------- INICIALIZALAS CLRF LATA ; kimeneti portok törlése CLRF LATB CLRF LATC CLRF ANSEL CLRF ANSELH MOVLW B'00001000' ; A port MOVWF TRISA MOVLW B'10000000' ; B port kimenet MOVWF TRISB MOVLW B'00000000' ; C port kimenet MOVWF TRISC MOVLW B'00110000' ; oszcillátor frekvenciája <4:6> MOVWF OSCCON ; 111 = 16, 110 = 8, 101 = 4, 100 = 2 MHz CLRF OSCCON2 MOVLW B'00000000' MOVWF OSCTUNE BCF INTCON2,7 MOVLW B'10000011' MOVWF T0CON MOVLW B'00000100' MOVWF T2CON MOVLW .24 MOVWF PR2 MOVLW B'00000100' MOVWF WPUA MOVLW B'10000000' MOVWF WPUB BCF INTCON,2 RETURN ;---------------------------12 LED adatainak elküldése-------------------------- TABLA_OLVAS CLRF FSR0H MOVLW 0x30 MOVWF FSR0L T_O MOVFF POSTINC0,ADATBYTE MOVLW 0xFF CPFSLT ADATBYTE RETURN CALL KULD_ADAT GOTO T_O KULD_ADAT MOVLW D'8' KULD_ADAT_1 BSF LATC,0 NOP RLCF ADATBYTE BTFSS STATUS,C BCF LATC,0 NOP NOP NOP NOP NOP NOP BCF LATC,0 NOP DECFSZ WREG GOTO KULD_ADAT_1 RETURN ;------------------------------------------------------------------------------- SZINKODOK ; { Kikapcsolás}>>0 DB 0x00,0x00,0x00 ; {Világos zöld}>>1 DB 0xB0,0x00,0x15 ; { Zöld }>>2 DB 0xB9,0x00,0x07 ; { Sötét zöld }>>3 DB 0xB9,0x05,0x00 ; { Világos kék}>>4 DB 0x90,0x00,0xC0 ; { Kék }>>5 DB 0x30,0x00,0xF0 ; { Sötét kék }>>6 DB 0x30,0x00,0xFE ; { H. lila }>>7 DB 0x00,0x30,0xC0 ; { Lila }>>8 DB 0x00,0x60,0x90 ; { Sötét lila }>>9 DB 0x00,0xF0,0x10 ; {Vil.n. sárga}>>A DB 0x60,0xF0,0x00 ; { N. sárga }>>B DB 0x15,0xF7,0x00 ; { Piros }>>C DB 0x00,0xFE,0x00 ; { Sárga }>>D DB 0x90,0xC0,0x00 ; { Fehér }>>E DB 0x70,0x70,0x70 ;------------------------------ CIKLUS_BEALLITAS ;------------------------------------------------------------------------------- FENY DB "11111111111111111111111111111111111111111111111111111111111111 " DB "11111111111111111111111111111111111111111111111111111111111111X" DB "22222222222222222222222222222222222222222222222222222222222222 " DB "22222222222222222222222222222222222222222222222222222222222222X" DB "33333333333333333333333333333333333333333333333333333333333333 " DB "33333333333333333333333333333333333333333333333333333333333333X" DB "44444444444444444444444444444444444444444444444444444444444444 " DB "44444444444444444444444444444444444444444444444444444444444444X" DB "55555555555555555555555555555555555555555555555555555555555555 " DB "55555555555555555555555555555555555555555555555555555555555555X" DB "66666666666666666666666666666666666666666666666666666666666666 " DB "66666666666666666666666666666666666666666666666666666666666666X" DB "77777777777777777777777777777777777777777777777777777777777777 " DB "77777777777777777777777777777777777777777777777777777777777777X" DB "88888888888888888888888888888888888888888888888888888888888888 " DB "88888888888888888888888888888888888888888888888888888888888888X" DB "99999999999999999999999999999999999999999999999999999999999999 " DB "99999999999999999999999999999999999999999999999999999999999999X" DB "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA " DB "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX" DB "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB " DB "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBX" DB "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC " DB "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCX" DB "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD " DB "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDX" DB "000000000000EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE000000 " DB "000000000000EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE000000X" ;-------------------------------------------------------------------- DB "0000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEE00 " DB "000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEE000 " DB "00111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEE0000 " DB "0111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEE00000 " DB "111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEE000000 " DB "11122223333444455556666777788889999AAAABBBBCCCCDDDDEEEE0000001 " DB "1122223333444455556666777788889999AAAABBBBCCCCDDDDEEEE00000011 " DB "122223333444455556666777788889999AAAABBBBCCCCDDDDEEEE000000111 " DB "22223333444455556666777788889999AAAABBBBCCCCDDDDEEEE0000001111 " DB "2223333444455556666777788889999AAAABBBBCCCCDDDDEEEE00000011112 " DB "223333444455556666777788889999AAAABBBBCCCCDDDDEEEE000000111122 " DB "23333444455556666777788889999AAAABBBBCCCCDDDDEEEE0000001111222 " DB "3333444455556666777788889999AAAABBBBCCCCDDDDEEEE00000011112222 " DB "333444455556666777788889999AAAABBBBCCCCDDDDEEEE000000111122223 " DB "33444455556666777788889999AAAABBBBCCCCDDDDEEEE0000001111222233 " DB "3444455556666777788889999AAAABBBBCCCCDDDDEEEE00000011112222333 " DB "444455556666777788889999AAAABBBBCCCCDDDDEEEE000000111122223333 " DB "44455556666777788889999AAAABBBBCCCCDDDDEEEE0000001111222233334 " DB "4455556666777788889999AAAABBBBCCCCDDDDEEEE00000011112222333344 " DB "455556666777788889999AAAABBBBCCCCDDDDEEEE000000111122223333444 " DB "55556666777788889999AAAABBBBCCCCDDDDEEEE0000001111222233334444 " DB "5556666777788889999AAAABBBBCCCCDDDDEEEE00000011112222333344445 " DB "556666777788889999AAAABBBBCCCCDDDDEEEE000000111122223333444455 " DB "56666777788889999AAAABBBBCCCCDDDDEEEE0000001111222233334444555 " DB "6666777788889999AAAABBBBCCCCDDDDEEEE00000011112222333344445555 " DB "666777788889999AAAABBBBCCCCDDDDEEEE000000111122223333444455556 " DB "66777788889999AAAABBBBCCCCDDDDEEEE0000001111222233334444555566 " DB "6777788889999AAAABBBBCCCCDDDDEEEE00000011112222333344445555666 " DB "777788889999AAAABBBBCCCCDDDDEEEE000000111122223333444455556666 " DB "77788889999AAAABBBBCCCCDDDDEEEE0000001111222233334444555566667 " DB "7788889999AAAABBBBCCCCDDDDEEEE00000011112222333344445555666677 " DB "788889999AAAABBBBCCCCDDDDEEEE000000111122223333444455556666777 " DB "88889999AAAABBBBCCCCDDDDEEEE0000001111222233334444555566667777 " DB "8889999AAAABBBBCCCCDDDDEEEE00000011112222333344445555666677778 " DB "889999AAAABBBBCCCCDDDDEEEE000000111122223333444455556666777788 " DB "89999AAAABBBBCCCCDDDDEEEE0000001111222233334444555566667777888 " DB "9999AAAABBBBCCCCDDDDEEEE00000011112222333344445555666677778888 " DB "999AAAABBBBCCCCDDDDEEEE000000111122223333444455556666777788889 " DB "99AAAABBBBCCCCDDDDEEEE0000001111222233334444555566667777888899 " DB "9AAAABBBBCCCCDDDDEEEE00000011112222333344445555666677778888999 " DB "AAAABBBBCCCCDDDDEEEE000000111122223333444455556666777788889999 " DB "AAABBBBCCCCDDDDEEEE000000111122223333444455556666777788889999A " DB "AABBBBCCCCDDDDEEEE000000111122223333444455556666777788889999AA " DB "ABBBBCCCCDDDDEEEE000000111122223333444455556666777788889999AAA " DB "BBBBCCCCDDDDEEEE000000111122223333444455556666777788889999AAAA " DB "BBBCCCCDDDDEEEE000000111122223333444455556666777788889999AAAAB " DB "BBCCCCDDDDEEEE000000111122223333444455556666777788889999AAAABB " DB "BCCCCDDDDEEEE000000111122223333444455556666777788889999AAAABBB " DB "CCCCDDDDEEEE000000111122223333444455556666777788889999AAAABBBB " DB "CCCDDDDEEEE000000111122223333444455556666777788889999AAAABBBBC " DB "CCDDDDEEEE000000111122223333444455556666777788889999AAAABBBBCC " DB "CDDDDEEEE000000111122223333444455556666777788889999AAAABBBBCCC " DB "DDDDEEEE000000111122223333444455556666777788889999AAAABBBBCCCC " DB "DDDEEEE000000111122223333444455556666777788889999AAAABBBBCCCCD " DB "DDEEEE000000111122223333444455556666777788889999AAAABBBBCCCCDD " DB "DEEEE000000111122223333444455556666777788889999AAAABBBBCCCCDDD " DB "EEEE000000111122223333444455556666777788889999AAAABBBBCCCCDDDD " DB "EEE000000111122223333444455556666777788889999AAAABBBBCCCCDDDDE " DB "EE000000111122223333444455556666777788889999AAAABBBBCCCCDDDDEE " DB "E000000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEE " DB "000000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEE " DB "00000111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEE0X" ;----------------- DB "_" END