Sei sulla pagina 1di 4

UNIVERSIDAD

TCNICA DE AMBATO
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E
INDUSTRIAL
CARRERA: Electrnica y Comunicaciones
Mdulo: Microcontroladores
NIVEL: Sptimo Electrnica
TEMA Secuencia de 8 Leds con Desplazamiento de Izquierda a
Derecha
INTEGRANTES:
Iza Grace
Jinde Juan
Santos Paola
Ramrez Luis
Fecha de envi:
27/04/2015
Fecha de entrega:
11/05/2015
ING. Patricio Crdova
Descripcin

Periodo acadmico: Abril 2015 Septiembre 2015

La prctica consiste en realizar una secuencia de 8 leds, para lo cual es necesario realizar la
programacin en MPLAB IDE X, el mismo que trabaja con lenguaje assembler para luego obtener
el archivo .hex y realizar la respetiva simulacin.
En cuanto a la parte fsica se cuenta con un PIC16F887, resistencias y leds para proceder a la
implementacin de acuerdo con la simulacin que se realiz.
El retardo que existe para el cambio de estado de los leds se define de acuerdo al cristal oscilador
externo del PIC, que en este caso es de 4MHz y se tiene que para ejecutar una instruccin es
necesario a 4 ciclos de reloj y as obtener la velocidad de 1000000 Hz en el PIC16F887.
Para calcular el tiempo es el inverso de la velocidad o frecuencia que en este caso es
1/1000000=1us, para cada lnea de instruccin, aunque cada instruccin viene especificado cul es
su duracin.
El retardo se determina al multiplicar el tiempo de 1us, el tiempo establecido para la secuencia, 256
del preescaler, 256 de establecidos para el conteo. Es decir:
Retardo=1us*256*256*111= 7,27s
Obtenemos un tiempo aproximado de 7 segundos y esta manera podemos ir variando el retardo de
la secuencia.

Materiales

PIC16F887
8 Leds
8 Resistencias de 220 ohm
Cable UTP
Protoboard
Fuente de alimentacin DC

SIMULACIN

Fig. 1 Simulacin de la secuencia de led

CDIGO DEL PROGRAMA


#include "P16F887.INC"; Inclusion de la libreria del PIC16F887
conta equ 0x20;Declaracion de la variable conta en la memoria 0x20
tiempo equ 0x21;Declaracion de la variable tiempo en la memoria 0x21
org 0x000;Indica en que posicion de memoria se ejecuta el programa
goto main;Saltar a la etiqueta main
main;Definicion de etiqueta
bsf STATUS,RP0 ;Mover al banco 1
movlw b'00000000' ;Configuracion del puerto como salida D0 a D7
movwf TRISD;Mover el registro w al puerto D
movlw b'00000111'; prescalar 256 a TMR0
movwf OPTION_REG; Establece que por cada 256 pulsos de reloj se incremente en 1 el TMR0
bcf STATUS,RP0 ;Moverse al banco 0 para comenzar a trabajar
aqui2;Definicion de etiqueta

clrf conta;Inicilizacion de la variable conta en 0


bsf conta,0;Poner un 1 en el primer bit del registro conta
aqui1;Definicion de etiqueta
movf conta,w;;Mover el valor de conta al registro temporal w
movwf PORTD;Mover el valor de w al Puerto D
call retardo;Llamar a la rutina de retardo
bcf STATUS,C;poner en 0 la bandera de acarreo
rlf conta,f;Desplazar el registro conta izquierda y guardar en el mismo registro
movlw 0x00;;asignar el valor 0x00 en el registro w
xorwf conta,w;Realiza la operacion logica XOR entre conta y w
btfss STATUS,Z;Verifica si la bandera Z se hizo uno al realizar la XOR
goto aqui1;Direcciona la posicion a la que debe regresar el programa
goto aqui2;Direcciona la posicion a la que debe regresar el programa
retardo
clrf TMR0;Iniciliza el TMR0 en 0
aqui4;Definicion de etiqueta
movlw 0x5f;Asignar el valor 0x3f en el registro w. Determina el valor del retardo
movwf tiempo;Mover el vaor del registro w a la varaiable tiempo
aqui3;Definicion de etiqueta
movlw 0xff;Asignar el valor 0xff en el registro w
xorwf TMR0,w;Realiza la operacion logica XOR entre conta y w
btfss STATUS,Z;Verifica si la bandera Z se hizo uno al realizar la XOR
goto aqui3;Direcciona la posicion a la que debe regresar el programa
decfsz tiempo,f;Decrementa el registro f
goto aqui3;Direcciona la posicion a la que debe regresar el programa
ORG
DATA
end

return
0x2007
H'23d1'

; DIR. DE MEM. ROM DE LA PALABRA DE CONFIGURACION


; VALOR PARA LA PALABRA DE CONFIGURACION

Potrebbero piacerti anche