Está en la página 1de 7

TUTORIAL I

OBJETIVOS

Crear archivos y proyectos en el programa MPLAB.


Familiarizarse con los registros del microcontrolador PIC16F877A.
Realizar el primer proyecto: Prender y apagar un led.
Aprender a programar microcontroladores PIC con el software IC-Prog.
Identificar las ventajas de los proyectos codificados en Lenguaje C comparados con los
codificados en Lenguaje ensamblador.

PROYECTO 1: Prender y apaga un led.


El proyecto consiste en configurar un pin del microcontrolador para que en un momento dado
enve 5V y prenda un led, y pasado un segundo enve 0V y por tanto apague el led. El
programa se har de tal manera que la operacin descrita se efecte en un ciclo infinito y se
vea a un led intermitente.
Para ello vamos a usar del puerto B el pin de mayor peso, es decir el RB7, el pin 40 del
microcontrolador. Modificando el registro TRISB podemos configurar el puerto como salida
digital y para luego indicarle que enve pulsos de unos y ceros a intervalo de 1 segundo
por el pin RB7 de ese puerto.
Vamos primero a elaborar el cdigo en Lenguaje ensamblador.

CODIGO LENGUAJE ENSAMBLADOR

1. Abrimos el programa MPLAB, dando click en Inicio / Programas / Microchip MPLAB IDE /
MPLAB IDE, en el icono que aparece en el escritorio despus de efectuada la
instalacin del programa.
2. Creamos un proyecto nuevo de la siguiente manera: damos click en Project / Project
Wizard... Aparece la ventana de bienvenida al asistente de creacin de proyectos, damos
click en siguiente para avanzar.
3. Aparece la ventana del paso 1 del asistente: Seleccionar un dispositivo. Elegimos el tipo
de microcontrolador que vamos a utilizar, en este caso trabajaremos con el PIC16F877A,
luego damos click en siguiente para continuar.
4. En el paso 2 del asistente, en el men Active toolsuite seleccionamos el tipo de lenguaje
con que vamos a trabajar, en este caso trabajaremos con Microchip MPSAM Toolsuite.
Debemos verificar adems que en Toolsuite contents no aparezcan equis rojas que
denotan una incorrecta instalacin del programa. Click en Siguiente para avanzar.
5. En el paso 3 daremos nombre al proyecto en el cuadro de texto Project Name y
seleccionaremos una carpeta para guardarlo dando click en Browse.... Como nombre

sugerimos on_led_ASM y como carpeta C:\SIMUPIC. Damos click en siguiente una vez
hecho esto.
6. En el paso 4 del asistente podemos adicionar un archivo ya creado seleccionando la
carpeta donde est y dando clik en Add; en nuestro caso seguimos con el siguiente paso,
damos click en siguiente.
7. En el ltimo paso del asistente verificamos que la informacin dada en los anteriores
pasos sea correcta. En caso de haber algn error podemos devolvernos dando click en el
botn Atrs. Damos click en finalizar para que nos cree el proyecto.
8. Luego de haber creado un proyecto nuevo, vamos a crear un nuevo archivo para
adicionar al proyecto, damos click en: File / New. En este archivo nuevo que creamos,
vamos a escribir el programa que hace prender y apagar el led.
9. Escribimos el siguiente cdigo:
INCLUDE
PDel0
PDel1
PDel2

CONFIG

P16F877A.INC

EQU
EQU
EQU

0X20
0X21
0X22

; Variable utilizada por DELAY


; Variable utilizada por DELAY
; Variable utilizada por DELAY

ORG

; Inicio de programa en la direccin 0x0000 de la


; Memoria FLASH

GOTO

CONFIG

ORG

BSF
BCF
BCF

PROGRAM BSF
CALL
BCF
CALL
GOTO

; Se salta la direccin 0x0004, el vector de


; INTERRUPCIONES
STATUS,RP0 ;BANCO 1
TRISB,7
;RB7 como salida en el PUERTO B
STATUS,RP0 ;Regresamos al BANCO 0
PORTB,7
DELAY1_S
PORTB,7
DELAY1_S
PROGRAM

;Se enciende el LED


; Retardo de un segundo
;OFF LED
; Retardo de un segundo
; Regreso a PROGRAMA para hacer el BUCLE
; INFINITO
;------------------------------------------------------------; Code generated by PDEL ver 1.0 on 16/02/2005 at 16:36:17
; Description: Waits 1000000 cycles
;------------------------------------------------------------DELAY1_S movlw .14
; 1 set number of repetitions (C)
movwf PDel0
;1|
PLoop0
movlw .72
; 1 set number of repetitions (B)
movwf PDel1
;1|

PLoop1

