Embedded C Programming (Español)
Embedded C Programming (Español)
Embedded C Programming
and the Microchip PIC
1
Embedded C Programming and the Microchip PIC
2
Embedded C Programming and the Microchip PIC
3
Embedded C Programming and the Microchip PIC
Publisher no garantiza ni garantiza ninguno de los productos descritos en este documento ni realiza
ningn anlisis independiente en conexin con cualquiera de la informacin del producto contenida
aqu. Publisher no asume y rechaza expresamente cualquier obligacin de obtener e incluir
informacin distinta de la proporcionada por el fabricante.
Se advierte expresamente al lector que considere y adopte todas las precauciones de seguridad que
puedan ser indicadas por las actividades y evitar todos los peligros potenciales. Siguiendo las
instrucciones contenidas en este documento, el lector asume riesgos relacionados con dichas
instrucciones.
El editor no hace ninguna representacin o garantas de ningn tipo, incluyendo pero no limitado a,
las garantas de aptitud para propsito particular o comerciabilidad, y tampoco se incluyen tales
representaciones con respecto al material y el editor no asume ninguna responsabilidad con respecto
a dicho material. El editor no ser responsable de ninguna especiales, consecuentes o ejemplares
resultantes, en su totalidad o en parte, del uso o confianza de los materiales.
4
Embedded C Programming and the Microchip PIC
5
Embedded C Programming and the Microchip PIC
6
Embedded C Programming and the Microchip PIC
7
Embedded C Programming and the Microchip PIC
8
Embedded C Programming and the Microchip PIC
9
Embedded C Programming and the Microchip PIC
10
Embedded C Programming and the Microchip PIC
11
Embedded C Programming and the Microchip PIC
12
Embedded C Programming and the Microchip PIC
La programacin C incorporada y el PIC Microchip est diseado para ensear tanto el lenguaje C
la programacin, ya que se aplica a los microcontroladores integrados y para
en la aplicacin de la familia Microchip de microcontroladores P I C RISC.
AUDIENCIA PREVISTA
Estudiantes principiantes que todava no han tenido un curso de programacin C: El libro sirve una
secuencia de dos o cuatro trimestres en la que los aprender la programacin en lenguaje C y cmo
aplicar C a un microcontrolador integrado. En la misma secuencia pueden avanzar hacia las
sofisticadas aplicaciones integradas, que pueden ejecutarse en un microcontrolador con muy poco
conocimiento de hardware requerido. Despus Captulo I, Tutorial del lenguaje C incorporado, se
completa, servir como referencia de programacin para el balance de los cursos.
Los estudiantes que ya han tomado un curso de programacin en C pueden usar el libro para un
curso de un semestre o dos cuartos en microcontroladores integrados. En este caso, los estudiantes
estudian slo aquellas partes del Captulo I que se relacionan con la programacin para el entorno
integrado y se mueven los conceptos avanzados de hardware. El Captulo I est organizado (como
todos los captulos en el libro) para proporcionar una referencia til para la informacin necesaria en
otros cursos.
Practicar ingenieros, tecnlogos y tcnicos que deseen agregar un nuevo microcontrolador a sus
reas de especializacin: el captulo I se puede utilizar segn sea necesario (dependiendo del nivel de
experiencia de programacin del usuario) ya sea para aprender conceptos necesarios o como
referencia. Captulo 2 en el que el Microchip PIC hardware del microcontrolador se discute conducir
13
Embedded C Programming and the Microchip PIC
PREREQUISITOS
Se requiere cierto conocimiento de sistemas digitales, sistemas numricos y diseo lgico. Preliminar
versiones del Captulo 1, Tutorial del lenguaje C incorporado, se han utilizado con xito en
microcontroladores (clase de segundo ao-sin programacin previa) dos semestres de cursos bsicos
de lgica digital. Este libro de texto tambin ha demostrado ser excelente para un curso electivo
avanzado de microcontroladores. En muchos casos, los estudiantes tienen elegido para mantener el
libro y utilizarlo como una referencia a travs de sus cursos superiores de diseo de proyectos, y lo
han llevado consigo a la industria como una referencia til.
ORGANIZACIN
El texto est organizado en unidades de tema lgico para que los instructores puedan seguir la
organizacin del texto, comenzando con el lenguaje C y avanzando a travs del hardware P I C y en
temas ms avanzados, o pueden elegir el orden de los temas para adaptarse a su particular
necesariamente. Los temas se mantienen separados e identificados para una fcil seleccin. Los
ejercicios de captulo y los ejercicios de laboratorio tambin estn separados por tema para facilitar
la seleccin de los que se aplican en cualquier caso particular.
El lenguaje C est cubierto en detalle en un mtodo paso a paso a medida que se aplica a programacin
de microcontroladores integrados. Uno o ms programas de ejemplo acompaan cada concepto de
programacin para ilustrar su uso. A la conclusin del captulo, los estudiantes sern capaces de crear
programas de lenguaje C para resolver problemas. El captulo I presenta el compilador CCS-PICC C
como modelo para la compilacin C como se aplica al PIC de Microchip, pero la base de lo que se
demuestra se aplica a otros compiladores PIC C tambin.
Los procesadores PIC RISC estn cubiertos desde la arquitectura bsica hasta el uso de todos los
dispositivos perifricos estndar incluidos en los microcontroladores. Ejemplo los programas se
utilizan para demostrar usos comunes para cada uno de los perifricos. Al finalizar los Captulos I y
2, los estudiantes podrn aplicar PIC RISC procesadores para resolver problemas.
14
Embedded C Programming and the Microchip PIC
Este captulo puede usarse como un manual para usar el compilador CCS-PICC C y su entorno de
desarrollo integrado (IDE). Los estudiantes pueden aprender a utilizar el PICC y su IDE con eficacia
para crear y depurar programas C utilizando la edicin de evaluacin del compilador que se incluye
en el CD, as como el entorno de depuracin de MPLAB de Microchip disponible en Sitio web de
Microchip: http://www.microchip.com.
Apndices:
FUNDAMENTOS
15
Embedded C Programming and the Microchip PIC
Adems, el precio de las tarjetas de desarrollo de los microcontroladores ha bajado hasta el nivel en
el que se encuentra nmero de escuelas que los estudiantes compran el tablero como parte de su "kit
de piezas" para que todos los estudiantes tienen su propio consejo de desarrollo.
Algunos de estos cursos requieren la programacin C como un prerrequisito, y otros ensean la
programacin en lenguaje C y la aplicacin de microcontroladores de forma integrada. La
programacin C incorporada y el PIC Microchip es una respuesta a la necesidad de un libro se puede
utilizar en cursos con y sin un curso previo de lenguaje C y que se pueden utilizar como una referencia
til en el trabajo posterior del curso. El CD-ROM incluido con este libro contiene un "Estudiante
Edicin" compilador y otro software para que los estudiantes con su propio desarrollo las juntas tienen
todo lo que necesitan para trabajar fuera de la clase, as como en los laboratorios de la escuela.
HARDWARE UTILIZADO
Los estudiantes han tenido mucho xito con cualquiera de los dos mtodos. Los microcontroladores
PIC16F877 y PIC18F458 se han utilizado para elaborar los ejemplos para el texto. Una de las
principales ventajas de los microcontroladores PIC es que paralelo en su arquitectura y el enfoque de
programacin para los dispositivos. Esto significa que los ejemplos mostrados funcionarn en
virtualmente cualquier microcontrolador PIC, siempre que contenga los perifricos y otros recursos
para realizar el trabajo, no es necesario hacer cambios para usar el cdigo para otros miembros de la
familia PIC. En consecuencia, el texto es til con otros miembros de la familia PIC.
Los perifricos ms comunes se cubren en este libro de texto, y el cdigo se puede utilizar como un
plantilla para aplicar a los perifricos ms exticos en algunos de los otros miembros de la familia
PIC.
El software utilizado con el libro de texto incluye el Microchip MPLAB (que es gratuito por
accediendo a http://www.microchip.com/) y el compilador CCS PICC de Custom Computer Services
Inc. (http://www.ccsinfo.com/). El CD-ROM incluido con este libro contiene el cdigo fuente de
todos los ejemplos de software del texto. Pueden utilizarse como referencias o como puntos de partida
para asignaciones especficas. Todos los programas del libro de texto pueden ser compilados
utilizando la versin de evaluacin de CCS PICC que se incluye en el CD adjunto. La versin de
evaluacin incluida se limita a dos tipos de procesadores, el PIC16F877 y el PIC18F458, y producir
un mximo de 2K de cdigo de salida. Consulte la lista de Informacin del sitio Web para obtener la
ltima versin del compilador. Ms informacin sobre la compra de la versin completa se puede
encontrar en http://www.prllc.com/.
16
Embedded C Programming and the Microchip PIC
EXPRESIONES DE GRATITUD
El material contenido en este libro de texto no es slo una recopilacin de aos de la informacin
disponible de Microchip Technology, Inc., Custom Computer Services, Inc. y Progressive Resources
LLC.
Los autores y Delmar Learning desean expresar su agradecimiento a los siguientes revisores:
17
Embedded C Programming and the Microchip PIC
El apoyo de mi familia, Gay, Laura y April, ha hecho de este libro un placer trabajar y una alegra
para completar. Tambin es importante reconocer la motivacin proporcionada por Larry O'Cull y el
placer fantstico de trabajar con Larry y Sarah en este proyecto.
Fue un gran placer trabajar en este proyecto con el Dr. Barnett, maestro y mentor, y Sarah Cox, socio
y coautor. Ellos mantuvieron este proyecto emocionante. Este trabajo no habra sido posible sin la
paciencia y el apoyo de mi esposa, Anna, y los nios, James, Heather, Max, y Alan, que han estado
dispuestos a renunciar a algunas cosas ahora para construir ms grande y mejor futuros.
Larry D. O'Cull
Septiembre 2003
Este libro ha sido un esfuerzo desafiante y emocionante. Tengo una tremenda cantidad de respeto por
Larry O'Cull y el Dr. Barnett y han considerado un gran privilegio trabajar con ellos. Debo agradecer
especficamente a Larry por tener la visin para este proyecto. Tambin quiero agradecer mi esposo,
Greg, y su hija, Meredith, por su apoyo durante todo el proceso.
Sarah A. Cox
Septiembre 2003
18
Embedded C Programming and the Microchip PIC
AUTORES
El libro de texto de T h i s es, sin duda, un libro de colaboracin entre los tres autores. Esta seccin
fue en gran parte por un autor y que ha sido revisado crticamente por los otros dos, para volver a
escribir trozos cuando sea necesario. No es posible delinear quin es responsable de ninguna parte
particular de el libro. Los autores:
L a r r y D. Oh ll
Seor . O 'C u l l Recib una Licenciatura en Ciencias de la Escuela de Ingeniera Elctrica Tecnologa
en la Universidad de Purdue. H i s carrera profesional iniciada en el diseo de software y control
sistemas para mquinas herramientas controladas numricas (C N C). F r o m all se traslad a otras
oportunidades en ingeniera electrnica y desarrollo de software para sistemas de visin, mquinas-
herramientas robotizadas con lser, equipos de diagnstico mdico y productos comerciales y de
consumo productos, y ha sido incluido en la lista de numerosas patentes. Seor . O 'C u l l inici los
Recursos Progresivos en 1995 despus de varios aos de trabajo y ingeniera de software y gestin
de ingeniera. Recursos progresivos L LC (http://www.prllc.com) se especializa en productos
innovadores comerciales, industriales y de consumo desarrollo. Progressive Resources ha sido
miembro asesor de M i c r o c h ip desde 1995. Se puede contactar con las sugerencias y comentarios
por e - mail en [email protected].
19
Embedded C Programming and the Microchip PIC
20
Embedded C Programming and the Microchip PIC
El siguiente gran paso en esta evolucin de alta tecnologa fue la implementacin de idioma
compiladores que estn dirigidos especficamente para su uso con estos nuevos microprocesadores.
La generacin de cdigo y la optimizacin de los compiladores es bastante impresionante. El lenguaje
de programacin C, con su forma libre, "haz tus propias reglas" estructura se presta a esta aplicacin
por su capacidad de adaptarse a un objetivo particular sistema, mientras que todava permite que el
cdigo sea portable a otros sistemas. El principal beneficio de una lengua como sta es que crea
grupos de propiedad intelectual que pueden ser dibujado de una y otra vez. Esto reduce los costos de
desarrollo de manera continua, acortando el ciclo de desarrollo con cada diseo posterior.
21
Embedded C Programming and the Microchip PIC
Una de las mejores herramientas en lenguaje C desarrolladas hasta la fecha para la familia de
procesadores PIC Microchip es PIC-C. Creado por Custom Computer Services, Inc., este desarrollo
totalmente integrado (IDE) permite la edicin, compilacin, programacin de piezas y depuracin
para se puede realizar desde una aplicacin PC Windows. La motivacin que ha llevado a la
desarrollo de este libro es la creciente popularidad del PIC y otros microcontroladores RISC, el
creciente nivel de integracin (ms en un chip y menos chips en un circuito ) y la necesidad de un
"pensamiento sintonizado" cuando se trata de desarrollar productos que utilicen este tipo de
tecnologa. Usted puede tener experiencia escribiendo C para una PC, o ensamblador para un
microcontrolador.
Pero cuando se trata de escribir C para un microcontrolador incrustado, el enfoque debe ser
modificado para obtener los resultados finales deseados: cdigo pequeo, eficiente, confiable y
reutilizable. Esta libro de texto est diseado para proporcionar una buena lnea de base para el
principiante, as como una referencia til herramienta para aquellos con experiencia en diseo de
microcontroladores integrados.
22
Embedded C Programming and the Microchip PIC
1.1 OBJETIVOS
1.2 INTRODUCCION
23
Embedded C Programming and the Microchip PIC
Asignar valores a las variables y constantes y realizar operaciones aritmticas con las variables
C construye y controla las sentencias para formar programas C completos
Las secciones finales cubren los temas ms avanzados como punteros, matrices, estructuras y
sindicatos y su uso en los programas C. Conceptos avanzados como programacin en tiempo real e
interrupciones completan el captulo.
Escribir un programa de C es, en cierto sentido, como construir una casa de ladrillo: Se pone una
fundacin, arena y cemento se utilizan para hacer ladrillos, estos ladrillos se disponen en filas para
hacer un curso de bloques, y los cursos se apilan para crear un edificio. En un programa C incrustado,
los conjuntos de instrucciones se unen para formar funciones; estas funciones se tratan como de nivel
superior operaciones, que luego se combinan para formar un programa.
Cada programa de lenguaje C debe tener al menos una funcin, a saber, mainQ. La funcin main ()
es la base de un programa de lenguaje C, y es el punto de partida cuando el programa se ejecuta el
cdigo. Todas las funciones son invocadas por mainQ de forma directa o indirecta.
Aunque las funciones pueden ser completas y autnomas, se pueden utilizar variables y parmetros
para cementar estas funciones juntas.
La funcin mainQ se considera la tarea de nivel ms bajo, ya que es la primera funcin llamado desde
el sistema que inicia el programa. En muchos casos, mainQ contendr slo unas pocas declaraciones
que no hacen ms que inicializar y dirigir el funcionamiento del programa desde una funcin a otra.
CONCEPTOS
void m a i n ()
{
w h i l e ( 1 ) / / do f o r e v e r ..
}
El programa mostrado arriba se compilar y funcionar perfectamente, pero no sabr que para seguro
porque no hay indicacin de actividad de ningn tipo. Podemos embellecer el programa que realmente
se puede ver la vida, revisar su funcionalidad, y comenzar a estudiar los elementos sintcticos del
idioma.
# i n c l u d e < s t d i o . h>
v o i d m a i n ()
{
p r i n t f ( " H E L L O WORLD");
w h i l e ( 1 ) // Hacer siempre
}
24
Embedded C Programming and the Microchip PIC
25