Vous êtes sur la page 1sur 10

CURSO BÁSICO-INTERMEDIO

MICROCONTROLADORES
PIC 16F84A-16F877A-18F4550
Dia: 3

Expositor: Yver Rolando Flores


Calle
La programación seria prácticamente imposible sin el uso de
variables. Podemos hacernos una imagen mental de las variables
consistente en una caja en la que podemos guardar algo. Esa caja es
una de las muchas que disponemos, y tiene en su frente pegada una
etiqueta con su nombre.
Estas cajas tienen ciertas particularidades, que hace que solo se
puedan guardar en ellas determinados tipos de objetos.

La tabla siguiente muestra los tipos de datos disponibles:


Las variables deben ser declaradas antes de ser utilizadas en el
programa.
El proceso de declaración de variables le dice a compilador que
tipo de variables son y como se llaman.

La forma en que se declara una variable es la siguiente:


tipo nombre_de_la_variable; //donde tipo es alguno de los enumerados en la tabla
//anterior
Ejemplo de uso:
int temperatura; //La variable” temperatura”, será capaz de albergar cualquier
//valor entero comprendido entre 0 y 255.
Temperatura=36; //La variable” temperatura”, tendrá el valor de 36
Si una variable se declara dentro de una función, será “visible”
solo dentro de ésta:
funcion1 ()
{ //La variable de tipo char llamada ‘var’ solo podrá utilizarse dentro de la
char var; //funcion llamada ‘funcion1()’.
……. //Si intentamos utilizarla fuera de ella, el compilador nos dará un error.
……. } //A este tipo de variables se les llama Variables Locales
Si declaramos una variable fuera de cualquier función, el alcance
de esta será global, lo que quiere decir que estará disponible en
cualquier parte de nuestro programa.
char var; //La variable de tipo char llamada ‘var’ es declarada como un
funcion1() //variable global
{…..
…..} // Por lo tanto podrá utilizarse dentro de la función ‘funcion1()’
main() //o dentro de la función principal ‘main()’.
{……
……}
CCS nos permite mezclar diferentes tipos de variables dentro de una
misma expresión.
Sin embargo, podemos forzar a que el resultado sea de un tipo en
particular, de la siguiente forma:
(tipo) valor //donde ‘tipo’ es el tipo al que queremos que pertenezca valor
Ejemplo :
int a = 250, b = 10; //Se declara dos variables de tipo entero y se asignan valores
long c; //Se declara la variable ‘c’ de tipo long
c = a * b;
Entonces c no contendrá el valor 2500 como podría parecer a simple vista, CCS
calcula ‘a’ *‘b’ y obtiene efectivamente el resultado 2500, pero c sólo contendrá los
8 bits menos significativos de ese resultado, es decir el decimal 196.
Si hubiésemos hecho:
int a = 250, b = 10;
long c;
c = (long) (a * b); //Forzamos a que el resultado sea de un tipo en particular
//El valor almacenado en c ahora es efectivamente 2500.
En CCS los operadores cumplen un rol importante, quizás C sea uno
de los lenguajes que mas operadores tiene.
Una expresión es una combinación de operadores y operandos.

Los operadores aritméticos se usan para realizar operaciones


matemáticas, Se listan en la siguiente tabla:

Atajos:
a *= b es lo mismo que a = a * b
a /= b es lo mismo que a = a / b
a += b es lo mismo que a = a + b
a -= b es lo mismo que a = a – b
a %= b es lo mismo que a = a % b
Su misión es comparar dos operandos y dar un resultado entero:
‘1’ (verdadero); ‘0’ (falso).
La siguiente tabla ilustra estos operadores:

Los operadores lógicos disponibles permiten realizar las operaciones


AND, OR y NOT, por supuesto, puede emplearse más de un operador
lógico en la misma expresión:
Existen seis operadores pensados para trabajar directamente sobre
los bits. Solamente pueden usarse con variables tipo int y char.

& (AND)
| (OR)
^ (XOR)
~ (Complemento)
<< (Desplazamiento a la izquierda)
>> (Desplazamiento a la derecha)

Ejemplo:
Supongamos que: a = 120 y b = 13. (los resultados de las operaciones serán)
·a&b=8 //variable ‘a’ AND ‘b’ igual a 8
· a | b = 125 //variable ‘a’ OR ‘b’ igual a 125
· a ^ b = 117 //variable ‘a’ XOR ‘b’ igual a 117
· ~ a = 135 //variable ‘a’ COMPLEMENTO ‘b’igual a 8
El porqué de estos resultados puede comprenderse mejor si se
pasan los valores de a y b a binario:
a = 11111000
b = 00001101
Luego:
01111000 AND 00001101 = 00001000
01111000 OR 00001101 = 01111101
01111000 XOR 00001101 = 01110101
NOT 01111000 = 10000111

Los operadores de desplazamiento “corren” el contenido de la


variable a la derecha o a la izquierda, rellenando con ceros.
Veamos algunos ejemplos:
*a = a >> 2 //”corre” el contenido de a dos lugares a la derecha
Si a era igual a 120 ( 01111000 en binario) pasará a valer 30 (00011110 en binario).
*a = a << 3 //”corre” el contenido de a tres lugares a la izquierda
Si a era igual a 120 ( 01111000 en binario) pasará a valer 192 (11000000 en binario).

Vous aimerez peut-être aussi