pic's

Páginas: 36 (8898 palabras) Publicado: 3 de diciembre de 2013
Programación en C para microcontroladores.
Introducción.
C es un lenguaje bastante conciso y en ocasiones desconcertante. Considerado ampliamente como un
lenguaje de alto nivel, posee muchas características importantes, tales como: programación
estructurada, un método definido para llamada a funciones y para paso de parámetros, potentes
estructuras de control, etc.
Sin embargo gran parte dela potencia de C reside en su habilidad para combinar comandos simples
de bajo nivel, en complicadas funciones de alto nivel, y en permitir el acceso a los bytes y words del
procesador. En cierto modo, C puede considerarse como una clase de lenguaje ensamblador
universal. La mayor parte de los programadores familiarizados con C, lo han utilizado para programar
grandes máquinas que correnUnix, MS-DOS, e incluso Windows (programación de drivers). En estas
máquinas el tamaño del programa no es importante, y el interface con el mundo real se realiza a través
de llamadas a funciones o mediante interrupciones DOS. Así el programador en C sólo debe
preocuparse en la manipulación de variables, cadenas, matrices, etc.
Con los modernos microcontroladores de 8 bits, la situación es algodistinta. Tomando como
ejemplo el 8051, el tamaño total del programa debe ser inferior a los 4 u 8K (dependiendo del tamaño
de la EEPROM), y debe usarse menos de 128 o 256 bytes de RAM. Idealmente, los dispositivos reales
y los registros de funciones especiales deben ser direccionados desde C. Las interrupciones, que
requieren vectores en direcciones absolutas también deben ser atendidas desde C.Además, se debe
tener un cuidado especial con las rutinas de ubicación de datos para evitar la sobre escritura de datos
existentes.
Uno de los fundamentos de C es que los parámetros (variables de entrada) se pasan a las funciones
(subrutinas) en la pila, y los resultados se devuelven también en la pila. Así las funciones pueden ser
llamadas desde las interrupciones y desde el programaprincipal sin temor a que las variables locales
sean sobre escritas.
Una seria restricción de la familia 8051 es la carencia de una verdadera pila. En un procesador como
el 8086, el apuntador de la pila tiene al menos 16 bits. Además del apuntador de pila, hay otros
registros que pueden actuar como apuntadores a datos en la pila, tal como el BP (Base Pointer). En C,
la habilidad para acceder a losdatos en la pila es crucial. Como ya ha sido indicado, la familia 8051
está dotada de una pila que realmente sólo es capaz de manejar direcciones de retorno. Con 256 bytes
disponibles, como máximo, para la pila no se pueden pasar muchos parámetros y realizar llamadas a
muchas funciones.
De todo ello, puede pensarse que la implementación de un lenguaje que como C haga un uso
intensivo de lapila, es imposible en un 8051. Hasta hace poco así ha sido. El 8051, hace tiempo que
dispone de compiladores C, que en su mayor parte han sido adaptados de micros más potentes, tal
como el 68000. Por ello la aproximación al problema de la pila se ha realizado creando pilas
artificiales por software. Típicamente se ha apartado un área de RAM externa para que funcione como
una pila, con la ayudade rutinas que manejan la pila cada vez que se realizan llamadas a funciones.
Este método funciona y proporciona capacidad de repetir variables locales a distintos niveles sin sobre
escritura, pero a costa de hacer los programas muy lentos. Por lo tanto, con la familia 8051, la
programación en lenguaje ensamblador ha sido la única alternativa real para el desarrollo de pequeños
sistemas en losque el tiempo es un factor crítico.
Sin embargo, en 1980, Intel proporcionó una solución parcial al problema al permitir la
programación del 8051 en un lenguaje de alto nivel llamado PLM51. Este compilador no era perfecto,
había sido adaptado del PLM85 (8085), pero Intel fue lo suficientemente realista para evitar el uso de
un lenguaje totalmente dependiente del uso de la pila.
La solución...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Pic's
  • Que Son Los Pic's?
  • pic's
  • Programacion De Pic's
  • Manuales Pic's

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS