SlideShare una empresa de Scribd logo
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
envíe 5V y prenda un led, y pasado un segundo envíe 0V y por tanto apague el led. El
programa se hará de tal manera que la operación descrita se efectúe 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 envíe pulsos de “unos” y “ceros” a intervalo de 1 segundo
por el pin RB7 de ese puerto.

Vamos primero a elaborar el código 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 después de efectuada la
   instalación 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 creación 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 además que en ”Toolsuite contents” no aparezcan equis rojas que
   denotan una incorrecta instalación 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 información dada en los anteriores
   pasos sea correcta. En caso de haber algún error podemos devolvernos dando click en el
   botón “Atrás”. 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 código:

        INCLUDE      P16F877A.INC

PDel0         EQU           0X20            ; Variable utilizada por DELAY
PDel1         EQU           0X21            ; Variable utilizada por DELAY
PDel2         EQU           0X22            ; Variable utilizada por DELAY

              ORG           0               ; Inicio de programa en la dirección 0x0000 de la
                                            ; Memoria FLASH
              GOTO          CONFIG

              ORG           5          ; Se salta la dirección 0x0004, el vector de
                                       ; INTERRUPCIONES
CONFIG        BSF           STATUS,RP0 ;BANCO 1
              BCF           TRISB,7    ;RB7 como salida en el PUERTO B
              BCF           STATUS,RP0 ;Regresamos al BANCO 0

PROGRAM BSF                 PORTB,7                    ;Se enciende el LED
        CALL                DELAY1_S                   ; Retardo de un segundo
        BCF                 PORTB,7                    ;OFF LED
        CALL                DELAY1_S                   ; Retardo de un segundo
        GOTO                PROGRAM                    ; 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.
    Después 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 extensión correcta *.HEX. Damos click en Project / Build Options... / Project.

12. En la pestaña ”PICC Linker” damos click en el botón “Restore Defaults” Verificamos que
    aparezca ”-O"$(TARGETBASE).hex" escrito en el cuadro de texto contiguo al botón.
    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 también
    Project / Build All). Aparece la ventana Output con la pestaña Build seleccionada, y todo
    un reporte de la operación. En este reporte pueden aparecer errores o advertencias si
    por ejemplo la sintaxis del código no es correcta. Si la compilación 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 teórico 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 algún punto el
    error.

Vamos ahora a elaborar el código 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 información 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 código en C que se
    adicionara al proyecto. Click en File / New.

