Diferencia entre revisiones de «Programación del PIC16 en C»
De WikiRobotics
(→Módulo 3: Puerto serie. Introducción al lenguaje C (II)) |
(→Módulo 3: Puerto serie. Introducción al lenguaje C (II)) |
||
Línea 143: | Línea 143: | ||
|| '''Envío de cadenas''' por el puerto serie | || '''Envío de cadenas''' por el puerto serie | ||
|----- | |----- | ||
− | | [sci-cad2.c] | + | | [http://svn.iearobotics.com/Curso_pic/PIC16/v1.0/Modulo3-sci/ejemplos/sci-cad2.c sci-cad2.c] |
|| [sci-cad2.hex] | || [sci-cad2.hex] | ||
− | || | + | || Envío de cadenas. Se prueba a enviar una cadena con caracteres especiales |
|----- | |----- | ||
− | | [sci-menu.c] | + | | [http://svn.iearobotics.com/Curso_pic/PIC16/v1.0/Modulo3-sci/ejemplos/sci-menu.c sci-menu.c] |
|| [sci-menu.hex] | || [sci-menu.hex] | ||
− | || | + | || '''Envío-recepción de datos'''. Ejemplo de programa interactivo. Instrucción '''switch'''. |
|----- | |----- | ||
| [sci-error.c] | | [sci-error.c] |
Revisión del 11:26 12 sep 2009
Contenido
Introducción
Curso de introducción a la programación en C de los microcontroladores PIC16F87X de Microchip. Es totalmente práctico, haciéndose ejemplos desde el primer momento. El enfoque didácto es lo que los autores llamamos POE: Programación Orientada a Ejemplos ;-). En cada uno de los módulos se presentan los conocimientos teóricos mínimos necesarios y se aplican en ejemplos.
El lector aprenderá el funcionamiento de los diferentes recursos de estos micros así como la programación en lenguaje C, que se va introduciendo gradualmente con los ejemplos.
Todos los ejemplos se han probado en la Tarjeta Skypic, a la que se le añaden diferentes placas periféricas.
Temario
Módulo 1: Introducción al PIC16F876A
- Transparencias: (En línea) (PDF) (OpenOffice)
- Ejemplos: Modulo1-ejemplos.zip
plantilla.c plantilla.hex Plantilla de programación para el SDCC hola_mundo.c hola_mundo.hex Programa "Hola mundo" que enciende el led de la Skypic
Módulo 2: Puertos de E/S digitales. Introducción al lenguaje C (I)
- Transparencias: (En línea) (PDF) (OpenOffice)
- Ejemplos: Modulo2-ejemplos.zip
- PUERTO B
ledon.c ledon.hex Poner a 1 el bit 1 (RB1) del puerto B. Se enciende el led de la Skypic ledon2.c ledon2.hex Igual que ledon.c. Mejora de la legibilidad mediante #define salida8.c salida8.hex Ejemplo de salida de 8 bits variables1.c variables1.hex Ejemplo de declaracion de variables y su uso contador1.c contador1.hex Bucle for. Contador desde 0 hasta 128 que se muestra por los leds. Versión rápida no apreciable por ojo humano contador2.c contador2.hex Funciones en C. Contador desde 0 hasta 128 que se muestra por los leds. Versión con pausa para ver la secuencia pulsador-led.c pulsador-led.hex Ejemplo de entrada y salida digitales. Por RB1 (el led) se saca el valor negado de lo recibido por RB0 (pulsador) pulsador-led2.c pulsador-led2.hex Ejemplo de entrada y salida digitales. Por RB1 (el led) se saca el valor negado de lo recibido por RB0 (pulsador) . Mejora de la legibilidad mediante #define. contador-int1.c contador-int1.hex Detección de flancos por RB0, mediante espera activa. contador-int2.c contador-int2.hex Detección de flancos por RB0. Ejemplo mediante interrupciones. pull-ups.c pull-ups.hex Ejemplo de activación de las resistencias de pull-up. flancos1.c flancos1.hex Detección de cambio en pines RB4-RB7. Mediante espera activa. flancos2.c flancos2.hex Detección de cambio en pines RB4-RB7. Mediante interrupciones luces.c luces.hex Arrays en C. Secuencia de luces en los leds luces2.c luces2.hex Arrays en C. Operador Sizeof. Mismo ejemplo anterior, pero calculándose automáticamente el tamaño del array
- PUERTO A
RA0-on.c RA0-on.hex Poner el pin 0 (RA0) del puerto A a 1 salida6.c salida6.hex Ejemplo de salida digital de 6 bits RA0-led.c RA0-led.hex Ejemplo de entrada y salida digitales. Por RB1 (el led) se saca el valor RA0
- PUERTO C
RC0-on.c RC0-on.hex Poner el pin 0 (RC0) del puerto C a 1 C-salida8.c C-salida8.hex Ejemplo de salida digital de 8 bits RC0-led.c RC0-led.hex Ejemplo de entrada y salida digitales. Por RB1 (el led) se saca el valor RC0
Módulo 3: Puerto serie. Introducción al lenguaje C (II)
- Transparencias: (En línea) (PDF) (OpenOffice)
- Ejemplos: []
sci-conf.c [sci-conf.hex] Configuracion del puerto serie a 9600 baudios y 8N1. Cada vez que se recibe un dato del PC se cambia el estado del led sci-conf2.c [ sci-conf2.hex] Mismo ejemplo anterior, pero con la parte de configuración en una función separada sci-eco.c [sci-eco.hex] Ejemplo de envio-recepcion de datos. Se hace eco de todo lo recibido por el puerto serie sci-eco2.c [sci-eco2.hex] Mismo ejemplo anterior, pero dividido en funciones sci-cad.c [sci-cad.hex] Envío de cadenas por el puerto serie sci-cad2.c [sci-cad2.hex] Envío de cadenas. Se prueba a enviar una cadena con caracteres especiales sci-menu.c [sci-menu.hex] Envío-recepción de datos. Ejemplo de programa interactivo. Instrucción switch. [sci-error.c] [sci-error.hex] [sci-read2.c] [sci-read2.hex] [sci-int-rx.c] [sci-int-rx.hex] [sci-contador-eco.c] [sci-contador-eco.hex] [sci-int-tx.c] [sci-int-tx.hex] [sci-contadores.c] [sci-contadores.hex] [sci.h] [--] [sci-test.c] [sci-test.hex] [libsci.c] [--] [libsci.h] [---] [sci-test2.c] [sci-test.hex] [sci-test3.c] [sci-test3.hex] [sci-hex.c] [sci-hex.hex]
En construcción. |
Repositorio
- Repositorio SVN: http://svn.iearobotics.com/Curso_pic/
Para obtener la última versión teclear:
svn co http://svn.iearobotics.com/Curso_pic/
Historia
- Jun/2009: Creado como una de las partes del Curso de Microcontroladores PIC: Arquitectura, recursos y programación, impartido en esa misma fecha a personal del Centro Nacional de Inteligencia de España (CNI)
Enlaces
Autores
Licencia
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 Spain License. |
Noticias
- 12/Sep/2009: Añadido módulo 2
- 10/Sep/2009: Comenzada esta página. Añadido módulo 1