0% encontró este documento útil (0 votos)
160 vistas12 páginas

Report e Leds

Practica con led y microcontrolador en ensamblador
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 DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
160 vistas12 páginas

Report e Leds

Practica con led y microcontrolador en ensamblador
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 DOCX, PDF, TXT o lee en línea desde Scribd

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA


ESIME ZACATENCO
CARRERA INGENIERÍA EN CONTROL Y AUTOMATIZACIÓN

“Práctica 1 Encendido y Apagado


de Leds con secuencias”
PRESENTA:

Hernández Castellanos Brian Jeremy

MATERIA:

Interfases y Microcontroladores

PROFESOR:

Velázquez Sánchez Alejandro Tonatiu

FECHA DE ENTREGA:

11 / Junio / 2018
GRUPO:

7AV2

Delegación Gustavo A. Madero, D.F. Junio del 2018.

1
Índice
Introducción ............................................................................................................................ 1
Objetivos................................................................................................................................. 1
Conceptos básicos de un Microcontrolador............................................................................ 1
Material................................................................................................................................... 3
Diagrama de Flujo .................................................................................................................. 3
Programa en Matlab................................................................................................................ 4
Simulación en Proteus ............................................................................................................ 8
Conclusiones........................................................................................................................... 9
Referencias ........................................................................................................................... 10

2
Introducción
El uso de los puertos del Microcontrolador es fundamental para el desarrollo de programas
para el Microcontrolador, cabe mencionar que el Microcontrolador utilizado es el
PIC16F886. El microcontrolador es un dispositivo dedicado solamente a la tarea por la que
fue programado. Para el encendido y apagado de leds fue necesario configurar el puerto B
como salida, para eso debemos de cambiar de bancos, el mismo procedimiento es para definir
las entradas y salidas como digitales. Una vez configurado los puertos y regresando al banco
0 se programan los encendidos y apagados de los Leds.

Objetivos
 Realizar 4 secuencias de encendido y apagado de 8 Leds en el Puerto B.
 Familiarizarse con las instrucciones del Microcontrolador.
 Desarrollar el programa en MPLAB y simularlo en Proteus.

Conceptos básicos de un Microcontrolador


Los microcontroladores PIC desarrollados por Microchip Technology y hay varios aspectos
que tocar.

El nombre verdadero de este microcontrolador es PIC micro (Peripheral Interface


Controller), conocido bajo el nombre PIC. Su primer antecesor fue creado en 1975 por la
compañía General Instruments. Este chip denominado PIC1650 fue diseñado para propósitos
completamente diferentes. Diez años más tarde, al añadir una memoria EEPROM, este
circuito se convirtió en un verdadero microcontrolador PIC. Hace unos pocos años la
compañía Microchip Technology fabricó la 5 billonésima muestra

Todos los microcontroladores PIC utilizan una arquitectura Harvard, lo que quiere decir que
su memoria de programa está conectada a la CPU por más de 8 líneas. Hay
microcontroladores de 12, 14 y 16 bits, dependiendo de la anchura del bus.

El juego de instrucciones para los microcontroladores 16F886 incluye 35 instrucciones en


total. La razón para un número tan reducido de instrucciones yace en la arquitectura RISC.
Esto quiere decir que las instrucciones son bien optimizadas desde el aspecto de la velocidad
operativa, la sencillez de la arquitectura y la compacidad del código. Lo malo de la
arquitectura RISC es que se espera del programador que haga frente a estas instrucciones.
Por supuesto, esto es relevante sólo si se utiliza el lenguaje ensamblador para la programación

Todas las instrucciones se ejecutan en un ciclo. Las únicas excepciones pueden ser las
instrucciones de ramificación condicional o las instrucciones que cambian el contenido del
contador de programa. En ambos casos, dos ciclos de reloj son necesarios para la ejecución
de la instrucción, mientras que el segundo ciclo se ejecuta como un NOP (No operación). Las
instrucciones de un ciclo consisten en cuatro ciclos de reloj. Si se utiliza un oscilador de 4

1
MHz, el tiempo nominal para la ejecución de la instrucción es 1μS. En cuanto a las
instrucciones de ramificación, el tiempo de ejecución de la instrucción es 2μS.

Un microcontrolador es un circuito integrado de alta escala de integración que incorpora la


mayor parte de los elementos que configuran un controlador.

Un microcontrolador dispone normalmente de los siguientes componentes:

 Procesador o UCP (Unidad Central de Proceso).


 Memoria RAM para Contener los datos.
 Memoria para el programa tipo ROM/PROM/EPROM.
 Líneas de E/S para comunicarse con el exterior.
 Diversos módulos para el control de periféricos (temporizadores, Puertas
Serie y Paralelo, CAD: Conversores Analógico/Digital, CDA: Conversores
Digital/Analógico, etc.).
 Generador de impulsos de reloj que sincronizan el funcionamiento de todo el
sistema.

Los productos que para su regulación incorporan un microcontrolador disponen de las