20. Tecleamos el siguiente código 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 extraídas de
   picClite/samples/delay */

   void main(void)

   {
       TRISB=0;               //Configura puerto B como salida
       for(;;)                //Ciclo infinito que prende y apaga el LED
       {
         RB7=1;                //Manda 5 Voltios por el pin RB7 (Prende el LED)
         DelayMs(1000);       //Retardo de 1000Ms = 1seg
         RB7=0;               //Manda 0 Voltios por el pin RB7 (Apaga LED)
         DelayMs(1000);        //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. Después 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
    librerías y archivos como “Header Files”, para lo cual damos clic derecho en “Header
    Files” en la ventana principal del proyecto (donde aparece además 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 renglón 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 mayúscula, ó colocar paréntesis 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 código 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 efectúe las conexiones
    mostradas en el diagrama compruebe que el dispositivo funcione correctamente.

26. De haber alguna incongruencia entre el comportamiento teórico 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 algún punto el
    error.
DIAGRAMA DE CONEXIONES
CIRCUITO IMPRESO

Más contenido relacionado

La actualidad más candente

Diferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuencialesDiferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuenciales
Wilfred Garcia Diomeda
 
Señales y sistemas
Señales y sistemasSeñales y sistemas
Señales y sistemas
MateoLeonidez
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y teclado
Luis Zurita
 
Amplificación de señal con BJT
Amplificación de señal con BJTAmplificación de señal con BJT
Amplificación de señal con BJT
Jonathan Ruiz de Garibay
 
Algebra de Boole
Algebra de Boole  Algebra de Boole
Algebra de Boole
Luis Gonzalez
 
Montaje de un indicador de la tensión de la bateria
Montaje de un indicador de la tensión de la bateriaMontaje de un indicador de la tensión de la bateria
Montaje de un indicador de la tensión de la bateria
Jomicast
 
Programacion en WinCupl
Programacion en WinCuplProgramacion en WinCupl
Programacion en WinCupl
Gilbert_28
 
Configuraciones basicas del amplificador operacional Clase 5
Configuraciones basicas del amplificador operacional Clase 5Configuraciones basicas del amplificador operacional Clase 5
Configuraciones basicas del amplificador operacional Clase 5
Tensor
 
Diseño de Circuitos Secuenciales
Diseño de Circuitos SecuencialesDiseño de Circuitos Secuenciales
Diseño de Circuitos Secuenciales
Fernando Aparicio Urbano Molano
 
Comparador de magnitud (7485)
Comparador de magnitud (7485)Comparador de magnitud (7485)
Comparador de magnitud (7485)
Emilio José González
 
Soluciones: Openheim - Sistemas y señales - cap 5
Soluciones: Openheim - Sistemas y señales - cap 5Soluciones: Openheim - Sistemas y señales - cap 5
Soluciones: Openheim - Sistemas y señales - cap 5
Carlos Brizuela
 
Sumador\Restador
Sumador\RestadorSumador\Restador
Sumador\Restador
Jeduard Ortega M
 
maquinas de turing jflap
maquinas de turing jflapmaquinas de turing jflap
maquinas de turing jflap
Anel Sosa
 
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
Luis Zurita
 
Sumador de 4 bits
Sumador de 4 bitsSumador de 4 bits
Sumador de 4 bits
Abril Bello
 
Algebra Booleana 2
Algebra Booleana 2Algebra Booleana 2
Algebra Booleana 2
Instituto Von Neumann
 
Comparador de 4 bits
Comparador de 4 bitsComparador de 4 bits
Comparador de 4 bits
Juan Escobedo Flores
 
Resolución de ejercicios compuertas lógicas
Resolución de ejercicios compuertas lógicasResolución de ejercicios compuertas lógicas
Resolución de ejercicios compuertas lógicas
Carlos Gascón
 
Configurar la seguridad del switch
Configurar la seguridad del switchConfigurar la seguridad del switch
Configurar la seguridad del switch
Eduardo Sanchez Piña
 
Circuitos RC: Física C-ESPOL
Circuitos RC: Física C-ESPOLCircuitos RC: Física C-ESPOL
Circuitos RC: Física C-ESPOL
ESPOL
 

La actualidad más candente (20)

Diferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuencialesDiferencias entre circuitos combinacionales y secuenciales
Diferencias entre circuitos combinacionales y secuenciales
 
Señales y sistemas
Señales y sistemasSeñales y sistemas
Señales y sistemas
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y teclado
 
Amplificación de señal con BJT
Amplificación de señal con BJTAmplificación de señal con BJT
Amplificación de señal con BJT
 
Algebra de Boole
Algebra de Boole  Algebra de Boole
Algebra de Boole
 
Montaje de un indicador de la tensión de la bateria
Montaje de un indicador de la tensión de la bateriaMontaje de un indicador de la tensión de la bateria
Montaje de un indicador de la tensión de la bateria
 
Programacion en WinCupl
Programacion en WinCuplProgramacion en WinCupl
Programacion en WinCupl
 
Configuraciones basicas del amplificador operacional Clase 5
Configuraciones basicas del amplificador operacional Clase 5Configuraciones basicas del amplificador operacional Clase 5
Configuraciones basicas del amplificador operacional Clase 5
 
Diseño de Circuitos Secuenciales
Diseño de Circuitos SecuencialesDiseño de Circuitos Secuenciales
Diseño de Circuitos Secuenciales
 
Comparador de magnitud (7485)
Comparador de magnitud (7485)Comparador de magnitud (7485)
Comparador de magnitud (7485)
 
Soluciones: Openheim - Sistemas y señales - cap 5
Soluciones: Openheim - Sistemas y señales - cap 5Soluciones: Openheim - Sistemas y señales - cap 5
Soluciones: Openheim - Sistemas y señales - cap 5
 
Sumador\Restador
Sumador\RestadorSumador\Restador
Sumador\Restador
 
maquinas de turing jflap
maquinas de turing jflapmaquinas de turing jflap
maquinas de turing jflap
 
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
 
Sumador de 4 bits
Sumador de 4 bitsSumador de 4 bits
Sumador de 4 bits
 
Algebra Booleana 2
Algebra Booleana 2Algebra Booleana 2
Algebra Booleana 2
 
Comparador de 4 bits
Comparador de 4 bitsComparador de 4 bits
Comparador de 4 bits
 
Resolución de ejercicios compuertas lógicas
Resolución de ejercicios compuertas lógicasResolución de ejercicios compuertas lógicas
Resolución de ejercicios compuertas lógicas
 
Configurar la seguridad del switch
Configurar la seguridad del switchConfigurar la seguridad del switch
Configurar la seguridad del switch
 
Circuitos RC: Física C-ESPOL
Circuitos RC: Física C-ESPOLCircuitos RC: Física C-ESPOL
Circuitos RC: Física C-ESPOL
 

Destacado

Parpadear un LED
Parpadear un LEDParpadear un LED
Parpadear un LED
Alexander Arteaga
 
Introduccion a los microcontroladores pic y programacion de una matriz de led's
Introduccion a los microcontroladores pic y programacion de una matriz de led'sIntroduccion a los microcontroladores pic y programacion de una matriz de led's
Introduccion a los microcontroladores pic y programacion de una matriz de led's
Ruderocker Billy
 
"Hola Mundo" C18, PIC18F y MPLAB
"Hola Mundo"  C18,  PIC18F y MPLAB"Hola Mundo"  C18,  PIC18F y MPLAB
"Hola Mundo" C18, PIC18F y MPLAB
BlackD10
 
Arquitectura Microcontrolador PIC16F887
Arquitectura Microcontrolador PIC16F887Arquitectura Microcontrolador PIC16F887
Arquitectura Microcontrolador PIC16F887
Fernando Aparicio Urbano Molano
 
Curso de-mcu-proteus
Curso de-mcu-proteusCurso de-mcu-proteus
Curso de-mcu-proteus
Francisco Nieva Ricaldi
 
AGROMOTORZ
AGROMOTORZAGROMOTORZ
Eplogo leyendo-el-futuro
Eplogo leyendo-el-futuroEplogo leyendo-el-futuro
Eplogo leyendo-el-futuro
Mase Lobe
 
Presentación.- Tema 4.
Presentación.- Tema 4.Presentación.- Tema 4.
Presentación.- Tema 4.
Nachobm12
 
15tradicional oshe
15tradicional  oshe15tradicional  oshe
15tradicional oshe
Mase Lobe
 
ACTIVIDADES PARA EDUCACION A DISTANCIA
ACTIVIDADES PARA EDUCACION A DISTANCIAACTIVIDADES PARA EDUCACION A DISTANCIA
ACTIVIDADES PARA EDUCACION A DISTANCIA
Cristina Cuenca
 
Gustar
GustarGustar
Gustar
325298
 
Carateristicas
CarateristicasCarateristicas
Carateristicas
Dania Minako J. Lucero
 
Deportes extremos
Deportes extremosDeportes extremos
Deportes extremos
cataarciniegas14
 
Dia de la madre (hector fabio arbeladez)6 2
Dia de la madre (hector fabio arbeladez)6 2Dia de la madre (hector fabio arbeladez)6 2
Dia de la madre (hector fabio arbeladez)6 2
Hector Osorio
 
Diccionario maria
Diccionario mariaDiccionario maria
Diccionario maria
MONTSE GAZQUEZ FERNANDEZ
 
L’evolució política d’europa
L’evolució política d’europaL’evolució política d’europa
L’evolució política d’europacbp17
 
fundamentos defensivos del voliebol
fundamentos defensivos del voliebolfundamentos defensivos del voliebol
fundamentos defensivos del voliebol
zenachalghin94
 
Lista de vocabulario 10 a
Lista de vocabulario 10 aLista de vocabulario 10 a
Lista de vocabulario 10 a
herronk
 
Un paseo por buda
Un paseo por budaUn paseo por buda
Un paseo por buda
esthermontaraz
 
Software tarea docencia
Software tarea docenciaSoftware tarea docencia
Software tarea docencia
JorgeVayas
 

Destacado (20)

Parpadear un LED
Parpadear un LEDParpadear un LED
Parpadear un LED
 
Introduccion a los microcontroladores pic y programacion de una matriz de led's
Introduccion a los microcontroladores pic y programacion de una matriz de led'sIntroduccion a los microcontroladores pic y programacion de una matriz de led's
Introduccion a los microcontroladores pic y programacion de una matriz de led's
 
"Hola Mundo" C18, PIC18F y MPLAB
"Hola Mundo"  C18,  PIC18F y MPLAB"Hola Mundo"  C18,  PIC18F y MPLAB
"Hola Mundo" C18, PIC18F y MPLAB
 
Arquitectura Microcontrolador PIC16F887
Arquitectura Microcontrolador PIC16F887Arquitectura Microcontrolador PIC16F887
Arquitectura Microcontrolador PIC16F887
 
Curso de-mcu-proteus
Curso de-mcu-proteusCurso de-mcu-proteus
Curso de-mcu-proteus
 
AGROMOTORZ
AGROMOTORZAGROMOTORZ
AGROMOTORZ
 
Eplogo leyendo-el-futuro
Eplogo leyendo-el-futuroEplogo leyendo-el-futuro
Eplogo leyendo-el-futuro
 
Presentación.- Tema 4.
Presentación.- Tema 4.Presentación.- Tema 4.
Presentación.- Tema 4.
 
15tradicional oshe
15tradicional  oshe15tradicional  oshe
15tradicional oshe
 
ACTIVIDADES PARA EDUCACION A DISTANCIA
ACTIVIDADES PARA EDUCACION A DISTANCIAACTIVIDADES PARA EDUCACION A DISTANCIA
ACTIVIDADES PARA EDUCACION A DISTANCIA
 
Gustar
GustarGustar
Gustar
 
Carateristicas
CarateristicasCarateristicas
Carateristicas
 
Deportes extremos
Deportes extremosDeportes extremos
Deportes extremos
 
Dia de la madre (hector fabio arbeladez)6 2
Dia de la madre (hector fabio arbeladez)6 2Dia de la madre (hector fabio arbeladez)6 2
Dia de la madre (hector fabio arbeladez)6 2
 
Diccionario maria
Diccionario mariaDiccionario maria
Diccionario maria
 
L’evolució política d’europa
L’evolució política d’europaL’evolució política d’europa
L’evolució política d’europa
 
fundamentos defensivos del voliebol
fundamentos defensivos del voliebolfundamentos defensivos del voliebol
fundamentos defensivos del voliebol
 
Lista de vocabulario 10 a
Lista de vocabulario 10 aLista de vocabulario 10 a
Lista de vocabulario 10 a
 
Un paseo por buda
Un paseo por budaUn paseo por buda
Un paseo por buda
 
Software tarea docencia
Software tarea docenciaSoftware tarea docencia
Software tarea docencia
 

Similar a Microcontrolador 1 prender y apagar un led

como usar MPLAB
como usar MPLABcomo usar MPLAB
como usar MPLAB
MicroPart
 
Labview & pic
Labview & picLabview & pic
Labview & pic
Juan Hoyos
 
Tutorial cpl ds v1
Tutorial cpl ds v1Tutorial cpl ds v1
Tutorial cpl ds v1
Gaston Ismael Taboada
 
Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84
Victor Fernando Monroy Dipp
 
Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84
Victor Fernando Monroy Dipp
 
Material 1 de consulta microcontroladores temporizar por prog
Material 1 de consulta microcontroladores temporizar por progMaterial 1 de consulta microcontroladores temporizar por prog
Material 1 de consulta microcontroladores temporizar por prog
Mauricio Diaz Garcia
 
simatic estaciones fms
 simatic estaciones fms simatic estaciones fms
simatic estaciones fms
Alejandro Valenciah
 
7 curso
7 curso7 curso
7 curso
ERWIN AGUILAR
 
Guia Proyecto 2
Guia Proyecto 2Guia Proyecto 2
Guia Proyecto 2
Ray
 
Guia Proyecto 2
Guia Proyecto 2Guia Proyecto 2
Guia Proyecto 2
Ray
 
Pikit3 parte i-
Pikit3 parte i-Pikit3 parte i-
Pikit3 parte i-
Gerardo Garcia
 
VHDL_2.pdf
VHDL_2.pdfVHDL_2.pdf
VHDL_2.pdf
Gabriel Beltran
 
P1_Programación en MPLAB X IDE V5_20(1).pdf
P1_Programación en MPLAB X IDE V5_20(1).pdfP1_Programación en MPLAB X IDE V5_20(1).pdf
P1_Programación en MPLAB X IDE V5_20(1).pdf
Aldairdelgado4
 
P1_Programación en MPLAB X IDE V5_20(1).pdf
P1_Programación en MPLAB X IDE V5_20(1).pdfP1_Programación en MPLAB X IDE V5_20(1).pdf
P1_Programación en MPLAB X IDE V5_20(1).pdf
Aldairdelgado4
 
53592868 curso-de-mcu-proteus
53592868 curso-de-mcu-proteus53592868 curso-de-mcu-proteus
53592868 curso-de-mcu-proteus
Deysi Zamata Ccari
 
Curso de-mcu-proteus
Curso de-mcu-proteusCurso de-mcu-proteus
Curso de-mcu-proteus
cemento chimborazo
 
Tutorial proton part 2
Tutorial proton part 2Tutorial proton part 2
Tutorial proton part 2
dar851112
 
TEMPIC-45 Práctica II. Control de un LED a través de un botón
TEMPIC-45 Práctica II. Control de un LED a través de un botónTEMPIC-45 Práctica II. Control de un LED a través de un botón
TEMPIC-45 Práctica II. Control de un LED a través de un botón
iihhhii
 
Práctica III. Mostrar un mensaje en una pantalla LCD
Práctica III. Mostrar un mensaje en una pantalla LCDPráctica III. Mostrar un mensaje en una pantalla LCD
Práctica III. Mostrar un mensaje en una pantalla LCD
iihhhii
 
Como programar en Arduino
Como programar en ArduinoComo programar en Arduino
Como programar en Arduino
Javier Leyva
 

Similar a Microcontrolador 1 prender y apagar un led (20)

como usar MPLAB
como usar MPLABcomo usar MPLAB
como usar MPLAB
 
Labview & pic
Labview & picLabview & pic
Labview & pic
 
Tutorial cpl ds v1
Tutorial cpl ds v1Tutorial cpl ds v1
Tutorial cpl ds v1
 
Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84
 
Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84
 
Material 1 de consulta microcontroladores temporizar por prog
Material 1 de consulta microcontroladores temporizar por progMaterial 1 de consulta microcontroladores temporizar por prog
Material 1 de consulta microcontroladores temporizar por prog
 
simatic estaciones fms
 simatic estaciones fms simatic estaciones fms
simatic estaciones fms
 
7 curso
7 curso7 curso
7 curso
 
Guia Proyecto 2
Guia Proyecto 2Guia Proyecto 2
Guia Proyecto 2
 
Guia Proyecto 2
Guia Proyecto 2Guia Proyecto 2
Guia Proyecto 2
 
Pikit3 parte i-
Pikit3 parte i-Pikit3 parte i-
Pikit3 parte i-
 
VHDL_2.pdf
VHDL_2.pdfVHDL_2.pdf
VHDL_2.pdf
 
P1_Programación en MPLAB X IDE V5_20(1).pdf
P1_Programación en MPLAB X IDE V5_20(1).pdfP1_Programación en MPLAB X IDE V5_20(1).pdf
P1_Programación en MPLAB X IDE V5_20(1).pdf
 
P1_Programación en MPLAB X IDE V5_20(1).pdf
P1_Programación en MPLAB X IDE V5_20(1).pdfP1_Programación en MPLAB X IDE V5_20(1).pdf
P1_Programación en MPLAB X IDE V5_20(1).pdf
 
53592868 curso-de-mcu-proteus
53592868 curso-de-mcu-proteus53592868 curso-de-mcu-proteus
53592868 curso-de-mcu-proteus
 
Curso de-mcu-proteus
Curso de-mcu-proteusCurso de-mcu-proteus
Curso de-mcu-proteus
 
Tutorial proton part 2
Tutorial proton part 2Tutorial proton part 2
Tutorial proton part 2
 
TEMPIC-45 Práctica II. Control de un LED a través de un botón
TEMPIC-45 Práctica II. Control de un LED a través de un botónTEMPIC-45 Práctica II. Control de un LED a través de un botón
TEMPIC-45 Práctica II. Control de un LED a través de un botón
 
Práctica III. Mostrar un mensaje en una pantalla LCD
Práctica III. Mostrar un mensaje en una pantalla LCDPráctica III. Mostrar un mensaje en una pantalla LCD
Práctica III. Mostrar un mensaje en una pantalla LCD
 
Como programar en Arduino
Como programar en ArduinoComo programar en Arduino
Como programar en Arduino
 

Más de Katherine Irene Guerrero Zapata

Conclusiones, uso de las normas apa
Conclusiones, uso de las normas apaConclusiones, uso de las normas apa
Conclusiones, uso de las normas apa
Katherine Irene Guerrero Zapata
 
Circuito serie y paralelo
Circuito serie y paraleloCircuito serie y paralelo
Circuito serie y paralelo
Katherine Irene Guerrero Zapata
 
1er parcial circuitos digitales
1er parcial circuitos digitales1er parcial circuitos digitales
1er parcial circuitos digitales
Katherine Irene Guerrero Zapata
 
Salud ocupacional act 4
Salud ocupacional act 4Salud ocupacional act 4
Salud ocupacional act 4
Katherine Irene Guerrero Zapata
 
Abcd ingles
Abcd inglesAbcd ingles
Actividad 5
Actividad 5Actividad 5

Más de Katherine Irene Guerrero Zapata (6)

Conclusiones, uso de las normas apa
Conclusiones, uso de las normas apaConclusiones, uso de las normas apa
Conclusiones, uso de las normas apa
 
Circuito serie y paralelo
Circuito serie y paraleloCircuito serie y paralelo
Circuito serie y paralelo
 
1er parcial circuitos digitales
1er parcial circuitos digitales1er parcial circuitos digitales
1er parcial circuitos digitales
 
Salud ocupacional act 4
Salud ocupacional act 4Salud ocupacional act 4
Salud ocupacional act 4
 
Abcd ingles
Abcd inglesAbcd ingles
Abcd ingles
 
Actividad 5
Actividad 5Actividad 5
Actividad 5
 

Microcontrolador 1 prender y apagar un led

  • 1. 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 envíe 5V y prenda un led, y pasado un segundo envíe 0V y por tanto apague el led. El programa se hará de tal manera que la operación descrita se efectúe 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 envíe pulsos de “unos” y “ceros” a intervalo de 1 segundo por el pin RB7 de ese puerto. Vamos primero a elaborar el código 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 después de efectuada la instalación 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 creación 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 además que en ”Toolsuite contents” no aparezcan equis rojas que denotan una incorrecta instalación 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
  • 2. 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 información dada en los anteriores pasos sea correcta. En caso de haber algún error podemos devolvernos dando click en el botón “Atrás”. 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 código: INCLUDE P16F877A.INC PDel0 EQU 0X20 ; Variable utilizada por DELAY PDel1 EQU 0X21 ; Variable utilizada por DELAY PDel2 EQU 0X22 ; Variable utilizada por DELAY ORG 0 ; Inicio de programa en la dirección 0x0000 de la ; Memoria FLASH GOTO CONFIG ORG 5 ; Se salta la dirección 0x0004, el vector de ; INTERRUPCIONES CONFIG BSF STATUS,RP0 ;BANCO 1 BCF TRISB,7 ;RB7 como salida en el PUERTO B BCF STATUS,RP0 ;Regresamos al BANCO 0 PROGRAM BSF PORTB,7 ;Se enciende el LED CALL DELAY1_S ; Retardo de un segundo BCF PORTB,7 ;OFF LED CALL DELAY1_S ; Retardo de un segundo GOTO PROGRAM ; 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|
  • 3. 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. Después 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 extensión correcta *.HEX. Damos click en Project / Build Options... / Project. 12. En la pestaña ”PICC Linker” damos click en el botón “Restore Defaults” Verificamos que aparezca ”-O"$(TARGETBASE).hex" escrito en el cuadro de texto contiguo al botón. 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 también Project / Build All). Aparece la ventana Output con la pestaña Build seleccionada, y todo un reporte de la operación. En este reporte pueden aparecer errores o advertencias si por ejemplo la sintaxis del código no es correcta. Si la compilación 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 teórico 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 algún punto el error. Vamos ahora a elaborar el código en Lenguaje C. • CODIGO LENGUAJE C 16. Abrimos el programa MPLAB.
  • 4. 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 información 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 código en C que se adicionara al proyecto. Click en File / New. 20. Tecleamos el siguiente código 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 extraídas de picClite/samples/delay */ void main(void) { TRISB=0; //Configura puerto B como salida for(;;) //Ciclo infinito que prende y apaga el LED { RB7=1; //Manda 5 Voltios por el pin RB7 (Prende el LED) DelayMs(1000); //Retardo de 1000Ms = 1seg RB7=0; //Manda 0 Voltios por el pin RB7 (Apaga LED) DelayMs(1000); //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. Después 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 librerías y archivos como “Header Files”, para lo cual damos clic derecho en “Header Files” en la ventana principal del proyecto (donde aparece además Source Files, Library
  • 5. 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 renglón 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 mayúscula, ó colocar paréntesis 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 código 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 efectúe las conexiones mostradas en el diagrama compruebe que el dispositivo funcione correctamente. 26. De haber alguna incongruencia entre el comportamiento teórico 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 algún punto el error.