0% encontró este documento útil (0 votos)
99 vistas22 páginas

Programar Microcontrolador

Este documento introduce las herramientas libres GNU/Linux para programar microcontroladores PIC. Explica brevemente qué es un microcontrolador y cómo difiere de un microprocesador. Luego describe algunas herramientas libres como compiladores, simuladores, programadores de software y hardware, e incluye ejemplos de código para programar LEDs en un PIC 16F877.
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
99 vistas22 páginas

Programar Microcontrolador

Este documento introduce las herramientas libres GNU/Linux para programar microcontroladores PIC. Explica brevemente qué es un microcontrolador y cómo difiere de un microprocesador. Luego describe algunas herramientas libres como compiladores, simuladores, programadores de software y hardware, e incluye ejemplos de código para programar LEDs en un PIC 16F877.
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 PDF, TXT o lee en línea desde Scribd

INTRODUCCIÓN A LAS

HERRAMIENTAS LIBRES GNU/Linux


PARA LA PROGRAMACIÓN DE
MICROCONTROLADORES PIC

Ing. Juan Dirceu Navarro A.


2006
Contenido
● ¿Que es un Microcontrolador?
● Diferencia entre un microprocesador y un
microcontrolador.
● Diagrama de bloques y terminales.
● Mapa de la memoria.
● Manejo de los puertos.
● Herramientas Libres.
● Ejemplos de programación.
● Conclusiones.
¿Que es un Microcontrolador?

“Un Microcontrolador es un circuito integrado que


contiene todos los componentes de un
computador”
[MI99]
Un microcontrolador es
una computadora de baja
prestación, que está
gobernada por un
programa que convierte al
microcontrolador en una
computadora dedicada.
Diferencia entre un microprocesador
y un microcontrolador
Microprocesador o CPU
Un microprocesador es un sistema abierto con el que puede
construirse un computador con las características que se desee,
acoplándose los módulos necesarios.
[MI99]
Diferencia entre un microprocesador
y un microcontrolador (cont. 1)
Microcontrolador
Un microcontrolador es un sistema cerrado que contiene un
computador completo y de prestaciones limitadas que no se
pueden modificar. [MI99]
Diferencia entre un microprocesador
y un microcontrolador (cont. 2)
Microprocesador o CPU Microcontrolador
Diagrama de bloques y terminales
Diagrama de bloques y terminales
(cont. 1)
Mapa de la memoria
Manejo de los puertos
Generalmente los puertos de un PIC se pueden configurar
como entradas o salidas, analógicas o digitales.

Ejemplo:
Configurar los puertos A y B del PIC 16F84 con las siguientes
especificaciones:

Puerto A Puerto B
RA0 Entrada RA3 Entrada RB0 Entrada RB3 Salida
RA1 Salida RA4 Entrada RB1 Salida RB4 Entrada
RA2 Salida RB2 Entrada RB5 Salida
RB6 Entrada RB7 Entrada
Manejo de los puertos (cont. 1)
Solución:

Todas las Salidas = 0 (Binario)


Todas las Entradas = 1 (Binario)

En Hexadecimal:
Asignar al Registro TRISA = 0x13 ò asignar a 0x5 <= 0x13
Asignar al Registro TRISB = 0xB5 ò asignar a 0x6 <= 0xB5

En Octal:
Asignar al Registro TRISA = 0'19' ò asignar a 0'5' <= 0'19'
Asignar al Registro TRISB = 0'265' ò asignar a 0'6' <=
0'265'
Manejo de los puertos (cont. 2)
Pregunta: ¿Y cómo programo?
Respuesta: Cambiando de banco de memoria, el registro
STATUS permite cambiar de banco de memoria.

Registro STATUS (0x3):


Manejo de los puertos (cont. 3)
;Ejemplo 1. Configuración de puertos
;Juan Dirceu Navarro Arias

LIST P=PIC16F84
INCLUDE "p16f84.inc"

; Declaración de Variables

; STATUS equ 0x3


; PORTA equ 0x5
; TRISA equ 0x85
; PORTB equ 0x6
; TRISB equ 0x86
; RP0 equ 0x5

; Programa

