; program k regulovatelnemu zdroji s dvemi tlacitky na RA0 a 1 a integracnim clenem na RB0 ; ; Zdenek Novotny http://panda.unas.cz LIST P=16F84, R=DEC ; typ procesoru a numericka dekadicka soustava INCLUDE ; vzorovy soubor s prikazy pro prekladac (je soucasti prekladace) NULA EQU H'0C' JEDNA EQU H'0D' MOJE EQU H'0E' MOJEE EQU H'0F' KROK1 EQU H'10' KROK2 EQU H'11' #DEFINE OUT PORTB,0 #DEFINE TLUP PORTA,0 #DEFINE TLDO PORTA,1 BSF STATUS,RP0 ; IN / OUT MOVLW B'00000000' MOVWF TRISB MOVLW B'00000011' MOVWF TRISA BCF STATUS,RP0 BCF OUT CLRF MOJE MOVLW B'11111110' ; uvodni nastaveni hodnot nuly a jednicky MOVWF NULA MOVLW B'00000001' MOVWF JEDNA ZNOVU BSF STATUS,RP0 BCF TRISB,0 BCF STATUS,RP0 MOVF JEDNA,0 ; vysle jednicky MOVWF MOJE BSF OUT DECFSZ MOJE,1 GOTO $-1 MOVF NULA,0 ; vysle nuly MOVWF MOJE BCF OUT DECFSZ MOJE,1 GOTO $-1 BSF STATUS,RP0 ; OUT nastav jako vstupni (odpojit od zateze) BSF TRISB,0 BCF STATUS,RP0 CLRWDT ; reset WDT BTFSC TLUP ; test tlacitek GOTO PLUS BTFSC TLDO GOTO MINUS GOTO ZNOVU PLUS BCF STATUS,C MOVF NULA,0 ; pricte jeden krok ADDLW -5 MOVWF NULA MOVF JEDNA,0 ADDLW 5 MOVWF JEDNA BTFSC STATUS,C GOTO NOPLU ZPLU GOTO PUST NOPLU MOVF NULA,0 ; pricte jeden krok ADDLW 5 MOVWF NULA MOVF JEDNA,0 ADDLW -5 MOVWF JEDNA GOTO ZPLU MINUS BCF STATUS,C MOVF NULA,0 ; odecte jeden krok ADDLW 5 MOVWF NULA BTFSC STATUS,C GOTO NOMIN MOVF JEDNA,0 ADDLW -5 MOVWF JEDNA ZMIN GOTO PUST NOMIN MOVF NULA,0 ADDLW -5 MOVWF NULA GOTO ZMIN PUST BSF STATUS,RP0 ; zde se ceka na pusteni tlacitek BCF TRISB,0 BCF STATUS,RP0 MOVF JEDNA,0 ; vysle jednicky MOVWF MOJE BSF OUT DECFSZ MOJE,1 GOTO $-1 MOVF NULA,0 ; vysle nuly MOVWF MOJE BCF OUT DECFSZ MOJE,1 GOTO $-1 BSF STATUS,RP0 ; OUT nastav jako vstupni (odpojit od zateze) BSF TRISB,0 BCF STATUS,RP0 CLRWDT ; reset WDT BTFSC TLUP ; test tlacitek GOTO PUST BTFSC TLDO GOTO PUST GOTO ZNOVU END