módulo 1: introducción al pic16f87x

Upload: juan-gonzalez-gomez

Post on 30-May-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    1/19

    1

    Escuela Politcnica SuperiorUniversidad Autnoma de Madrid

    Juan Gonzlez

    PIC 16F87X

    Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009.

    Andrs Prieto-Moreno Ricardo Gmez

    Flir Networked Systems Flir Networked Systems

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    2/19

    2

    PIC 16F87X

    MDULO 1:

    Introduccin al PIC16F87X

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    3/19

    3

    Vistazo generalPIC16F876

    Flash : Hasta 8K RAM: 256 bytes EEPROM: Hasta 256 bytes Instrucciones : 14 bits Datos : 8 bits Pila : 8 niveles

    2 13 = 2 3 .2 10 = 8K

    2 9 = 512

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    4/19

    4

    Patillaje pic16f876a

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    5/19

    5

    Programacin ICSP(In-Circuit Serial Programing)

    5 cables Pin RB7: Datos Pin RB6: Reloj Comunicacin serie sncrona

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    6/19

    6

    PICMIN: Hola mundo PIC

    Ejemplo de conexionado mnimopara que el PIC funcione: Circuito de Reloj Reset Alimentacin

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    7/19

    7

    Programacin

    en lenguaje C

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    8/19

    8

    Entorno de trabajo

    HARDWARE: PIC16F876A Tarjeta SKYPIC (Hardware libre)

    http://www.iearobotics.com/wiki/index.php?title=Skypic

    SOFTWARE:

    Compilador C: SDCC 2.8.0 http://sdcc.sourceforge.net/

    Ensamblador: GPUTILS http://gputils.sourceforge.net/

    Grabacin: Mediante Bootloader. Programa PYDOWNLOADER

    http://www.iearobotics.com/wiki/index.php?title=Pydownloader-wx LINUX: piklab

    http://piklab.sourceforge.net/

    Entorno libre y multiplataforma

    http://www.iearobotics.com/wiki/index.php?title=Pydownloader-wxhttp://www.iearobotics.com/wiki/index.php?title=Pydownloader-wx
  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    9/19

    9

    Metodoga de trabajo

    Fich1.c

    Fich2.c

    FichN.c

    Fich1.asm

    Fich2.asm

    FichN.asm

    Fich1.o

    Fich2.o

    FichN.o

    Programa.hex

    Ficheros fuente(en C)

    Compilar Ensamblar Enlazar

    Ficheros fuente(en ensamblador)

    Cdigo mquina(objetos)

    Ejecutable

    Gr a b a ci n

    Inicio

    Compilacin

    +

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    10/19

    10

    Puerto BServos Reset

    P ul s

    a d or

    P r u

    e b a s

    ( R B 0

    )

    P u e r t o C

    Alimentaci n (4.5-6v)

    P u e r t o

    A

    P u e r t o

    d e

    P r o g

    .

    ICD2 RS232

    Tarjeta Skypic

    Led de pruebas (RB1)

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    11/19

    11

    #include

    typedef unsigned int word;word at 0x2007 CONFIG =

    _RC_OSC &_WDT_ON &_PWRTE_OFF &_BODEN_ON &_LVP_ON &_CPD_OFF &_WRT_OFF &_DEBUG_OFF &_CP_OFF;

    void isr() interrupt 0{

    }

    void main(){ }

    Plantilla para SDCC

    2.-Palabra de configuracin del PIC

    1- Cabecera con el PIC a emplear

    3.- Rutina de atencin interrupciones

    4.- Programa principal

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    12/19

    12

    #include

    void main(){

    TRISB1 = 0;

    RB1 = 1;while(1);

    }

    Ejemplo Hola Mundo

    Palabra de configuracinestablecida al grabar bootloader No se usan interrupciones Encender el led de la Skypic

    Configurar pin RB1 para salida

    Activar pin RB1 (salen 5v)

    Bucle infinito

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    13/19

    13

    Compilando Hola Mundo

    sdcc -Wl-ainhx8m -mpic14 -p16f876a -o hola_mundo hola_mundo.c

    Compilacin en lnea de comandos:

    Comando

    Formato parael ejecutable(.hex)

    Familia PIC16

    PIC a emplear

    Fichero de salida

    Fichero fuente

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    14/19

    14

    Compilando Hola Mundo (II): Anjuta

    Abrir proyecto curso_c_hola_mundo.anjuta Usamos fichero Makefile Pulsar shift-F11 o bien ir a Construir/Construir proyecto

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    15/19

    15

    Compilando Hola Mundo (III): Piklab

    Abrir proyecto : hola_mundo.piklab (Proyecto/Open) Pulsar F8 o bien ir a Construir/Construir proyecto

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    16/19

    16

    Descargando el firmware en la Skypic

    Seleccionar puerto serie donde estconectada la Skypic

    Windows Linux

    COM1 /dev/ttyS0

    COM2 /dev/ttyS1

    Si usamos conversores USB-serie en Linux,los dispositivos se llaman: /dev/ttyUSB0 ...

    Pinchar en Buscar y seleccionar el fichero .hex a descargar

    Pinchar en Grabar La descarga comienza automticamente (si est puesto el jumper JP4 ). Si no, hay que pulsar el botn de reset en la Skypic

    Otra formas ms rpida es arrastrar directamente el fichero .hex alpydownloader Una vez finalizada la carga (tarda 1 seg. Ms o menos), se encederel led de la Skypic.

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    17/19

    17

    Descargando el firmware en la Skypic (II)

    El Programa trae opciones para cargardirectamente firmware de pruebas Muy til para probar la placa sin tener queestar compilando ningn fichero

    Prueba 1: Parpadeo del led

    Prueba 2: Parpadeo del led(ms rpidamente)

    Programas especficos. El botn ECO carga un programaque hace eco de todo lo recibido por el puerto serie. Sepuede comprobar abriendo un terminal decomunicaciones

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    18/19

    18

    Listos para programar el PIC!

  • 8/14/2019 Mdulo 1: Introduccin al PIC16F87x

    19/19

    19

    Escuela Politcnica SuperiorUniversidad Autnoma de Madrid

    Juan Gonzlez

    PIC 16F87X

    Curso de microcontroladores PIC. Semana del 25-29 Mayo 2009.

    Andrs Prieto-Moreno Ricardo Gmez

    Flir Networked Systems Flir Networked Systems