LIST p=16F88 ; nastavení typu procesoru #INCLUDE ; definice proměnných pro tento procesor errorlevel -302 ; === NASTAVENÍ KONFIGURAČNÍHO SLOVA === __CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _INTRC_IO __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF RAM EQU H'20' CBLOCK RAM+0 ; zacatek vseob.registru 20h TMP0 TMP1 TMP2 ENDC ; === PROGRAM === RESET ORG 0x0000 ; začátek programu na adrese 0000h ; Inicializace portů BANKSEL ANSEL CLRF ANSEL ; CLRF ANSELH BANKSEL PORTB CLRF PORTB MOVLW b'00000001' ;pro pouziti PORTB sviti jedna LED MOVWF PORTB BANKSEL TRISB MOVLW b'11000000' ;na portu jedna vstupni pouzito7 MOVWF TRISB BANKSEL TRISA MOVLW b'00001100' MOVWF TRISA BANKSEL PORTA #define tl_leva PORTA,2 #define tl_prava PORTA,3 goto start ;............................................................................................. pauza ;cekaci smycka ;Delay 197633 cycles MOVLW 0x00 ;0 DEC MOVWF TMP1 MOVLW 0x00 ;0 DEC MOVWF TMP0 DECFSZ TMP0,F GOTO $-1 DECFSZ TMP1,F GOTO $-5 return ;............................................................................................. ;............................................................................................. ZAKMITY MOVLW .150 ;POCET SKENOVANI PORTU PROTI ZAKMITUM MOVWF TMP1 MOVF PORTA,W ;PRVOTNI NACTENI PORTU A PRO SCAN TLACITEK IORLW B'11110011' ;MASKOVANI PINU, KTERE NEJSOU VYUZITY JAKO TLACITKA MOVWF TMP0 ;............................................................................................. ZAKMITY1 MOVF PORTA,W ;PRVOTNI NACTENI PORTU A PRO SCAN TLACITEK IORLW B'11110011' ;MASKOVANI PINU, KTERE NEJSOU VYUZITY JAKO TLACITKA XORWF TMP0,W ;PROVED OPERACI A VYSLEDEK ULOZ DO W BTFSS STATUS,Z;TEST SHODNOSTI NASKENOVANI PORTU GOTO ZAKMITY ;NASKENOVANI NEBYLO SHODNE DECFSZ TMP1,F ;ODECTI JEDNA OD POCITADLA TESTOVANI ODSKOKU GOTO ZAKMITY1 RETURN ;NAVRAT ;............................................................................................. ;............................................................................................. led_leva call ZAKMITY btfsc tl_leva return btfss PORTB,5 ;test stavu vystupmiho pinu rlf PORTB,f call pauza return ;............................................................................................. led_prava call ZAKMITY btfsc tl_prava return btfss PORTB,0 ;test stavu vystupniho pinu rrf PORTB,f call pauza return ;............................................................................................. start bcf STATUS,C ;nulovani carry bitu/jinak sviti dve LED btfss tl_leva call led_leva btfss tl_prava call led_prava goto start ;............................................................................................. END