.


:




:

































 

 

 

 


TMR0




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. .

 





:


: 2016-11-02; !; : 1306 |


:

:

: , , , , .
==> ...

1521 - | 1390 -


© 2015-2024 lektsii.org - -

: 0.023 .