R/W1 | R/W1 | R/W1 | R/W1 | R/W1 | R/W1 | R/W1 | R/W1 |
RBPU | INTEDG | T0CS | T0SE | PSA | PS2 | PS1 | PS0 |
7 | 6 | 5 | 4 | 2 | 1 | 0 |
3.20
OPTION_REG<2>, OPTION_REG<1>, OPTION_REG<0> ( 3.12).
3.12
PS2: PS1: PS0: | . . |
1:2 | |
1:4 | |
1:8 | |
1:16 | |
1:32 | |
1:64 | |
1:128 | |
1:256 |
T0CS '1' (OPTION_REG<5>), TMR0 RA4/T0CKI. T0SE OPTION_REG<4> (T0SE = 0 ).
-0 1.10.
20ms, DELAY_SCAN, 6.
DELAY_SCAN:
bcf STATUS,RP0; 0
bcf STATUS,RP1;
bcf INTCON,T0IF;
movlw 64h; TMR0 = 64h(100)
movf TMR0;
bsf STATUS,RP0; 1
bcf STATUS,RP1;
movlw b00000110; TMR0
movf OPTION_REG; 1:128
bcf STATUS,RP0; 0
bcf STATUS,RP1;
bsf INTCON,T0IE; TMR0
btfsz INTCON,T0IF;
goto $-1;
return
F = 4 1 , T = 1 μs.
, :
call DELAY_SCAN | / | 2 μs |
bcf STATUS,RP0.. ! bsf INTCON,T0IE | 12 | 12*(1 μs) |
btfsz INTCON,T0IF | (1 μs) | |
goto $-1 | (2 μs) | |
nop | goto | 1 μs |
return | / | 2 μs |
: 20ms (20000μs - 17 μs) = T *128*N. 128 μs.
N = 156, TMR0 : 256-100(64h).
1. = 1. / DELAY_SCAN.
1 , 100- 3.7.2 / DELAY_SCAN.
5. 3.7.2 , RA4/T0CKI.
1. , , .
2. .
|
|
3. .
4. (F7) STATUS, OPTION_REG, INTCON, FSR TMR0.
:
1. , , (F8), .
2. DELAY_SCAN TMR0 02h, .
3. RA4/T0CKI , 3.6.4, 6.
3.7.5 :
1. TMR0?
2. TMR0 ?
3. ?
4. TMR0?
3.8 8
ɻ
- .
3.8.2
PIC16F87X 14 . INTCON , .