Extras din referat
CALCUL TIMER1:
Se cunosc , .
Se cere valoarea cu care trebuie incarcat TIMER1 SI PRESCALERUL.
1.Calculam :
2.Calculam valoarea maxima a temporizarii TIMER1(16 biti) fara prescaler:
3.Calculam valoarea prescalerului:
4.Calculam valorile cu care trebuiesc incarcate registrele TMR1H,TMR1L (registru pe 16 biti alcatuit din doi registri pe 8 biti):
Pentru ca TIMER1 intrerupe cand produce overflow (65535=>0) TMR1H,TMR1L se calculeaza scazand din 65535 valoarea calculata si se incarca cu aceasta valoare:
CODUL SURSA:
#include "p16f887.inc"
radix dec
CBLOCK 0x20
vec_afis: 10
nr1
nr2
nr
k
flag_intr
ENDC
ORG 0
CLRF STATUS
CLRF PCLATH
GOTO init
initial
org 4 ; procedura de tratare a intreruperilor
movlw 0X0B
movwf TMR1H
movlw 0XDC
movwf TMR1L ;INCARCA IN TMR1L,TMR1H VALOAREA CORESPUNZATORARE
;INTRERUPERII DE 1 SECUNDA
BCF PIR1,TMR1IF ;CURATA FLAGUL DE INTRERUPERE
bsf flag_intr,0 ;SETEAZA ETICHETA DE INTRERUPERE
RETFIE ;SE INTOARCE DIN INTRERUPEE
init
Preview document
Conținut arhivă zip
- Circuite Complexe.docx