begin
ORG 0 ; Iniciamos el programa en la posición 0 de la memoria
BSF STATUS,RP0 ; Cambiamos al banco de memoria 1
MOVLW 0x13 ; Movemos 10011 al registro de trabajo W.
MOVWF TRISA ; Configuramos el puerto A como salida, moviendo W -> f(registro).
MOVLW 0xB5 ; Movemos 10110101 al registro de trabajo W.
MOVWF TRISB ; Configuramos el puerto B como salida, moviendo W -> f(registro).
BCF STATUS,RP0 ; Salimos del banco de memoria 1 al banco 0.
END
Herramientas Libres GNU/Linux.

¿Que necesito para programar un Microcontrolador?

●Editor de textos: Emacs, vi, vim, gedit, kedit, kate, etc.


●Compilador, assembler: gpasm, tpasm, Jal, Pyastra, etc.

●Simulador: gpsim, miSim, SxSim, etc.

●Programador:

➢Software:Odyssey, prog84, PP06, picprg, MIPI, etc.

➢Hardware: EPIC, El Cheapo, Tait, JDM, Propic2, etc.

Adicionales: GUIs, IDEs.


Herramientas Libres GNU/Linux.
(cont. 1)
Existen muchas herramientas libres GNU/Linux para
programar PICs: http://www.gnupic.org/

GPUTILS
Conjunto de herramientas para compilar el coligo fuente en
ensamblador: GPASM (GNU/Linux) => MPAMS MS
Windows

GPSIM
Simulador de GPASM.

XGPASM
Interfaz de usuario gráfica (GUI) de GPASM
Herramientas Libres GNU/Linux.
(cont. 2)
PIKDEV
Entorno de desarrollo Integrado (IDE) para GPASM.

Programadores:
Software:
Odyssey (Puerto paralelo)
odyssey PIC16F877 write /home/user/PICs/Programas/suma.hex
Picprog 1.7 (Puerto serial)
picprog --burn --device=pic16f84 --input suma.hex --pic /dev/ttyS1
Hardware:
El Cheapo (Puerto paralelo)
EPIC Programmer (Puerto paralelo)
YAP-II (Puerto serial)
PICFun (Puerto serial)
Ejemplos de programación

Ejemplo 2
Se desea encender 8 LEDs en forma secuencial, utilizando
el PIC 16f877. Utilizando el puerto B

Ejemplo 3
Se desea encender 8 LEDs en forma secuencial, utilizando
el PIC 16f877. Utilizando el puerto B (Otro método)
EPIC Programmer

Cortesía Ing. Ramiro Astete


Referencias Bibliográficas

[WI05]Wikipedia La enciclopedia Libre,


Procesador, http://es.wikipedia.org/wiki/Procesador
[MI99] José M. Angulo Usategui, Ignacio Angulo
Martinez, Microcontroladores PIC Diseño
Práctico de Aplicaciones, Segunda Edición, Mc
Graw Hill, 1999
[MK00] Myke Predko, Programing and Customizing
PICmicro Microcontrollers, Second Edition, Mc
Graw Hill, 2000
Recursos WEB

● Compilador GPASM
http://gputils.sourceforge.net/
● Simulador GPSIM para GPAMS
http://www.dattalo.com/gnupic/gpsim.html
● Interfaz de Usuario Gráfica (GUI) para GPASM
http://xizard.free.fr/logiciels/xgpasm/xgpasm.html
● Entorno de Desarrollo Integrado (IDE) para
GPAMS http://pikdev.free.fr/
Recursos WEB (cont. 1)
Software
● Programador Odyssey
http://www.desert.cx/odyssey/
● Programador Picprog
http://hyvatti.iki.fi/~jaakko/pic/picprog.html
● Programador Prog84
http://home3.inet.tele.dk/frda/picasm/prog.html
● Programador PP06 http://pp06.sourceforge.net/
● Trivial LVP programmer
http://www.finitesite.com/d3jsys/
Recursos WEB (cont. 2)

Hardware
El Cheapo http://www.myke.com/elcheapo.htm
EPIC Programmer
http://www.melabs.com/products/epic.htm
YAP-II http://books.mcgraw-
hill.com/engineering/updatezone/predko/html/yap-
ii.htm
PICFun
http://www.alanmacek.com/robot/programmer.html

También podría gustarte