Microcontroladores

Páginas: 2 (277 palabras) Publicado: 24 de octubre de 2011
ENUNCIADO
;
;Implemente un programa que cada vez
;que se active la interrupción de cambio
;en puerto B se lea un dato por el puerto A
;y se guarde en REG1(20H).
;Cada2.29 ms se debe leer un dato por
;el puerto A y guardarlo en REG2(21H).
;Si se activa la interrupción externa
;se debe comparar el contenido de REG1
;con REG2, si son igualesse debe
;incrementar el contenido de REG3(22H).
;Prioridad para la atención de
;interrupciones: TIMER0>EXT
; 2.29ms-->2290ciclos
; -->preescalador
; 1:2-->1145; 1:4-->572.5
; 1:8-->286.25
; 1:16-->143.125-->143
; 1:32-->71.56
;
; recarga=256-143=113
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

include p16f84a.incREG1 EQU 0X20
REG2 EQU 0X21
REG3 EQU 0X22

ORG 0X000
goto INICIO

ORG 0X004
RSI btfsc INTCON,T0IF
goto RSI_TMR0
btfsc INTCON,INTF
gotoRSI_EXT
btfsc INTCON,RBIF
goto RSI_RB
retfie

RSI_TMR0 movf PORTA,0
movwf REG2
movlw d'113'
movwf TMR0
bcf INTCON,T0IF
retfie

RSI_EXT bcfINTCON,INTF
movf REG1,0
xorwf REG2,0
btfsc STATUS,Z
incf REG3,1
retfie

RSI_RB movf PORTA,0
movwf REG1
movf PORTB,0
bcf INTCON,RBIFretfie


INICIO bsf STATUS,RP0
movlw b'11110001'
movwf TRISB ;RB7:RB4;RB0 IN
movlw 0xFF
movwf TRISA ;PORTA IN
bcf OPTION_REG,T0CS ;reloj interno
bcfOPTION_REG,PSA ;preescalador
bcf OPTION_REG,PS2
bsf OPTION_REG,PS1
bsf OPTION_REG,PS0 ;razon 1:16
bcf STATUS,RP0
bcf INTCON,RBIF
bcf INTCON,INTF
bcf INTCON,T0IF;limpiar flag
bsf INTCON,RBIE
bsf INTCON,INTE
bsf INTCON,T0IE ;hab ints
bsf INTCON,GIE ;hab global
movlw d'113'
movwf TMR0 ;recarga
TATE goto TATE
end
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Microcontroladores
  • Microcontroladores
  • Microcontroladores
  • microcontroladores
  • Microcontroladores
  • Microcontroladores
  • Microcontroladores
  • Microcontroladores

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS