Introduccion a las herramientas libres GNU/Linux para la programacion de microcontroladores PIC
1. INTRODUCCIÓN A LAS
HERRAMIENTAS LIBRES GNU/Linux
PARA LA PROGRAMACIÓN DE
MICROCONTROLADORES PIC
Ing. Juan Dirceu Navarro A.
2006
2. 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.
3. ¿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.
4. 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]
5. 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]
6. Diferencia entre un microprocesador
y un microcontrolador (cont. 2)
Microprocesador o CPU Microcontrolador
10. 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
11. 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'
12. 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):
13. 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
14. 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.
15. 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
17. 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)
19. 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
20. 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/