INCLUDE "P16F74.INC" LIST P=16F74, R=DEC PA EQU 05h ;A porty PB EQU 06h ;B PC EQU 07h ;C PD EQU 08h ;D PE EQU 09h ;E c1 EQU 20h ;pomocná proměnná pro čekání/cykly c2 EQU 21h ;pomocná proměnná pro čekání/cykly c3 EQU 22h ;pomocná proměnná pro čekání/cykly c4 EQU 24h ;pomocná proměnná pro čekání/cykly ORG 00h GOTO start start BCF STATUS,RP1 ;vstupy/výstupy BSF STATUS,RP0 MOVLW b'00000001' MOVWF TRISA MOVLW 0 MOVWF TRISB MOVLW 0 MOVWF TRISC MOVLW b'10000000' MOVWF TRISD MOVLW 0 MOVWF TRISE MOVLW b'00000000' ;nastavení referenčního napětí a funkce portů PA a PE. MOVWF ADCON1 BCF STATUS,RP1 BCF STATUS,RP0 MOVLW b'11000001' ;nastavení A/D převodníku MOVWF ADCON0 ;--------------------------------------- BSF PD,0 BSF PD,1 BSF PD,2 BSF PD,3 MOVLW b'10101010' MOVWF PB MOVWF PC ;--------------------------------------- CALL cekani1 GOTO start2 ;--------------------------------------- ; HLAVNÍ PROGRAM ;--------------------------------------- start2 CLRWDT ;--------------------------------------- CALL cekani1 BSF PD,1 BSF PD,2 CALL cekani3 BCF PD,1 BCF PD,2 CALL cekani1 BSF PD,0 BSF PD,3 CALL cekani3 BCF PD,0 BCF PD,3 CALL cekani1 ;--------------------------------------- BCF PB,7 BCF PC,0 CALL cekani2 BCF PB,6 BCF PC,1 CALL cekani2 BSF PB,7 BCF PB,5 BSF PC,0 BCF PC,2 CALL cekani2 BSF PB,6 BCF PB,4 BSF PC,1 BCF PC,3 CALL cekani2 BSF PB,5 BCF PB,3 BSF PC,2 BCF PC,4 CALL cekani2 BSF PB,4 BCF PB,2 BSF PC,3 BCF PC,5 CALL cekani2 BSF PB,3 BCF PB,1 BSF PC,4 BCF PC,6 CALL cekani2 BSF PB,2 BCF PB,0 BSF PC,5 BCF PC,7 CALL cekani2 BSF PB,1 BSF PC,6 CALL cekani2 BSF PB,0 BSF PC,7 ;--------------------------------------- BSF PD,1 BSF PD,2 CALL cekani2 CALL cekani2 BCF PD,1 BCF PD,2 CALL cekani2 CALL cekani2 BSF PD,0 BSF PD,3 CALL cekani2 CALL cekani2 BCF PD,0 BCF PD,3 CALL cekani2 CALL cekani2 BSF PD,1 BSF PD,2 CALL cekani2 CALL cekani2 BCF PD,1 BCF PD,2 CALL cekani2 CALL cekani2 BSF PD,0 BSF PD,3 CALL cekani2 CALL cekani2 BCF PD,0 BCF PD,3 CALL cekani2 CALL cekani2 BSF PD,1 BSF PD,2 CALL cekani2 CALL cekani2 BCF PD,1 BCF PD,2 CALL cekani2 CALL cekani2 BSF PD,0 BSF PD,3 CALL cekani2 CALL cekani2 BCF PD,0 BCF PD,3 ;--------------------------------------- ;--------------------------------------- CALL cekani1 BSF PD,1 BSF PD,2 CALL cekani3 BCF PD,1 BCF PD,2 CALL cekani1 BSF PD,0 BSF PD,3 CALL cekani3 BCF PD,0 BCF PD,3 CALL cekani1 ;--------------------------------------- BCF PB,7 BCF PC,0 CALL cekani2 BCF PB,6 BCF PC,1 CALL cekani2 BSF PB,7 BCF PB,5 BSF PC,0 BCF PC,2 CALL cekani2 BSF PB,6 BCF PB,4 BSF PC,1 BCF PC,3 CALL cekani2 BSF PB,5 BCF PB,3 BSF PC,2 BCF PC,4 CALL cekani2 BSF PB,4 BCF PB,2 BSF PC,3 BCF PC,5 CALL cekani2 BSF PB,3 BCF PB,1 BSF PC,4 BCF PC,6 CALL cekani2 BSF PB,2 BCF PB,0 BSF PC,5 BCF PC,7 CALL cekani2 BSF PB,1 BSF PC,6 CALL cekani2 BSF PB,0 BSF PC,7 ;--------------------------------------- BSF PD,0 BSF PD,1 BSF PD,2 BSF PD,3 ;--------------------------------------- CALL cekani2 CALL cekani2 CALL cekani2 CALL cekani2 ;--------------------------------------- BCF PD,0 BCF PD,1 BCF PD,2 BCF PD,3 ;--------------------------------------- GOTO start2 ;--------------------------------------- ; ADC analogově digitální převodník ;--------------------------------------- adc BSF ADCON0,2 ;A/D převod prevod BTFSC ADCON0,2 GOTO prevod RETURN ;----------------------------------------------------------------------------------- ; ČEKÁNÍ ;----------------------------------------------------------------------------------- cekani1 CALL adc MOVFW ADRES MOVWF c3 cek3 MOVLW 12 MOVWF c2 cek2 MOVLW 60 MOVWF c1 CLRWDT cek1 DECFSZ c1,1 GOTO cek1 DECFSZ c2,1 GOTO cek2 DECFSZ c3,1 GOTO cek3 RETURN ;--------------------------------------- cekani2 CLRWDT BTFSC PD,7 CALL brzda MOVLW 40 MOVWF c2 cek5 MOVLW 255 MOVWF c1 cek4 DECFSZ c1,1 GOTO cek4 DECFSZ c2,1 GOTO cek5 CLRWDT RETURN ;--------------------------------------- cekani3 MOVLW 255 MOVWF c1 cek7 DECFSZ c1,1 GOTO cek7 CLRWDT RETURN ;--------------------------------------- brzda MOVLW 255 MOVWF PB MOVWF PC BSF PD,0 ; rozsvit cerveny BSF PD,1 BSF PD,2 BSF PD,3 BCF PB,0 ; rozsvit zadni dve zluty BCF PC,7 CALL cekani2 CALL cekani2 BSF PD,4 ; plny proud do cervenych BTFSS PD,7 ; brzdi se jeste ? GOTO konec_brzda GOTO brzda konec_brzda BCF PD,4 ; vypni plnej proud CALL cekani2 CALL cekani2 CALL cekani2 CALL cekani2 CALL cekani2 CALL cekani2 RETURN ;--------------------------------------- END