Kód: Vybrat vše
LIST P=16F88
#include <p16f88.inc>
A1 EQU 21h
A2 EQU 22h
R1ON EQU 23h
G1ON EQU 24h
B1ON EQU 25h
R2ON EQU 26h
G2ON EQU 27h
B2ON EQU 28h
R3ON EQU 29h
G3ON EQU 2Ah
B3ON EQU 2Bh
R4ON EQU 2Ch
G4ON EQU 2Dh
B4ON EQU 2Eh
R5ON EQU 2Fh
G5ON EQU 30h
B5ON EQU 31h
R6ON EQU 32h
G6ON EQU 33h
B6ON EQU 34h
R7ON EQU 35h
G7ON EQU 36h
B7ON EQU 37h
R8ON EQU 38h
G8ON EQU 39h
B8ON EQU 3Ah
LEDSET EQU 3Bh
#DEFINE IN1 PORTA,0
#DEFINE IN2 PORTA,5
#DEFINE IN3 PORTA,7
#DEFINE OUT1 PORTA,6
#DEFINE OUT2 PORTB,6
#DEFINE OUT3 PORTB,7
;OUT 1 2 3
;IN
;1 R-UP G-UP B-UP
;2 R-DN G-DN B-DN
;3 PREW NEXT RESET
_INTOSC_OSC_NOCLKOUT EQU H'3FFC'
ORG 0x2007 ; adresa konfiguracie PIC16F88
dw _BODEN_OFF & _CPD_OFF & _CP_OFF & _PWRTE_OFF & _WDT_OFF & _LVP_OFF & _INTOSC_OSC_NOCLKOUT & _DEBUG_OFF & _MCLR_OFF & _WRT_PROTECT_OFF & _INTRC_IO
ORG 0
GOTO START
ORG 4
GOTO START
START
BCF STATUS,RP0
CLRF STATUS
BANKSEL OSCCON
BSF OSCCON,IRCF2
BSF OSCCON,IRCF1
BSF OSCCON,IRCF0
BSF STATUS,RP0
MOVLW 0x00 ; Configure all pins
MOVWF ANSEL ; as digital inputs
MOVLW B'00000000'
MOVWF OPTION_REG
MOVLW B'00000000'
MOVWF TRISB
MOVLW B'10100001'
MOVWF TRISA
BCF STATUS,RP0
CLRF PORTB
CLRF PORTA
MOVLW .1
MOVWF R1ON
MOVWF B1ON
MOVWF G1ON
MOVWF R2ON
MOVWF B2ON
MOVWF G2ON
MOVWF R3ON
MOVWF B3ON
MOVWF G3ON
MOVWF R4ON
MOVWF B4ON
MOVWF G4ON
MOVWF R5ON
MOVWF B5ON
MOVWF G5ON
MOVWF R6ON
MOVWF B6ON
MOVWF G6ON
MOVWF R7ON
MOVWF B7ON
MOVWF G7ON
MOVWF R8ON
MOVWF B8ON
MOVWF G8ON
MOVWF LEDSET
GOTO PROGRAM
PROGRAM
;klavesnica
BCF OUT2
BCF OUT3
BSF OUT1
BTFSC IN1
GOTO RUP
BTFSC IN2
GOTO RDN
BTFSC IN3
GOTO PREW
BCF OUT1
BSF OUT2
BTFSC IN1
GOTO GUP
BTFSC IN2
GOTO GDN
BTFSC IN3
GOTO NEXT
BCF OUT2
BSF OUT3
BTFSC IN1
GOTO BUP
BTFSC IN2
GOTO BDN
BTFSC IN3
GOTO RESETT
GOTO JADRO
JADRO
CLRF PORTB
BSF PORTA,2
BSF PORTA,3
BSF PORTA,4
BSF PORTA,1
CALL LEDKY
GOTO PROGRAM
LEDKY
;LED1
;RED1
BCF PORTA,2
BSF PORTB,0
MOVFW R1ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,0
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;GREEN1
BCF PORTB,0
BSF PORTB,1
MOVFW G1ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,1
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;BLUE1
BCF PORTB,1
BSF PORTB,2
MOVFW B1ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,2
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;LED2
;RED
BSF PORTA,2
BCF PORTA,3
BCF PORTB,2
BSF PORTB,0
MOVFW R2ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,0
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;GREEN
BCF PORTB,0
BSF PORTB,1
MOVFW G2ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,1
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;BLUE
BCF PORTB,1
BSF PORTB,2
MOVFW B2ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,2
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;LED3
;RED
BSF PORTA,3
BCF PORTA,4
BCF PORTB,2
BSF PORTB,0
MOVFW R3ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,0
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;GREEN
BCF PORTB,0
BSF PORTB,1
MOVFW G3ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,1
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;BLUE
BCF PORTB,1
BSF PORTB,2
MOVFW B3ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,2
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;LED4
;RED
BSF PORTA,4
BCF PORTA,1
BCF PORTB,2
BSF PORTB,0
MOVFW R4ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,0
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;GREEN
BCF PORTB,0
BSF PORTB,1
MOVFW G4ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,1
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;BLUE
BCF PORTB,1
BSF PORTB,2
MOVFW B4ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,2
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;LED5
;RED1
BSF PORTA,1
BCF PORTA,2
BSF PORTB,3
MOVFW R5ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,3
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;GREEN1
BCF PORTB,3
BSF PORTB,4
MOVFW G5ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,4
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;BLUE1
BCF PORTB,4
BSF PORTB,5
MOVFW B5ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,5
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;LED6
;RED
BSF PORTA,2
BCF PORTA,3
BCF PORTB,5
BSF PORTB,3
MOVFW R6ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,3
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;GREEN
BCF PORTB,3
BSF PORTB,4
MOVFW G6ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,4
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;BLUE
BCF PORTB,4
BSF PORTB,5
MOVFW B6ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,5
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;LED7
;RED
BSF PORTA,3
BCF PORTA,4
BCF PORTB,5
BSF PORTB,3
MOVFW R7ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,3
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;GREEN
BCF PORTB,3
BSF PORTB,4
MOVFW G7ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,4
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;BLUE
BCF PORTB,4
BSF PORTB,5
MOVFW B7ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,5
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;LED8
;RED
BSF PORTA,4
BCF PORTA,1
BCF PORTB,2
BSF PORTB,0
MOVFW R4ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,0
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;GREEN
BCF PORTB,0
BSF PORTB,1
MOVFW G4ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,1
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
;BLUE
BCF PORTB,1
BSF PORTB,2
MOVFW B4ON
MOVWF A1
MOVWF A2
CALL CAKAJ
BCF PORTB,2
MOVLW .255
MOVWF A1
MOVWF A2
CALL CAKAJ
RETURN
CAKAJ
DECFSZ A1
GOTO $-1
DECFSZ A2
GOTO $-1
RETURN
;RED UP/DN
RUP
MOVLW .1
CALL REDINC
BTFSC STATUS,2
CALL REDDEC
GOTO JADRO
RDN
MOVLW .1
CALL REDDEC
BTFSC STATUS,2
CALL REDINC
GOTO JADRO
REDDEC
BTFSC LEDSET,0
SUBWF R1ON
BTFSC LEDSET,1
SUBWF R2ON
BTFSC LEDSET,2
SUBWF R3ON
BTFSC LEDSET,3
SUBWF R4ON
BTFSC LEDSET,4
SUBWF R5ON
BTFSC LEDSET,5
SUBWF R6ON
BTFSC LEDSET,6
SUBWF R7ON
BTFSC LEDSET,7
SUBWF R8ON
RETURN
REDINC
BTFSC LEDSET,0
ADDWF R1ON
BTFSC LEDSET,1
ADDWF R2ON
BTFSC LEDSET,2
ADDWF R3ON
BTFSC LEDSET,3
ADDWF R4ON
BTFSC LEDSET,4
ADDWF R5ON
BTFSC LEDSET,5
ADDWF R6ON
BTFSC LEDSET,6
ADDWF R7ON
BTFSC LEDSET,7
ADDWF R8ON
RETURN
;GREEN UP/DN
GUP
MOVLW .1
CALL GREENINC
BTFSC STATUS,2
CALL GREENDEC
GOTO JADRO
GDN
MOVLW .1
CALL GREENDEC
BTFSC STATUS,2
CALL GREENINC
GOTO JADRO
GREENDEC
BTFSC LEDSET,0
SUBWF G1ON
BTFSC LEDSET,1
SUBWF G2ON
BTFSC LEDSET,2
SUBWF G3ON
BTFSC LEDSET,3
SUBWF G4ON
BTFSC LEDSET,4
SUBWF G5ON
BTFSC LEDSET,5
SUBWF G6ON
BTFSC LEDSET,6
SUBWF G7ON
BTFSC LEDSET,7
SUBWF G8ON
RETURN
GREENINC
BTFSC LEDSET,0
ADDWF G1ON
BTFSC LEDSET,1
ADDWF G2ON
BTFSC LEDSET,2
ADDWF G3ON
BTFSC LEDSET,3
ADDWF G4ON
BTFSC LEDSET,4
ADDWF G5ON
BTFSC LEDSET,5
ADDWF G6ON
BTFSC LEDSET,6
ADDWF G7ON
BTFSC LEDSET,7
ADDWF G8ON
RETURN
;BLUE UP/DN
BUP
MOVLW .1
CALL BLUEINC
BTFSC STATUS,2
CALL BLUEDEC
GOTO JADRO
BDN
MOVLW .1
CALL BLUEDEC
BTFSC STATUS,2
CALL BLUEINC
GOTO JADRO
BLUEDEC
BTFSC LEDSET,0
SUBWF B1ON
BTFSC LEDSET,1
SUBWF B2ON
BTFSC LEDSET,2
SUBWF B3ON
BTFSC LEDSET,3
SUBWF B4ON
BTFSC LEDSET,4
SUBWF B5ON
BTFSC LEDSET,5
SUBWF B6ON
BTFSC LEDSET,6
SUBWF B7ON
BTFSC LEDSET,7
SUBWF B8ON
RETURN
BLUEINC
BTFSC LEDSET,0
ADDWF B1ON
BTFSC LEDSET,1
ADDWF B2ON
BTFSC LEDSET,2
ADDWF B3ON
BTFSC LEDSET,3
ADDWF B4ON
BTFSC LEDSET,4
ADDWF B5ON
BTFSC LEDSET,5
ADDWF B6ON
BTFSC LEDSET,6
ADDWF B7ON
BTFSC LEDSET,7
ADDWF B8ON
RETURN
NEXT
BTFSC LEDSET,0
MOVLW .2
BTFSC LEDSET,1
MOVLW .4
BTFSC LEDSET,2
MOVLW .8
BTFSC LEDSET,3
MOVLW .16
BTFSC LEDSET,4
MOVLW .32
BTFSC LEDSET,5
MOVLW .64
BTFSC LEDSET,6
MOVLW .128
BTFSC LEDSET,7
MOVLW .1
MOVWF LEDSET
GOTO JADRO
PREW
BTFSC LEDSET,0
MOVLW .128
BTFSC LEDSET,1
MOVLW .1
BTFSC LEDSET,2
MOVLW .2
BTFSC LEDSET,3
MOVLW .4
BTFSC LEDSET,4
MOVLW .8
BTFSC LEDSET,5
MOVLW .16
BTFSC LEDSET,6
MOVLW .32
BTFSC LEDSET,7
MOVLW .64
MOVWF LEDSET
GOTO JADRO
RESETT
MOVLW .1
MOVWF R1ON
MOVWF B1ON
MOVWF G1ON
MOVWF R2ON
MOVWF B2ON
MOVWF G2ON
MOVWF R3ON
MOVWF B3ON
MOVWF G3ON
MOVWF R4ON
MOVWF B4ON
MOVWF G4ON
MOVWF R5ON
MOVWF B5ON
MOVWF G5ON
MOVWF R6ON
MOVWF B6ON
MOVWF G6ON
MOVWF R7ON
MOVWF B7ON
MOVWF G7ON
MOVWF R8ON
MOVWF B8ON
MOVWF G8ON
MOVLW B'00000001' ;LED0
MOVWF LEDSET
GOTO JADRO
END