TMR0 (FFh → 00h) T0IF (INTCON<2>) '1'. TMR0 / / T0IE(INTCON<5>).
7 TMR0 . - , , . , TMR0.
, 20ms, - , PORTB 25.
#include P16F877.inc
;**************************************************************************
; PORTB 20ms.
; (20ms)
; TMR0.
;**************************************************************************
TMP equ 20h; - TMP
;
;**************************************************************************
; MACROSa
;**************************************************************************
BANK0 macro; - 0
bcf STATUS, RP0
bcf STATUS, RP1
endm
BANK1 macro; - 1
bsf STATUS, RP0
bcf STATUS, RP1
endm
BANK2 macro; - 2
bcf STATUS, RP0
bsf STATUS, RP1
endm; MACROSa
;**************************************************************************
org 0x00;
goto START; START
; ( )
org 0x04;
;**************************************************************************
;* / TMR0( 20mc)
;**************************************************************************
BANK0; 0
bcf INTCON, T0IF; TMR0
bcf INTCON, T0IE; TMR0
movlw 64h; TMR0 = 64h(100)
movf TMR0;
BANK1; 1
movlw 00000110b; TMR0
movf OPTION_REG; 1:128
BANK0; 0
comf PORTB; PORTB = not (PORTB)
bsf INTCON, T0IE; TMR0
retfie;
; GIE = 1
org 0x50;
;***************************************************************************
;*
;***************************************************************************
START: BANK0; 0
clrf PORTB; PORTB = 00h
bcf INTCON, T0IF;
|
|
movlw 64h; TMR0 = 64h(100)
movf TMR0;
BANK1; 1
movlw b'00000000';
movwf TRISB;
movlw 00000110b; TMR0
movf OPTION_REG; 1:128
bsf INTCON, T0IE; TMR0
bsf INTCON, GIE;
nop;
goto $-1;
end
3.8.2.2 RB0/INT
RB0/INT : , INTEDG (OPTION_REG<6>) '1'; , INTEDG '0'. RB0/INT INTF (INTCON<1>) '1'. INTE (INTCON<4>) '0'. INTF .
3.8.2.3 RB7:RB4
RB7÷RB4 RBIF(INTCON<0>). RBIE(INTCON<4>). PORTB 1.8.2.
, 20ms, PORTB 25, RB0/INT , RB7:RB4.
#include P16F877.inc
;**************************************************************************
; :
; PORTB 20ms;
; PORTC RB0/INT;
; PORTD RB7:RB4
;**************************************************************************
; MACROSa
;**************************************************************************
BANK0 macro; - 0
bcf STATUS, RP0
bcf STATUS, RP1
endm
BANK1 macro; - 1
bsf STATUS, RP0
bcf STATUS, RP1
endm
BANK2 macro; - 2
bcf STATUS, RP0
bsf STATUS, RP1
endm; MACROSa
;**************************************************************************
org 0x00;
goto START; START
; ( )
org 0x04;
;**************************************************************************
; / :
; TMR0( 20mc) / INT / RB7:RB4.
;**************************************************************************
;
;**************************************************************************
btfsc INTCON, INTF; INT?
goto METKA1;
btfss INTCON, RBIF;, RB7:RB4?
goto METKA2;
btfss INTCON, T0IF; , TMR0?
goto RETR; ,
;**************************************************************************
; / TMR0
;**************************************************************************
BANK0; 0
bcf INTCON, T0IF; TMR0
bcf INTCON, T0IE; TMR0
|
|
movlw 64h; TMR0 = 64h(100)
movf TMR0;
BANK1; 1
movlw 00000110b; TMR0
movf OPTION_REG; 1:128/RB0/INT-
BANK0; 0
comf PORTB; PORTB = not (PORTB)
bsf INTCON, T0IE; TMR0
goto RETR
;**************************************************************************
; / RB0/INT
;**************************************************************************
METKA1: BANK0; 0
bcf INTCON, INTF; INT
bcf INTCON, INTE; INT
comf PORTC; PORTC = not (PORTC)
bsf INTCON, INTE; INT
goto RETR
;**************************************************************************
; / RB7:RB4
;**************************************************************************
METKA2: BANK0; 0
bcf INTCON, RBIF; RB7:RB4
bcf INTCON, RBIE; RB7:RB4
comf PORTD; PORTD = not (PORTD)
bsf INTCON, RBIE; RB7:RB4
RETR: retfie;
; GIE = 1
org 0x50;
;***************************************************************************
;*
;***************************************************************************
START: BANK0; 0
bcf INTCON, T0IF; TMR0
bcf INTCON, INTF; INT
bcf INTCON, RBIF; RB7:RB4
movlw 64h; TMR0 = 64h(100)
movf TMR0;
clrf PORTB; PORTB = 00h
clrf PORTC; PORTB = 00h
clrf PORTD; PORTB = 00h
BANK1; 1
movlw b'00000000'; , , D
movwf TRISB;
movwf TRISC
movwf TRISD
movwf TRISE; PORTD
; PSPMODE(TRISE<4>)
movlw 00000110b; TMR0
movf OPTION_REG; 1:128/RB0/INT-
BANK0; 0
bsf INTCON, T0IE; TMR0
bsf INTCON, INTE; INT
bsf INTCON, RBIE; INT
bsf INTCON, GIE;
nop;
goto $-1;
end
1. RB0/INT, TMR0 RB7:RB4.
2. .