Está en la página 1de 2

Practica - 1 Encendido de un led

En esta práctica aprenderemos a encender un led con el micro PIC16F887.


Utilizaremos la placa MCE Starter Kit Student.

Ejercicio: Encender un led conectado al pin RB0 del PIC16F887

Solución:
Código

;*****************************************************************************
;Practica 1 - Encendido de un Led
;Este programa enciende un led conectado al puerto B del micro en el placa
;MCE Starter KIT Student.
;Código desarrollado por mcelectronics
;*****************************************************************************

#include <p16F887.inc> ;Incluimos el archivo que contiene los registros del


;micro que utilizaremos

;Palabra de configuracion
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF &
_CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF &
_INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V

org 0 ;Instrucción al compilador, esta indica que el código precedente


;a esta instrucción se situara en la dirección indicada, en este
;caso la dirección 0 Hexa
Inicio:
bsf STATUS,RP0 ;selecciono banco 1
bcf TRISB,0 ;Configuro el pin RB0 como salida
bcf STATUS,RP0 ;Volvemos al banco 0
bsf PORTB,0 ;Enciendo el Led
goto $ ;Me quedo esperando
end

Descripción del código

La primera línea de instrucción después de los comentarios es una directiva al


compilador, esta instrucción incluye el archivo P16F887.inc en cuyo contenido
encontramos las definiciones de los registros que utilizaremos para programar este
micro.

La siguiente instrucción es otra directiva al compilador para modificar la palabra de


configuración.

La instrucción org tiene el siguiente formato

Org <dirección en hexadecimal>


Es otra directiva al compilador y le indica a este en que dirección de la memoria de
programa se encontrara el siguiente bloque de código. En nuestro ejemplo, el bloque
de código se colocara en la dirección 0 Hexa, que es la primer dirección con la que se
carga el Program Counter.

Comenzamos el código en assembler con la palabra Inicio:, esta es una etiqueta que
utilizaremos para identificar la primera instrucción que será cargada en el micro, esto
nos resultara muy útil cuando tengamos que hacer saltos condicionales en los
programas, ya que nos libramos de estar colocando las direcciones de la instrucción,
las invocaremos con las etiquetas.

Las instrucciones bsf y bcf ponen a uno y a cero, respectivamente, la dirección de bit
que se coloca a continuación. Así la primera instrucción pone a uno el bit RP0 del
Status, esto lo hacemos para seleccionar el banco 1 de la memoria RAM en donde
hallaremos el registro TRISB para configurar los pines I/O del puerto B. En este caso
configuramos RB0 como salida y volvemos al banco 0.
Por ultimo encendemos el led con la instrucción

bsf PORTB,0

Y nos quedamos en un bucle infinito saltando en la misma dirección con la instrucción

Goto $

El signo pesos en el compilador nos devuelve la dirección donde se halla esa


instrucción, así que en cada ciclo de maquina estamos saltando a la misma instrucción,
haciendo nada.

Al final de cada código debemos colocar la sentencia “end” para indicar el fin del
programa.

Ahora el programa esta listo para simularlo y cargarlo en el pic.

mc electronics ®
Ultima revisión Abril 2009. mcelectronics.com.ar - copyright 2009.
Todos los derechos reservados.

12234 A00200409

También podría gustarte