Professional Documents
Culture Documents
Clase 9
Una de las características más resaltantes de los PIC’s es su capacidad para suministrar y drenar corriente. Cada
pin de los puertos puede manejar hasta 25 mA; mientras que en forma conjunta para todos los bit de un el
puerto B estos valores se amplían a 200 mA (ver figura 1).
Esta particular robustez permite usar a los PIC para manipular directamente elementos optoelectrónicos
básicos, tales como LED’s y displays de siete segmentos, lo que significa una gran ventaja para la visualización
de salidas.
+5v
+5v
Diseñe un comprador de magnitud de dos números binarios de 4 bits (N1 y N2) y que maneje tres LED’s para que se visualice la
relación entre ellos: mayor, menor o igual.
+5V
PIC16F887 N1 Datos
8
Port B
N2
Wilmer Sanz F. 1
Apuntes de Microprocesadores. Clase 9
#include p16f887.inc
N1 EQU 0x20
N2 EQU 0x21
ORG 0x0
GOTO Inicio
ORG 0x5
Inicio BSF STATUS,RP0
MOVLW 0xFF
MOVWF TRISB ; Puerto B es para entrada
CLRF TRISC ; Puerto C es para salidas
BCF INTCON,GIE ;Inhabilitación de las Interrupciones
MOVLW 0xFF
MOVWF PORTC,1 ;Se apagan los LED’s conectados al Puerto C
MOVF PORTB,0
MOVWF N1
MOVWF N2
MOVLW 0x0F
ANDWF N2,1 ; N2 tiene los 4 bits bajos del dato leído
MOVLW 0xF0
ANDWF N1,1
SWAPF N1,1 ; N1 tiene los 4 bits altos del dato leído
MOVF N2,0
SUBWF N1,0 ; W <- N1+C2(N2) en complemento a 2
BTFSC STATUS,Z ; Si Z se activa el Goto siguiente se realiza
GOTO Saleq
BTFSC STATUS,C ; Si Carry se activa el Goto siguiente se realiza
GOTO SalM
Salmen BCF PORTC,1 ; Se enciende el Led conectado a RC1, con un cero en su cátodo
GOTO Fin
Saleq BCF PORTC,2 ; Se enciende el Led conectado a RC2
GOTO Fin
SalM BCF PORTC,0 ; Se enciende el Led conectado a RC0
Fin NOP
END
Wilmer Sanz F. 2
Apuntes de Microprocesadores. Clase 9
Actividad sugerida
El código anterior tiene un error que el Profesor, conscientemente, no ha señalado durante la clase. ¿Cuál es? Haga la
simulación con el MPLAB SIM sin incluir la corrección y luego repítala, incluyéndola.
Se le muestra el circuito y una Tabla en el Data Memory que contiene el equivalente en siete segmentos del dígito hexadecimal leído.
Plantee el algoritmo en seudo códigos y elabore el código o programa correspondiente.
+5V
N1
PIC16F887 4 Entrada
Port B
Port C +5V
Bibliografía
- Microchip Technology Inc. (2005). MPASM™ Assembler, MPLINK™ Object Linker, MPLIB™ Object Librarian
User’s Guide. http://ww1.microchip.com/downloads/en/DeviceDoc/33014J.pdf [En línea] Último acceso: 12-05-2008
- Microchip Technology Inc. (2007). Data Sheet del PIC16F8XX. Documento 41291D,
http://ww1.microchip.com/downloads/en/DeviceDoc/41291D.pdf [En línea] Último acceso: 29-09-2017
Wilmer Sanz F. 3
Apuntes de Microprocesadores. Clase 9
Pseudo códigos
N:= Portb
N:=N&0xF
FSR:=Dir de Tabla
Ciclo W:=INDF
Si N<>W Skip
GOTO Salida
FSR:=FSR+1
GOTO Ciclo
Salida RP0:=1
FSR:=FSR OR 0x80
W:=INDF
RP0:= 0
Portc:=W
Fin
Wilmer Sanz F. 4