Hallo,
danke für die Antwort. Ist den folgender Code richtig?
Code:
list p=16f84
; Includedatei für den 16F84 einbinden
#include <P16F84A.INC>
; Configuration festlegen
; bis 4 MHz: Power on Timer, kein Watchdog, XT-Oscillator
__CONFIG _PWRTE_ON & _WDT_OFF & _XT_OSC
;**************************************************************
; Variablen festlegen
;**********************************************************
; los gehts mit der Initialisierung
Init
BCF TRISA,3; PortA,3 wird auf output geschaltet
BSF TRISA,2 ; PortA,2 wird auf input geschaltet
BSF PORTA,3 ; PortA,3 wird auf high gesetzt
bsf STATUS, RP0 ; auf Bank 1 umschalten
movlw B'00000000' ; PortB alle output
movwf TRISB
bcf STATUS, RP0 ; auf Bank 0 zurückschalten
clrf PORTB ; alle LEDs ausschalten
movwf PORTB
; das Folgende ist die Hauptschleife, die endlos durchlaufen wird
Main
call Tastaturbehandlung ; Tastatur abfragen
goto Main2 ; keine Taste gedrückt
Main2
goto Main
Tastaturbehandlung
bcf STATUS, RP0 ;
btfsc PORTA, 2 ; ist RA2 nicht high?
movlw B'00000000' ;dann werden alle LEDs ausgeschaltet
btfss PORTA, 2 ; ist RA2 high?
movlw B'11111111' ;dann werden alle LEDs eingeschaltet
bsf STATUS, RP0 ; auf Bank 1 umschalten
movwf PORTB
return
end
;**********************************************************
Gruß,
Sebastian
Edit: Ich habe einen 2,7 kOhm-Widerstand dazwischen. Es liegt wohl doch kein Wackelkontakt vor.
Lesezeichen