Sunteți pe pagina 1din 6

Aux: Univ.

Frias Abrahamov Yan Raul ELT3822”A”

OPTION (dirección 81h, 181h)


RBPU# INTEDG TOCS TOSE PSA PS2 PS1 PS0
L/E 1 L/E 1 L/E 1 L/E 1 L/E 1 L/E 1 L/E 1 L/E 1

Bit7 RBPU#: Activación resistencias Pull-up Puerta B.


1 = Desactivadas.
0 = Activadas.

Bit6 INTEDG: Flanco interrupción externa.


1 = Flanco ascendente RB0/INT.
0 = Flanco descendente RB0/INT.

Bit5 T0CS: Tipo de reloj para el TMR0.


1 = Pulsos introducidos a través de T0CKI (contador).
0 = Pulsos de reloj interno Fosc/4 (temporizador).

Bit4 TOSE: Tipo de flanco en TOCKI.


1 = Incremento de TMR0 cada flanco descendente RA4/T0CK1.
0 = Incremento de TMR0 cada flanco ascendente RA4/t0CK1.

Bit3 PSA: Asignación del Divisor de frecuencias.


1 = El Divisor de frecuencia se le asigna al WDT.
0 = El Divisor de frecuencia se le asigna al TMR0.

PS2 PS1 PS0 Divisor del TMR0 Divisor del WDT


0 0 0 1:2 1:1
0 0 1 1:4 1:2
0 1 0 1:8 1:4
0 1 1 1:16 1:8
1 0 0 1:32 1:16
1 0 1 1:64 1:32
1 1 0 1:128 1:64
1 1 1 1:256 1:128
Aux: Univ. Frias Abrahamov Yan Raul ELT3822”A”

INTCON (dirección 0Bh, 8Bh, 10Bh, 18Bh)


GIE EEIE T0IE INTE RBIE T0IF INTF RBIF
L/E 0 L/E 0 L/E 0 L/E 0 L/E 0 L/E 0 L/E 0 L/E x

Bit7 GIE: Permiso Global de Interrupciones.


1 = Permite la ejecución de todas las interrupciones, cuyos bits de permiso individuales
también las permita.
0 = Prohíbe todas las interrupciones.

Bit6 EEIE: Permiso de Interrupción por fin de la escritura en la EEPROM (16F84A).


1 = Permite se origine una interrupción cuando termina la escritura de la EEPROM de
datos.
0 = Prohíbe que se produzca esta interrupción.

Bit5 T0lE: Permiso de Interrupción por desbordamiento del TMR0


1 = Permite la interrupción al desbordarse el TMR0
0 = Prohíbe esta interrupción.

Bit4 INTE: Permiso de Interrupción por activación de la patita RB0/INT


1 = Permite la interrupción al activarse RBO/INT.
0 = Prohíbe esta interrupción.

Bit3 RBIE: Permiso de Interrupción por cambio de estado en RB7:RB4


1 = Permite esta interrupción.
0 = Prohíbe esta interrupción.

Bit2 T0IF: Señalizador de desbordamiento del TMR0.


1 = Se pone a 1 cuando ha ocurrido el desbordamiento.
0 = Indica que el TMRO no se ha desbordado.

Bit1 INTF: Señalizador de activación de la patita RB0/INT


1 = Se pone a 1 al activarse RB0/INT, al recibir un flanco activo desde el exterior.
0 = Indica que RB0/INT no ha recibido un flanco activo.

Bit0 RBIF: Señalizador de cambio de estado en las patitas RB7:RB4


1 = Pasa a 1 cuando cambia el estado de alguna de estas 4 líneas.
0 = No ha cambiado el estado de RB7:RB4.
Cuando GIE = 0 no se acepta ninguna de las interrupciones. Si GIE = 1 sólo se aceptan
aquellas fuentes de interrupción cuyo bit de permiso se lo consienta.
Aux: Univ. Frias Abrahamov Yan Raul ELT3822”A”

1) Realizar un programa para activar una interrupción por hardware cuando se controla el encendido
secuencial de 3 motores en intervalos de 2 segundos la interrupción se realizara mediante RB4.

