Practica 8. Lenguaje C para la programacion del PIC16F877A PDF

Title Practica 8. Lenguaje C para la programacion del PIC16F877A
Course Microcontroladores
Institution Instituto Tecnológico de Tijuana
Pages 10
File Size 514.3 KB
File Type PDF
Total Downloads 105
Total Views 135

Summary

Lenguaje C...


Description

Tecnológico Nacional de México Instituto Tecnológico de Tijuana

Ingeniería Biomédica

Microcontroladores

Practica 8. Lenguaje C para la programación del PIC 16F877A

Calvillo López Alejandro – 16212214 Sánchez Saavedra Eduardo Francisco – 16212267

ABRIL 2019

OBJETIVO Compilar y ejecutar un programa básico en lenguaje C para el microcontrolador PIC16F877A usando MPLAB y el compilador CCS

MARCO TEORICO Introducción lenguaje C La evolución de la electrónica con microcontroladores conlleva que ya no sea requerido programar directamente en lenguaje ensamblador para conseguir resultados optimos. Por lo tanto, una manera efectiva y rápida de programar cualquier microcontrolador independientemente de su fabricante, se ha convertido en una herramienta imprescindible conocer programar en lenguaje C. El lenguaje C fue desarrollado e implementado bajo el sistema operativo UNIX, siendo este en lenguaje de programación de nivel medio, es decir, el cual combina los elementos tanto de un lenguaje de alto nivel como los propios del lenguaje ensamblador. La principal ventaja del lenguaje C recae en el factor de que no se encuentra atado a un determinado sistema operativo o hardware.

Programación en lenguaje C Un programa escrito en C consta de módulos denominados funciones, en donde al módulo principal se establece como el main. Cada una de las funciones se delimitan por {}, y dentro de ellas es posible declarar los objetos que serán manipulados. En un inicio del programa, se realizan las declaraciones de las directivas para incluir archivos (#INCLUDE), macros y/o constantes (#DEFINE), prototipos de funciones, variables globales y tipos de datos. Las directivas principales son INCLUDE para añadir un fichero fuente de texto que contiene el archivo indicado, FUSE para la definición de los fusibles que deben activarse en el dispositivo a programar (Tipo de oscilador, activación del WDT, protección del código, temporizador de arranque, detección de caídas de tensión de la fuente de alimentación), #INT_XX para la especificación de que la función siguiente es de interrupción (#INT_EXT para interrupción externa; #INT_TRCC para el desbordamiento del TMR0; #INT_RB para el cambio de pines RB4, RB5,

RB6 y RB7; #INT_AD para el conversor A/D; #INT_TIMERx para el desbordamiento del TMR1 o del TMR2), #USE DELAY(clock=frecuencia) le indica al compilador la frecuencia del procesador en ciclos por segundo, #USE STANDARD_io (Puerto) genera las instrucciones de entrada y salida. Las constantes son valores que el compilador reemplazara en la primera pasada y que no sufrirán de modificación alguna durante su ejecución, siendo estos de cualquier clase de tipo de dato, además de poder tratarse de operaciones. Las constantes enumeradas permiten asociar valores constantes consecutivos a una constante en forma similar a define. En caso de que al primer elemento no se le asigne un valor, el valor default de este será 0. Una variable es un espacio reservado en la localidad de memoria con la capacidad de almacena valores que pueden ser modificados en el transcurso de la ejecución del programa. En su declaración se le indica al compilador que debe de reservar un espacio en la memoria, asignándole un nombre y un determinado número de bytes, los cuales establecen el tipo de parámetro. Cabe resaltar que el compilador deduce que dicha información se declara como el tipo de dato para cada declaración. Las variables dentro de una función se consideran variables locales, mientras que las que se declaran fuera son variables globales. Los tipos de variables son: Tipo

Significado

Clave

Reserva

Carácter

Caracteres

char

1 byte

Entero

Número entero con signo

Ibt

2 bytes

Largo

Número entero con signo

Long

4 bytes

Flotante

Número real con signo

Float

4 bytes

Doble

Número real con signo

Double

8 bytes

Asimismo se presentan modificadores de las variables Unsigned

Variable positiva

Volatile

El valor puede cambiar por acción externa

Static

Posición fija en la RAM y solo puede ser reconocida y manipulada por el modulo que la definió

Extern

Variable declarada en otro archivo

Const

La variable no puede ser modificada, suele almacenarse en la memoria FLASH

Far

Asigna la variable fuera de la página cero

Near

Asigna la variable en la página cero

Los punteros * o -> son un tipo especial de variable que contiene una dirección de memoria, la cual puede contener cualquier tipo de dato. Los operadores principales son: Aritméticos =

Asignación

-

Resta o sustracción

+

Suma o adición

*

Multiplicación o producto

/

Cociente entero de la división

%

Residuo entero de la división

--

Decremento en 1

++

Incremento en 1 Relacionales

<

Menor que

>

Mayor que

=

Mayor o igual que

==

Igual que

¡=

Distinto que Lógicos booleanos

||

OR

&&

AND

¡

NOT Orientados a Bits

|

OR

&

AND

^

XOR

>>n

Desplaza n veces a la derecha...


Similar Free PDFs