list p=16f84
#include <P16f84.INC>
;************************************************* ********
; bis 4 MHz: Power on Timer, kein Watchdog, XT-Oscillator*
__CONFIG _PWRTE_ON & _WDT_OFF & _XT_OSC
;************************************************* ********
Ini_con Equ B'00000000' ; TMR0 -> Interupt disable
Ini_opt Equ B'00101000'
;************************************************* *********
Init:
bsf STATUS, RP0 ; Bank 1
movlw Ini_opt ; pull-up on
movwf OPTION_REG
movlw B'11111000' ; RA0 .. RA2 outputs, RA3, RA4 input
movwf TRISA ;
movlw B'00000000' ; PortB alle outputs
movwf TRISB
bcf STATUS, RP0 ; Bank 0
clrf PORTA
clrf PORTB
movlw Ini_con ; Interupt disable
movwf INTCON
;************************************************* *********
main:
bcf INTCON, T0IF ; Clear INT-Flag
movlw D'245' ; Timer preload
movwf TMR0
movlw B'00000000' ; port b auf "00000000"
movwf PORTB
loop:
BTFSC INTCON, T0IF ; Counter-Overflow?
goto port_on ; ja -> mach an
goto loop ; nein -> warten af weitere Tastendrucke
port_on:
movlw B'1111111' ; port b auf "11111111"
movwf PORTB
endlos:
; und auf ewig warten
nop
nop
goto endlos ; (hier kommt was auch immer hin)
end
Lesezeichen