i equ 0x0C
j equ 0x0D bsf STATUS,RP0
k equ 0x0E movlw b'00010000'
aux equ 0x0F movwf TRISA
org 0x00 movlw b'00010000'
goto inicio movwf TRISB
org 0x04 bcf STATUS,RP0
clrf PORTA clrf PORTA
bsf aux,0 prg
bcf INTCON,RBIF btfsc PORTA,4
movf PORTB,w goto prg
retfie clrf aux
;----------------------------------------------------- movf PORTB,W
retardo movlw b'10001000'
movlw d'10' movwf INTCON
movwf i on
ciclo1 bsf PORTA,0
movlw d'157' call retardo
movwf j btfsc aux,0
ciclo2 goto prg
movlw d'255' bsf PORTA,1
movwf k call retardo
ciclo3 btfsc aux,0
btfsc aux,0 goto prg
goto fin bsf PORTA,2
decfsz k,f btfsc aux,0
goto ciclo3 goto prg
decfsz j,f ciclo
goto ciclo2 btfsc PORTA,4
decfsz i,f goto ciclo
goto ciclo1 clrf PORTA
fin clrf INTCON
return call retardo
;----------------------------------------------------- goto prg
inicio
Aux: Univ. Frias Abrahamov Yan Raul ELT3822”A”

2) Realizar un programa para activar la parada de emergencia RB0 en el conteo descendente (9 al 0) de un cohete
que va a ser propulsado hacia la luna.

i equ 0x0c bsf STATUS,RP0


j equ 0x0d movlw b'00010000'
k equ 0x0e movwf TRISA
cont equ 0x0f movlw b'00000001'
;------------------------------------ movwf TRISB
org 0x00 movlw b'00000000'
goto inicio movwf OPTION
org 0x04 bcf STATUS,RP0
bcf INTCON,INTF clrf PORTA
return clrf PORTB
;------------------------------------ on
retardo btfsc PORTA,4
movlw d'8' goto on
movwf i movlw d'9'
ciclo1 movwf cont
movlw d'163' movlw b'10010000'
movwf j movwf INTCON
ciclo2 cohete
movlw d'255' btfss INTCON,GIE
movwf k goto on
ciclo3 movf cont,w
decfsz k,f movwf PORTA
goto ciclo3 call retardo
decfsz j,f decfsz cont,F
goto ciclo2 goto cohete
decfsz i,f clrf PORTA
goto ciclo1 bsf PORTB,7
return call retardo
;------------------------------------ bcf PORTB,7
inicio goto on
Aux: Univ. Frias Abrahamov Yan Raul ELT3822”A”

3) Realizar un programa para controlar una máquina automática para trotar, la cual tiene motor y un
odómetro con regulación de baja, media y alta velocidad. El operador debe usar una manilla en la mano
que tiene un detector de latidos de corazón la cual no debe exceder en cada caso los 120 latidos por minuto.
En caso de exceder, la maquina debe parar automáticamente.

i equ 0x0c movlw d'20'


j equ 0x0d movwf i
k equ 0x0e ciclo1
;------------------------------------ movlw d'163'
org 0x00 movwf j
goto inicio ciclo2
org 0x04 movlw d'255'
clrf PORTB movwf k
movlw 0x01 ciclo3
movwf i decfsz k,f
movwf j goto ciclo3
movwf k decfsz j,f
loop goto ciclo2
btfss PORTA,0 decfsz i,f
goto loop goto ciclo1
bcf INTCON,T0IF return
return ;------------------------------------
;------------------------------------ inicio
retardo bsf STATUS,RP0
movlw d'200' movlw b'00011111'
movwf TMR0 movwf TRISA
movlw b'10100000' movlw b'00000000'
movwf INTCON movwf TRISB
movlw b'00111000'
Aux: Univ. Frias Abrahamov Yan Raul ELT3822”A”

movwf OPTION bsf PORTB,0


bcf STATUS,RP0 call retardo
clrf PORTB bcf INTCON,GIE
on goto on
clrf PORTB media
btfsc PORTA,0 bsf PORTB,1
goto on call retardo
btfss PORTA,1 bcf INTCON,GIE
goto baja goto on
btfss PORTA,2 alta
goto media bsf PORTB,2
btfss PORTA,3 call retardo
goto alta bcf INTCON,GIE
goto on goto on
baja

S-ar putea să vă placă și