movlw .247
; 1 set number of repetitions (A)
movwf PDel2
;1|
PLoop2
clrwdt
; 1 clear watchdog
decfsz PDel2, 1
; 1 + (1) is the time over? (A)
goto
PLoop2
; 2 no, loop
decfsz PDel1, 1
; 1 + (1) is the time over? (B)
goto
PLoop1
; 2 no, loop
decfsz PDel0, 1
; 1 + (1) is the time over? (C)
goto
PLoop0
; 2 no, loop
PDelL1
goto
PDelL2
; 2 cycles delay
PDelL2
clrwdt
; 1 cycle delay
return
; 2+2 Done
;------------------------------------------------------------END
10. Damos click en File / Save as... Bautizamos el archivo como on_led_ASM y lo
guardamos preferiblemente en la misma carpeta del proyecto, es decir C:\SIMUPIC.
Despus de esto damos click en Project \ Add Files to project... Seleccionamos el archivo
que acabamos de guardar y damos click en Abrir.
11. Antes de compilar el proyecto vamos a verificar que el MPLAB nos genere el archivo con
la extensin correcta *.HEX. Damos click en Project / Build Options... / Project.
12. En la pestaa PICC Linker damos click en el botn Restore Defaults Verificamos que
aparezca -O"$(TARGETBASE).hex" escrito en el cuadro de texto contiguo al botn.
Damos click en Aplicar para guardar los cambios y en aceptar
13. Vamos a compilar el proyecto de la siguiente manera: Click en Project / Make (O tambin
Project / Build All). Aparece la ventana Output con la pestaa Build seleccionada, y todo
un reporte de la operacin. En este reporte pueden aparecer errores o advertencias si
por ejemplo la sintaxis del cdigo no es correcta. Si la compilacin fue exitosa aparece el
mensaje BUILD SUCCEEDED al final del reporte.
14. Se programa el microcontrolador con el IC-PROG tal como esta descrito en las memorias
del curso. Se hacen las conexiones mostradas en el diagrama (mas abajo) y se
comprueba que el dispositivo funcione correctamente.
15. De haber alguna incongruencia entre el comportamiento terico y el real revise primero
las conexiones (si es necesario consulte el datasheet del PIC16F877A para ver los
diagramas de pines) y luego paso por paso el tutorial para encontrar en algn punto el
error.
Vamos ahora a elaborar el cdigo en Lenguaje C.

CODIGO LENGUAJE C

16. Abrimos el programa MPLAB.

17. Creamos un proyecto nuevo dando click en: Project/Project Wizard... click en siguiente.
Elegimos el microcontrolador PIC16F877A en el paso 1, click en siguiente para continuar.
18. En el paso 2 del asistente, en el men Active toolsuite seleccionamos el tipo de lenguaje
con que vamos a trabajar, en este caso trabajaremos HI-TECH PICC Toolsuite. Se
verifican que en Toolsuite contents no aparezcan las equis rojas antes mencionadas,
click en Siguiente. En el paso 3 como nombre al proyecto sugerimos on_led_C y como
carpeta C:\SIMUPIC. Damos click en siguiente una vez hecho esto. El paso 4 lo omitimos
dando click en siguiente. Verificamos por ultimo que la informacin dada sea correcta y
click en finalizar para que nos cree el proyecto.
19. Luego de haber creado el proyecto creamos un nuevo archivo de cdigo en C que se
adicionara al proyecto. Click en File / New.
20. Tecleamos el siguiente cdigo en C:
#include <pic.h>
#include "delay.h"
#include "delay.c"
/*delay.h y delay.c se deben incluir en la misma carpeta del proyecto extradas de
picClite/samples/delay */
void main(void)
{
TRISB=0;
for(;;)
{
RB7=1;
DelayMs(1000);
RB7=0;
DelayMs(1000);
}

//Configura puerto B como salida


//Ciclo infinito que prende y apaga el LED
//Manda 5 Voltios por el pin RB7 (Prende el LED)
//Retardo de 1000Ms = 1seg
//Manda 0 Voltios por el pin RB7 (Apaga LED)
//Retardo de 1seg
//Vuelve a empezar el ciclo

}
21. Guardamos el archivo como on_led_C en la misma carpeta del proyecto, es decir
C:\SIMUPIC. Despus de esto adicionamos al proyecto el archivo que acabamos de
generar.
22. Antes de Compilar copiamos los archivos delay.h y delay.c a la carpeta donde guardamos
el proyecto, es decir, C:\SIMUPIC. Algunas veces para compilar es necesario incluir estas
libreras y archivos como Header Files, para lo cual damos clic derecho en Header
Files en la ventana principal del proyecto (donde aparece adems Source Files, Library

Files, etc) y seleccionamos add files. Los buscamos en la carpeta donde los copiamos y
les damos abrir. El delay.h se ir a Header Files y el delay.c a source files.
23. Compilamos el proyecto. Si aparecen mensajes de error en el reporte que aparece en la
ventana output damos doble click sobre ellos, el programa mostrara el rengln donde
esta el error. La sintaxis del lenguaje C es muy sensible y detecta errores tan simples
como omitir puntos y comas, escribir comandos en mayscula, colocar parntesis en
vez de llaves.
24. Una vez corregidos los errores si es que estos se presentaron, se vuelve a compilar
hasta que esta sea exitosa. El cdigo on_led_C.HEX queda generado, archivo necesario
para proceder a programar el microcontrolador con el IC-PROG.
25. Se programa el microcontrolador con el IC-PROG tal lo hizo para la primera parte de este
tutorial, tal cual esta descrito en las memorias del curso, y efecte las conexiones
mostradas en el diagrama compruebe que el dispositivo funcione correctamente.
26. De haber alguna incongruencia entre el comportamiento terico y el real revise primero
las conexiones (si es necesario consulte el datasheet del PIC16F877A para ver los
diagramas de pines) y luego paso por paso el tutorial para encontrar en algn punto el
error.

DIAGRAMA DE CONEXIONES

CIRCUITO IMPRESO

También podría gustarte