Interrupciones Mplab

Páginas: 4 (959 palabras) Publicado: 12 de junio de 2012
Ejercicio 1:
* Cada vez que se presione un pulsador conectado a RB0, se incrementará un contador (0 al 9) que se visualizará en un display. SI se mantiene pulsado se incrementa cada 200ms. Lalectura del pulsador se hará mediante interrupciones.

Mapa de Puertos:
Puerto | Pines | Modo |
Puerto C | RC0-RC7 | Salida |
Puerto B | RB0 | Interrupción por flanco |

DiagramaElectrónico:

Diagrama de Flujo:

Código:
list p=16f877a
include "p16f877a.inc"
CONT EQU 20H
UNO EQU 21H
DOS EQU 22H
VAR EQU 23H

ORG 00H
GOTO INICIO
ORG 004H
GOTO SUB_INT

RETARDOMOVLW .200
MOVWF UNO
VOLVER2
MOVLW .250
MOVWF DOS
VOLVER1
NOP
DECFSZ DOS,1
GOTO VOLVER1
DECFSZ UNO,1
GOTO VOLVER2
RETURN

SUB_INT
CLRF VAR
MOVF CONT,0
CALL TABLAMOVWF PORTC
INCF CONT,1
MOVLW .10
XORWF CONT,0
BTFSS STATUS,Z
GOTO PULSADO
CLRF CONT
PULSADO
CALL RETARDO ;Retardo de 200ms
BTFSS PORTB,0 ;Sigue Pulsado?
GOTO SALIR ;No,sale de la interrupción
GOTO SUB_INT ;Sí, incrementa otro digito
SALIR
BCF INTCON,INTF;
RETFIE

TABLA
ADDWF PCL,1
DT 0X9F,0X25,0X0D,0X99,0X49,0X41,0X1F,0X01,0X09,0x03

INICIOBANKSEL TRISA
CLRF TRISC
BCF INTCON, INTF
BSF INTCON,INTE
BSF INTCON,GIE
BSF OPTION_REG,INTEDG
BANKSEL PORTA
CLRF CONT
MOVLW B'00000001'
MOVWF VAR

MAIN
BTFSS VAR,0GOTO MAIN
MOVLW 03H
MOVWF PORTC
GOTO MAIN
END

Simulaciones:

Ejercicio 2:
* Cada vez que se presione un pulsador conectado a RB0, se conmutará el estado de 4 leds conectados al puertoA. La lectura del pulsador se hará mediante interrupciones.

Mapa de Puertos:
Puerto | Pines | Modo |
Puerto A | RA0-RA4 | Salida |
Puerto B | RB0 | Interrupción por flanco |

DiagramaElectrónico:

Diagrama de Flujo:

Código:
list p=16f877a
include "p16f877a.inc"
PULSA EQU 20H

ORG 00H
GOTO INICIO
ORG 004H
GOTO SUB_INT

SUB_INT
BTFSC PULSA,0
GOTO APAGAR...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • mplab
  • Mplab
  • Mplab
  • Interrupciones
  • Interrupciones
  • Interrupciones
  • Interrupciones
  • Interrupciones

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS