0% encontró este documento útil (0 votos)
155 vistas15 páginas

Actividad 5

El documento presenta 4 actividades relacionadas con el uso del microcontrolador PIC16F887 y el lenguaje ensamblador. La primera actividad consiste en leer el puerto A y escribirlo en el puerto B. La segunda implementa un toggle en los bits de RA5 a RA2 con un periodo de 200ms. La tercera diseña un contador de 0 a 9 en LEDs binarios. La cuarta expande el contador anterior para mostrar los números en un display de 7 segmentos. Cada actividad incluye el código ensamblador correspondiente.

Cargado por

Miguel Zarate
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
155 vistas15 páginas

Actividad 5

El documento presenta 4 actividades relacionadas con el uso del microcontrolador PIC16F887 y el lenguaje ensamblador. La primera actividad consiste en leer el puerto A y escribirlo en el puerto B. La segunda implementa un toggle en los bits de RA5 a RA2 con un periodo de 200ms. La tercera diseña un contador de 0 a 9 en LEDs binarios. La cuarta expande el contador anterior para mostrar los números en un display de 7 segmentos. Cada actividad incluye el código ensamblador correspondiente.

Cargado por

Miguel Zarate
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Instituto Politécnico Nacional

“Unidad Profesional Interdisciplinaria


en Ingeniería y Tecnologías Avanzadas”

“Arquitectura de Computadoras”
Alumnos:
Zarate Angeles Miguel Angel
Fragoso Torres Jesus Eduardo
Rodriguez Perez Daniel

Profesor:
Sergio Garduza Gonzalez

Actividad 6

Grupo: 1TM9

19/12/22
Objetivo

El alumno identificará las reglas fundamentales del lenguaje ensamblador para

implementar rutinas de tiempo, subrutinas y visualización de dígitos binarios.

Palabras clave

• Microcontrolador

• puertos I/O

• PIC16F887

• Lenguaje ensamblador

• Contador

• Bits

• Máster Clear
Introduccion teorica

¿Qué es el Microcontrolador PIC16F887?

El Microcontrolador PIC16F887 cuenta con 8 Bits, 14KB, 368 RAM, 20MHz, 40


Pines. Cuenta con un oscilador interno de precisión con frecuencia seleccionable
entre 31 kHz y 8 MHz. Este MCU puede reemplaza al 16F877 y al 16F877A.

Compatible con el modo de reposo para ahorro de energía, reinicio a la conexión


(POR), reinicio a la caída de voltaje (BOR) con control por opcional.
¿Para qué sirve el Microcontrolador PIC16F887?

El Microcontrolador PIC16F887 se puede aplicar en áreas como diseño embebido


y desarrollo, automoción, industrial, electrónica de consumos. Puede ser
programado tanto en lenguaje ensamblador y principalmente en C, para el que
existen numerosos compiladores. Cuando se utilizan los compiladores Basic, es
posible desarrollar útiles aplicaciones en tiempo récord, especialmente dirigidas
al campo doméstico y educacional.
Desarrollo

1. Configure el puerto A como entrada y el puerto B como salida, realice la

lectura del puerto A (8 bits) y escribalos en puerto B (8 bits). Compile,

simule y llevelo a la práctica en Proteus e impleméntelo físicamente.

Codigo del porgrama y evidencias:

;******************************************

PROCESSOR 16F887

__CONFIG 0x2007,23E4

__CONFIG 0x2008,3FFF

INCLUDE <P16F887.INC> ; Incluimos los Registros del PIC18F887..

;******************************************

;2 ORIGEN DEL PROGRAMA

ORG 0X00

;3 CONFIGURACION DEL PIC

MOVLW D'96'

MOVWF STATUS

CLRF ANSEL

CLRF ANSELH

BCF STATUS,6

CLRF TRISB

MOVLW D'255'

MOVWF TRISA

BCF STATUS,5

;4 PROGRAMA PRINCIPAL

INICIO
MOVF PORTA,0

MOVWF PORTB

GOTO INICIO

;5 SUBRUTINAS

;6 FIN DE PROGRAMA

END

2. Programe una rutina de alternancia (toggle, entre 0 y 1) en las el puerto B,

unicamente entre de RA5:RA2, el perioro de oscilación deberá ser de 200ms.

Visualice en LEDs. Escriba su código, corrija errores, compile, simule y

programe su C. Polarice adecuadamente su C y los periféricos en Proteus.

Visualice en un osciloscopio las señales producidas por RA3:RA0, determine

su amplitud y frecuencia, empleando los instrumentos de Proteus y con los

instrumentos reales.

Codigo del porgrama y evidencias:

;******************************************
PROCESSOR 16F887
__CONFIG 0x2007,23E4
__CONFIG 0x2008,3FFF
INCLUDE <P16F887.INC> ; Incluimos los Registros
del PIC18F887..
;******************************************
;1 DECLARACION DE VARIABLES
NUM1 EQU 0X70
NUM2 EQU 0X71
NUM3 EQU 0X72

;2 ORIGEN DEL PROGRAMA


ORG 0X00
;3 CONFIGURACION DEL PIC
MOVLW D'96'
MOVWF STATUS
CLRF ANSEL
CLRF ANSELH
BCF STATUS,6
CLRF TRISB
BCF STATUS,5
;4 PROGRAMA PRINCIPAL
INICIO
CLRF PORTB
CALL RETARDO
MOVLW B'00111100'
MOVWF PORTB
CALL RETARDO

GOTO INICIO
;5 SUBRUTINAS
RETARDO
MOVLW D'10'
MOVWF NUM3
WAIT2
MOVLW D'200'
MOVWF NUM2
WAIT1
MOVLW D'166'
MOVWF NUM1
WAIT
DECFSZ NUM1,1
GOTO WAIT
DECFSZ NUM2,1
GOTO WAIT1
DECFSZ NUM3,1
GOTO WAIT2
RETURN
;6 FIN DE PROGRAMA
END
3. Diseño de un contador de 0 a 9, y entregue los números en LEDs en formato

binario por el puerto B, el conteo debe ser tal que el ojo humano lo pueda

visualizar (por ejemplo a 500ms). Incluya un SW (Switch) de stop, cuando

se oprima el conteo se dentendrá, si se libera continua el conteo. Escriba

su código, corrija errores, compile y programe su C. Polarice

adecuadamente su C y los periféricos.

Codigo del porgrama y evidencias:

;******************************************

PROCESSOR 16F887

__CONFIG 0x2007,23E4

__CONFIG 0x2008,3FFF

INCLUDE <P16F887.INC> ; Incluimos los Registros del PIC18F887..

;******************************************

;1 DECLARACION DE VARIABLES

NUMM1 EQU 0X022

NUM1 EQU 0X70

NUM2 EQU 0X71

NUM3 EQU 0X72

;2 ORIGEN DEL PROGRAMA

ORG 0X00

;3 CONFIGURACION DEL PIC

MOVLW D'96'

MOVWF STATUS

CLRF ANSEL

CLRF ANSELH
BCF STATUS,6

MOVLW B'00000001'

MOVWF TRISA

CLRF TRISB

BCF STATUS,5

;4 PROGRAMA PRINCIPAL

INICIO

MOVF NUMM1,W

SUBLW D'9'

BTFSC STATUS,2

GOTO CL

GOTO INICIO2

CL

CLRF NUMM1

CLRF PORTB

GOTO INICIO2

INICIO2

BTFSS PORTA,0

GOTO SI

GOTO INICIO2

SI

BTFSS PORTA,0

GOTO SII

GOTO SI

SII

MOVF NUMM1,W

INCF NUMM1,1

INCF PORTB
CALL RETARDO

GOTO INICIO

;5 SUBRUTINAS

RETARDO

MOVLW D'10'

MOVWF NUM3

WAIT2

MOVLW D'200'

MOVWF NUM2

WAIT1

MOVLW D'166'

MOVWF NUM1

WAIT

DECFSZ NUM1,1

GOTO WAIT

DECFSZ NUM2,1

GOTO WAIT1

DECFSZ NUM3,1

GOTO WAIT2

RETURN

;6 FIN DE PROGRAMA

END
4. Diseño de un contador de 0 a 9, y entregue los números y letras en display

de 7 segmentos ánodo común por el puerto B, el conteo debe ser tal que el

ojo humano lo pueda visualizar (por ejemplo a 500ms). Incluya un SW

(Switch) de stop, cuando se oprima el conteo se dentendrá, si se libera

continua el conteo. Escriba su código, corrija errores, compile y programe

su C. Polarice adecuadamente su C y los periféricos.

Codigo del porgrama y evidencias:

;******************************************

PROCESSOR 16F887

__CONFIG 0x2007,23E4

__CONFIG 0x2008,3FFF

INCLUDE <P16F887.INC> ; Incluimos los Registros del PIC18F887..

;******************************************

;1 DECLARACION DE VARIABLES

NUMM1 EQU 0X022

NUM1 EQU 0X70

NUM2 EQU 0X71

NUM3 EQU 0X72

;2 ORIGEN DEL PROGRAMA

ORG 0X00

;3 CONFIGURACION DEL PIC

MOVLW D'96'

MOVWF STATUS

CLRF ANSEL

CLRF ANSELH
BCF STATUS,6

MOVLW B'00000001'

MOVWF TRISA

CLRF TRISB

BCF STATUS,5

;4 PROGRAMA PRINCIPAL

INICIO

MOVF NUMM1,W

SUBLW D'10'

BTFSC STATUS,2

GOTO CL

GOTO INICIO2

CL

CLRF NUMM1

CLRF PORTB

GOTO INICIO2

INICIO2

BTFSS PORTA,0

GOTO SI

GOTO INICIO2

SI

BTFSS PORTA,0

GOTO SII

GOTO SI

SII

MOVF NUMM1,W

INCF NUMM1,1

CALL TABLA

MOVWF PORTB
CALL RETARDO

GOTO INICIO

;5 SUBRUTINAS

RETARDO

MOVLW D'10'

MOVWF NUM3

WAIT2

MOVLW D'200'

MOVWF NUM2

WAIT1

MOVLW D'166'

MOVWF NUM1

WAIT

DECFSZ NUM1,1

GOTO WAIT

DECFSZ NUM2,1

GOTO WAIT1

DECFSZ NUM3,1

GOTO WAIT2

RETURN

TABLA

addwf PCL,1

retlw b'00000011' ;0

retlw b'10011111' ;1

retlw b'00100101' ;2

retlw b'00001101' ;3

retlw b'10011001' ;4

retlw b'01001001' ;5
retlw b'01000001' ;6

retlw b'00011111' ;7

retlw b'00000001' ;8

retlw b'00001001' ;9

return

;6 FIN DE PROGRAMA

END

REFERENCIAS:

ELECTRONICS. (n.d.).

UNIOVIDEO. (n.d.). Retrieved from https://www.unioviedo.es/ate/alberto/TEMA4-puertos.pdf

También podría gustarte