siguientes ventajas:

 Aumento de prestaciones: un mayor control sobre un determinado elemento


representa una mejora considerable en el mismo.
 Aumento de la fiabilidad: al reemplazar el microcontrolador por un elevado
número de elementos disminuye el riesgo de averías y se precisan menos
ajustes.
 Reducción del tamaño en el producto acabado: La integración del
microcontrolador en un chip disminuye el volumen, la mano de obra y los
stocks.
 Mayor flexibilidad: las características de control están programadas por lo que
su modificación sólo necesita cambios en el programa de instrucciones.

Figura 1.1 Microcontrolador

El microcontrolador es un sistema cerrado. Todas las partes del computador están contenidas
en su interior y sólo salen las líneas que gobiernan los periféricos.

2
Material

 PIC 16F886.
 Protoboard.
 4 Diodos Luminosos (LED).
 8 Resistencias 1KΩ.
 4 Push Button.

Diagrama de Flujo
El diagrama de flujo para realizar las secuencias de leds es el siguiente:

Figura 1.2 Diagrama de Flujo

3
Programa en Matlab
El programa fue desarrollado en Matlab con el uso de nemónicos, los cuales los interpreta
en lenguaje máquina, el programa es el siguiente:

List p=16f886 ; list directive to define processor


#Include <[Link]> ; processor specific variable definitions

__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF &
_CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF &
_INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V

CONT1 EQU 0x20


CONT2 EQU 0x21
CONT3 EQU 0x22
CONT EQU 0x23
PORTB EQU 0x06
PORTC EQU 0x07
TRISB EQU 0x86
TRISC EQU 0x87
ANSELH EQU 0x189
STATUS EQU 0x03
RP0 EQU 0x05
RP1 EQU 0x06
B3 EQU 0x03
B2 EQU 0x02
B1 EQU 0x01
B0 EQU 0x00
ORG 0x00
GOTO MAIN
ORG 0X20
;***********************CONFIGURACIÓNDEPUERTOS*********************
MAIN
CLRF PORTB ;Limpia Portb por si tiene otro dato
CLRF PORTC ;Limpia Portc por si tiene otro dato
BSF,STATUS RP1 ;Acceso al banco 1
MOVLW b'00001111'
MOVWF TRISC ;Configuran pines de puerto c: 0,1,2,3 como entradas
CLRF TRISB ;Configuran todos los pines de puerto b como salidas
BSF STATUS RP1
BSFSTATUS RP0 ;Acceso a banco 3 rp1=1 rp0=1
CLRF ANSELH ;Se configurarn los puertos como digitales
BCF STATUS,RP0
BCF STATUS,RP1 ;Regreso al banco 0

4
;***************************PROGRAMAPRINCIPAL************************

CC1 BTFSS PORTC,B3 ;Evalua si el pin 3 salta si tiene cero binario


CALL BLINK8 ;Llama a la subrutina blink8
BTFSS PORTC,B2 ;Evalua si el pin 2 salta si tiene cero binario
CALL NIBLES ;Llama a la subrutina blink8
BTFSS PORTC,B1 ;Evalua si el pin 1 salta si tiene cero binario
CALL ZIGZAG ;Llama a la subrutina zigzag
BTFSS PORTC,B0 ;Evalua si el pin 0 salta si tiene cero binario
CALL ZIGZAG2 ;Llama a la subrutina blink8
GOTO CC1

;*****************PRIMERSECUENCIA*************************************

BLINK8 CLRF CONT ;se limpia el registro del contador de blink


MOVLW D'10' ;Para que se repita 10 veces.
MOVWF CONT
BLINK MOVLW b'11111111'
MOVWF PORTB ;Se encienden Leds
CALL DELAY200
MOVLW b'00000000'
MOVWF PORTB ;Se apagan Leds
CALL DELAY200
DECFSZ CONT,F
GOTO BLINK
RETURN

;****************************SEGUNDASECUENCIA************************

NIBLES CLRF CONT ;Se limpia el registro del contador de nibles


MOVLW D'10'
MOVWF CONT ;10 veces
NIBLE MOVLW B'00001111'
MOVWF PORTB ;Se encienden el nible bajo de puertob
CALL DELAY200 ;Retraso de 200ms
MOVLW B'11110000'
MOVWF PORTB ;Se encienden el nible alto de puertob
CALL DELAY200
DECFSZ CONT,F
GOTO NIBLE
RETURN

;******************************TERCERASECUENCIA**********************

ZIGZAG CLRF CONT


