Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El Lenguaje C
El Lenguaje C
LENGUAJE ENSAMBLADOR
Como el proceso de escribir un código ejecutable era considerablemente arduo, en
consecuencia fue creado el primer lenguaje de programación denominado
ensamblador (ASM). Siguiendo la sintaxis básica del ensamblador, era más fácil
escribir y comprender el código. Las instrucciones en ensamblador consisten en las
abreviaturas con significado y a cada instrucción corresponde una localidad de
memoria. Un programa denominado ensamblador compila (traduce) las instrucciones
del lenguaje ensamblador a código máquina (código binario).
UNMSM-FIEE Circuitos Eléctricos I
Los lenguajes de programación de alto nivel (Basic, Pascal, C etc.) fueron creados
con el propósito de superar las desventajas del ensamblador. En lenguajes de
programación de alto nivel varias instrucciones en ensamblador se sustituyen por una
sentencia. El programador ya no tiene que conocer el conjunto de instrucciones o
características del hardware del microcontrolador utilizado. Ya no es posible conocer
exactamente cómo se ejecuta cada sentencia, de todas formas ya no importa. Aunque
siempre se puede insertar en el programa una secuencia escrita en ensamblador.
Lenguaje C
El lenguaje C dispone de todas las ventajas de un lenguaje de programación de alto
nivel (anteriormente descritas) y le permite realizar algunas operaciones tanto sobre
los bytes como sobre los bits (operaciones lógicas, desplazamiento etc.). Las
características de C pueden ser muy útiles al programar los microcontroladores.
Además, C está estandarizado (el estándar ANSI), es muy portable, así que el mismo
código se puede utilizar muchas veces en diferentes proyectos. Lo que lo hace
accesible para cualquiera que conozca este lenguaje sin reparar en el propósito de
uso del microcontrolador. C es un lenguaje compilado, lo que significa que los
archivos fuentes que contienen el código C se traducen a lenguaje máquina por el
compilador. Todas estas características hicieron al C uno de los lenguajes de
programación más populares.
Inicio y fin de bloque: permite agrupar un número de instrucciones las que pueden
ser ejecutadas con cierta prioridad. Se usa { para iniciar bloque y } para finalizar
bloque.
{ // inicio de bloque
// instrucciones
} // final de bloque
Tipo: es una palabra reservada definida que indica el tipo de variable que se ha de
definir y su alcance numérico, esto de acuerdo a la Tabla 1.
Entorno de desarrollo
Como ejemplo se tiene el caso del puerto B, llamado PORTB por el compilador CC5X,
el cual está definido en el archivo de cabecera como una variable entera de 8 bits.
El microcontrolador posee al menos 3 puertos que pueden ser usados como entradas-
salidas digitales o como entradas análogas (si corresponde). Los Puertos son
básicamente registros de 8 bits basados en Flip-Flops Tipo D, que pueden ser usados
como entrada o salida. Los nombres de los puertos corresponden a los especificados
en la data del microcontrolador, así se tiene el PORTB de 8 bits, el PORTC de 8 bit y
el PORTA de 5 bits. Dichos bits se configuran como entrada o salida a través de un
registro llamado TRIS. Para el caso del Puerto A será TRISA, para el puerto B, se usa
el TRISB, etc. Los puertos señalados poseen más de una función. Estos puertos del
µC se usan como si fueran variables enteras de 8 bit y pueden accesarse nivel de bit
o en forma de bytes.
TRISB.0=0; // Bit 0 del puerto B se define como salida TRISC.7=1; // Bit 7 del puerto
C se define como entrada
Puede definirse todo el puerto como entrada o salida o mezcla de ambas situaciones
usando un byte completo sobre el registro TRIS correspondiente.
TRISB=0x00; // los 8 bit del PORTB como salida TRISC=0xFF; // los 8 bits del PORTC
como entrada TRISB=0x0f; // Los 4 bit más significativos de entrada, // los 4
bit menos significativos como salida
Si se pueden programar si se utiliza un lenguaje de alto nivel (C, Pascal, Basic). Cabe
aclarar que lenguajes en versiones para PIC, no son los mismos compiladores
tradicionales.
A ello agreguemos el hecho de que ciertos microcontrolador son más bien un sector
clase A tal como los ARM y los propios AVR. Por lo general sus prestaciones son
superiores. Aunque también encontrarás potentes PIC de 32 bits.
Por sus funciones sí. Pero no puedes retirar un PIC y colocar un Atmel así de simple.
El circuito es otro. El programa es otro a pesar de que funcionalmente puedan ejecutar
las mismas tareas.
Encapsulamiento y ocultación
Como hemos visto, cada objeto es una estructura compleja en cuyo interior hay datos
y programas, todos ellos relacionados entre sí, como si estuvieran encerrados
conjuntamente en una cápsula. Esta propiedad (encapsulamiento), es una de las
características fundamentales en la OOP.
Los objetos son inaccesibles, e impiden que otros objetos, los usuarios, o incluso los
programadores conozcan cómo está distribuida la información o qué información hay
disponible. Esta propiedad de los objetos se denomina ocultación de la información.
Esto no quiere decir, sin embargo, que sea imposible conocer lo necesario respecto
a un objeto y a lo que contiene. Si así fuera no se podría hacer gran cosa con él. Lo
que sucede es que las peticiones de información a un objeto. deben realizarse a
través de mensajes dirigidos a él, con la orden de realizar la operación pertinente. La
respuesta a estas órdenes será la información requerida, siempre que el objeto
considere que quien envía el mensaje está autorizado para obtenerla.
El hecho de que cada objeto sea una cápsula facilita enormemente que un objeto
determinado pueda ser transportado a otro punto de la organización, o incluso a otra
organización totalmente diferente que precise de él. Si el objeto ha sido bien
construido, sus métodos seguirán funcionando en el nuevo entorno sin problemas.
Esta cualidad hace que la OOP sea muy apta para la reutilización de programas.
Existen varios tipos tipos de jerarquías: serán simples cuando su estructura pueda ser
representada por medio de un "árbol". En otros casos puede ser más compleja.
Ing. Electrónica P á g i n a | 10
UNMSM-FIEE Circuitos Eléctricos I
reciben nombres genéricos que denotan al conjunto de objetos que representan, por
ejemplo, VENTANA, CUENTA, FICHERO. En un conjunto reciben el nombre de
clases o tipos si descienden de otra clase o subclase.
Los objetos terminales. Son todos aquellos que descienden de una clase o subclase
y no tienen descendientes. Suelen llamarse casos particulares, instancias o ítems
porque representan los elementos del conjunto representado por la clase o subclase
a la que pertenecen.
Bibliografía
http://luis.izqui.org/resources/ProgOrientadaObjetos.pdfhttp://users.salleurl.edu/~tl13
960/tutorial_hi_tech.pdf
http://sites.ieee.org/sb-itver/files/2014/09/Programa-y-requerimientos-del-curso-uC-
en-C.pdf
http://www.edudevices.com.ar/download/articulos/MCUsPIC/Programando_PICs_C
CS_08.pdf
http://controlautomaticoeducacion.com/primeros-pasos-programando-un-
microcontrolador/
Ing. Electrónica P á g i n a | 11