Ejemplos básicos de PIC en C - Secuencia de luces. Utilizando operadores aritméticos

Ejemplo que simula las luces del coche fantástico utilizando operadores aritméticos

MICROCONTROLADORES

Biblioman

8/31/20091 min leer

Comentario:

Este ejemplo que simula las luces del coche fantástico, en cuanto a lo que hace no tiene nada de especial, ya hay muchos ejemplos en la red que simulan las luces del coche fantástico, pero si en la forma de como lo hace, este es un ejemplo que nos sirve para ver como utilizar los operadores en nuestros programas.

En este caso una multiplicación por 2 (en binario 10) hace desplazar el bit que está a uno hacia la izquierda. Al dividir entre 2 desplazamos el bit a 1 hacia la derecha, con lo que tenemos una secuencia parecida al del coche fantástico.

En la línea 4: #byte puerto_b=6 --> creamos un identificador llamado puerto_b para referenciar el registro de proposito específico (SFR) con dirección 0x06. Esta es una forma de acceder a los puertos del PIC, pero hay más. Se verán todas las formas cuando se vea el tema de los punteros.

En la línea 8: set_tris_b(0x00); --> configuramos el puerto b del PIC como salida digital

En la línea 9: puerto_b=1; --> asignamos el valor 1 (en binario 0b00000001) al puerto b, o sea RB0=1

los demás bits del puero B a cero.

Esquema del circuito:

/*-------------------------------------------------------------------------*
| Coche fantástico (utilizando operadores matemáticos) |
| autor: biblioman |
| www.aquihayapuntes.com |
*-------------------------------------------------------------------------*/

#include <16F84A.h>
#use delay(clock=4000000)
#fuses XT,NOWDT
#byte puerto_b=6

void main() {

set_tris_b(0x00);
puerto_b=1;
delay_ms(1000);

while(true)
{
while(puerto_b<=0b01000000)
{
puerto_b=puerto_b*2;
delay_ms(1000);
}
while(puerto_b>=0b00000010)
{
puerto_b=puerto_b /2;
delay_ms(1000);
}
}
}