MOVLW D'10'
MOVWF CONT ;Se carga el contador con 10
5
ZIG MOVLW B'10000000'
MOVWF PORTB ;Se encienden el led 7 del puerto b
CALL DELAY200
MOVLW B'01000000'
MOVWF PORTB
CALL DELAY200
MOVLW B'00100000'
MOVWF PORTB
CALL DELAY200 ;RETRASO DE 200MS
MOVLW B'00010000'
MOVWF PORTB
CALL DELAY200 ;RETRASO DE 200MS
MOVLW B'00001000'
MOVWF PORTB
CALL DELAY200 ;RETRASO DE 200MS
MOVLW B'00000100'
MOVWF PORTB
CALL DELAY200 ;RETRASO DE 200MS
MOVLW B'00000010'
MOVWF PORTB
CALL DELAY200 ;RETRASO DE 200MS
MOVLW B'00000001'
MOVWF PORTB
CALL DELAY200 ;RETRASO DE 200MS
MOVLW B'00000010'
MOVWF PORTB
CALL DELAY200 ;RETRASO DE 200MS
MOVLW B'00000100'
MOVWF PORTB
CALL DELAY200 ;RETRASO DE 200MS
MOVLW B'00001000'
MOVWF PORTB
CALL DELAY200 ;RETRASO DE 200MS
MOVLW B'00010000'
MOVWF PORTB
CALL DELAY200 ;RETRASO DE 200MS
MOVLW B'00100000'
MOVWF PORTB
CALL DELAY200 ;RETRASO DE 200MS
MOVLW B'01000000'
MOVWF PORTB
CALL DELAY200 ;RETRASO DE 200MS
DECFSZ CONT,F ;Decrementa el contador hasta 0
GOTO ZIG

RETURN

6
;**************************CUARTASECUENCIA***************************

ZIGZAG2 CLRF CONT ;Se limpia el registro del contador de zigzag


MOVLW D'10'
MOVWF CONT ;Se repite 10 veces
ZIG2 MOVLW B'00011000'
MOVWF PORTB ;Se enciende LED 3 y 4.
CALL DELAY200
MOVLW B'00100100'
MOVWF PORTB ;Se enciende Led 2 y 5.
CALL DELAY200 ;RETRASO DE 200MS
MOVLW B'01000010'
MOVWF PORTB ;Se enciende Led 1 y 6.
CALL DELAY200 ;RETRASO DE 200MS
MOVLW B'10000001'
MOVWF PORTB ;Se enciende Led 0 y 7.
CALL DELAY200 ;RETRASO DE 200MS
MOVLW B'01000010'
MOVWF PORTB
CALL DELAY200 ;RETRASO DE 200MS
MOVLW B'00100100'
MOVWF PORTB
CALL DELAY200 ;RETRASO DE 200MS
DECFSZ CONT,F ;Decrementa hasta 0.
GOTO ZIG2
RETURN

DELAY200 MOVLW 0X07 ;FF


MOVWF CONT1
NXT3 MOVLW 0XFF ;FF
MOVWF CONT2
NXT2 MOVLW 0X0F ;0F PARA UN DELAY DE 200 MS
MOVWF CONT3
NXT1 DECFSZ CONT3, F
GOTO NXT1
DECFSZ CONT2, F
GOTO NXT2
DECFSZ CONT1, F
GOTO NXT3
RETURN

END

7
Simulación en Proteus
Simulando en Proteus (figura 1.2), donde vemos los 4 Push Button desde RC0 hasta RC4 y
en la salida 8 leds, desde RB0 hasta RB7.

Figura 1.3 Simulación del programa.

Presionando el primer Push Button se ejecuta la secuencia programada de encender y apagar


los leds del Puerto B de los extremos hasta el centro, realizando esta secuencia 10 veces.

Figura 1.4 Simulación con la primera secuencia.

Presionando el segundo Push Button se ejecuta la segunda secuencia, donde se van


encendiendo uno a uno los leds del Puerto B.

Figura 1.5 Simulación con la segunda secuencia.

8
Presionando el tercer Push Button se ejecuta la tercera secuencia, donde se encienden 4 leds
del Puerto B mientras que los otros están apagados.

Figura 1.6 Simulación con la tercera secuencia.

Presionando el cuarto Push Button se ejecuta la cuarta secuencia, donde se encienden y


apagan todos los leds del Puerto B.

Figura 1.7 Simulación con la Cuarta Secuencia.

Conclusiones
Fue posible desarrollar un programa el cual encendiera y apagara leds del Puerto B,
denotando la importancia de la configuración de puertos para colocarlos como entrada o
como salida, además de definir con ANSELH que sean entradas y salidas digitales. La
importancia de la configuración de puertos es fundamental para desarrollar el programa
correctamente. El uso de softwares como MPLAB y Proteus fue de gran ayuda para diseñar
y simular el programa, además de familiarizarse con el microcontrolador el cual es RISC
(reduce instruction set computer), donde solamente se cuentan con 35 instrucciones. El
microcontrolador tiene dentro de sus características es que el microcontrolador es dedicado,
esto quiere decir que una vez programado, solamente va a enfocarse en la tarea por la cual
fue diseñado.

9
Referencias

 Hoja de datos PIC 16F886 - Microchip Technology Website.


In-Circuit Serial Programming (ICSP™) Guide.
Documentos técnicos de Microchip Corporation, [Link]
Consultado el 06/06/2018

10

También podría gustarte