Programación de PIC en C Con El Compilador MikroC PRO

13
Programación de PIC en C con el compilador mikroC PRO Del libro Cómo programar en lenguaje C los microcontroladores PIC16F88, 16F628A y 16F877A . 2da edición A continuación se presentan los conceptos fundamentales más importantes, necesarios para emprender exitosamente el aprendizaje de programación de microcontroladores PIC en C, utilizando el conocido compilador mikroC PRO. Estructura básica de un programa en mikroC PRO (sin funciones) Todos los programas (código fuente) de microcontroladores PIC en C tienen una estructura básica, a partir de la cual se desarrolla cualquier aplicación del usuario: //Nombre_de_programa.c //Descripción del programa. //Autor: Ing. Penagos R. //Declaración de variables ... //Función principal void main( ){ //Instrucciones del programa. ... } Los 7 elementos básicos de la programación de PIC en C

Transcript of Programación de PIC en C Con El Compilador MikroC PRO

Programacin de PIC en C con el compilador mikroC PRODel libroCmo programar en lenguaje C los microcontroladores PIC16F88, 16F628A y 16F877A. 2da edicinA continuacin se presentan los conceptos fundamentales ms importantes, necesarios para emprender exitosamente el aprendizaje de programacin de microcontroladores PIC en C, utilizando el conocido compilador mikroC PRO.Estructura bsica de un programa en mikroC PRO (sin funciones)Todos los programas (cdigo fuente) de microcontroladores PIC en C tienen una estructura bsica, a partir de la cual se desarrolla cualquier aplicacin del usuario:

//Nombre_de_programa.c//Descripcin del programa. //Autor: Ing. Penagos R.//Declaracin de variables...//Funcin principalvoid main( ){//Instrucciones del programa....}Los 7 elementos bsicos de la programacin de PIC en CLa programacin de PIC en C se puede comprender mejor si se estudian sus elementos bsicos; una vez que se dominen estos elementos se podr dar solucin a la gran mayora de problemas de programacin. El propsito de la mayora de los programas es resolver un problema. Los programas resuelven los problemas por medio de la manipulacin de informacin o datos. Normalmente los programas se caracterizan por permitir el ingreso de informacin, tener uno o varios lugares de almacenamiento de dicha informacin, contar con las instrucciones para manipular estos datos y obtener algn resultado del programa que sea til para el usuario. Tambin, las instrucciones se pueden organizar de tal forma que algunas de ellas se ejecuten slo cuando una condicin especfica (o conjunto de condiciones) sea verdadera, otras instrucciones se repitan un cierto nmero de veces y otras pueden ser agrupadas en bloques que se ejecutan en diferentes partes de un programa.Lo anterior constituye una breve descripcin de los siete elementos bsicos de la programacin:entrada de datos, tipos de datos, operaciones, salida, ejecucin condicional, lazos y funciones. Una vez que se dominan estos elementos se puede afirmar que se conocen los fundamentos de la programacin, con lo cual ya es posible desarrollar una gran cantidad de aplicaciones de diversa ndole.Instrucciones bsicas de PIC en C1.- Instruccin de asignacin (=)Permite asignar a una variable un valor constante, el contenido de otra variable o el resultado de una expresin matemtica. La asignacin va de derecha a izquierda. Por ejemplo,suma=0; //El valor 0 se almacena en la variable suma.x0=x1; //El contenido de la variable x1 se almacena en la variable x0.dx=(b-a)/n; //El resultado de la expresin matemtica se almacena en la variable dx.2.- Instruccin de entrada de datos (variable=PORTx)Permite el ingreso de uno o ms datos a travs de los pines del microcontrolador y almacenarlos en una o ms variables. Por ejemplo,variable=PORTA; //Los bits del puerto A se almacenan en la variable.El siguiente es un caso especial utilizado en la programacin de microcontroladores PIC en C:PORTB=PORTA; //Los bits del puerto A se envan hacia los pines del puerto B.Tambin se puede leer el estado individual de cada bit de un puerto:variable=RB3_bit; //Lee el estado del pin RB3 y lo guarda en la variable.3.- Instruccin de salida de datos (PORTx=dato)Permite el envo de datos, el contenido de una variable o el resultado de una expresin matemtica hacia los pines de un puerto. Por ejemplo,PORTA=0x00; //Todos los pines del puerto A se ponen en 0.PORTB=variable; Los bits de la variable son enviados hacia los pines del puerto B.PORTB=PORTA+65; //El valor del puerto A ms 65 se enva hacia el puerto B.Como caso especial, se pueden enviar bits individuales a cada uno de los pines de un puerto:

RB0_bit=0; //El pin RB0 se pone en 0.4.- Instruccin de decisin (if...else)Permite la ejecucin de las instrucciones1 si la condicin es verdadera, de lo contrario se ejecutan las instrucciones2. Las llaves { } no son necesarias cuando hay una sola instruccin.if (condicin){ instrucciones1;}else{ instrucciones2;}Ejemplo 1:Si el contenido de la variable codigo es igual al contenido de la variable clave, se ejecutan las primeras cuatro instrucciones; de lo contrario se ejecutan nicamente los dos ltimas instrucciones.if (codigo==clave){ intentos=0; RA7_bit=1; Delay_1sec( ); RA7_bit=0;} else{ intentos++; Delay_ms(200);}Ejemplo 2:Instruccin de decisin sin else. Esta es una variante muy utilizada cuando se desea condicionar la ejecucin de un grupo de instrucciones.Las dos instrucciones se ejecutarn nicamente si la variable contador es igual a 2, de lo contrario la ejecucin contina a partir de la lnea //Aqu.if (contador==2){ RB6_bit=~RB6_bit; contador=0;}//Aqu.Ejemplo 3:Similar al caso anterior pero con una sola instruccin. Si la variable horas es igual a 24 se reinicia esta variable con un valor de cero.if (horas==24) horas=0;Nota 1:Las condiciones se obtienen por medio de los operadores de relacin y los operadores lgicos.Nota 2:Operadores de relacin: > Mayor que >= Mayor o igual que =1; i--){ PORTB=PORTB