En esta práctica vamos a conectar a la placa, un sensor volumétrico. Este tipo de sensores detectan cambios de temperatura en el aire y son muy utilizados en sistemas de alarmas. En este caso, el sensor genera un pulso de +5V cuando detecta una fuente de calor y entrega +0V en estado de reposo.
Conectaremos el sensor al puerto P0 de la placa, colocando el microinterruptor en posición "pull-down" ya que de este modo forzamos la entrada del P0.0 a "0". Sólo cuando el sensor detecte movimiento se generará un cambio en el pin a "+5V".
El programa es muy sencillo, sólo hay que definir los registros, configurar el puerto P0 como entradas para poder leer el valor entregado por el sensor y encender los LEDS del puerto P1 para mostrar el cambio de estado. Aquí tienes el programa comentado.
//este programa lee un sensor de presencia conectado al puerto P0
//el sensor entrega +5V cuando detecta una fuente de calor
// primero se definen los registros que vamos a utilizar
sfr P0=0x80;sfr P1=0x90;
//en esta variable de 8bits almacenamos el valor leído del puerto
unsigned char valor;
//aquí comienza el programa principal
void main (void) {
P0=255; //configuramos el puerto P0 como entrada
while(1) {
valor=P0; //leemos el valor del puerto
//comprobamos que el sensor está activo y..
if (P0 & 0x01 ==0x01) P1=0x00; //encendemos los LEDS de P1 (es inversor)
else P1=0xFF; //apagamos los LEDS del P1 (es inversor)
}
}
No hay comentarios:
Publicar un comentario