// Programa combinacional. Según el estado de los interruptores RA0 y RA1, activar los leds RB0-RB7 conectados a la puerta B, conforme a la siguiente tabla de la verdad:
// RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
// --- --- --- --- --- --- --- --- --- ---
// 0 0 1 0 1 0 1 0 1 0
// 0 1 0 1 0 1 0 1 0 1
// 1 0 0 0 0 0 1 1 1 1
// 1 1 1 1 1 1 0 0 0 0
Hemos realizado la programación con el programa PCW CCS 4.104 y un pic16F877.
A continuación introduciré todo el código con los comentarios pertinentes:
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// AUTOR:CESAR ZAZO SERRANO. 09/05/2012
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// PROGRAMA: PROGRAMA COMBINACIONAL
// DISPOSITIVO: PIC 16F877 COMPILADOR: CCS VS 4.104
// ENTORNO IDE: MPLAB 8.40 SIMULADOR: PROTEUS 7.8
// TARJETA DE APLICACION: PICDEM2 DEBUGGER: ICD3
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CABECERA //////////////////////////////////////////////////////////////////////////////////////////////////////////
#include<16f877.h> // libreria del pic 16f877
#fuses xt,nowdt
#byte port_a=0x05 //vamos a utilizar el puerto a y b.
#byte port_b=0x06
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// PRINCIPAL /////////////////////////////////////////////////////////////////////////////////////////////////////////
void main (void)
{
while(1)
if ((input (pin_a0)==0) && (input(pin_a1)==0)) // condición del estado de los interruptores.
{
output_b(0b10101010); // se encienden los leds de cada posición indicada.
}
else // en caso contrario sucederá lo siguiente
{
if ((input (pin_a0)==1) && (input(pin_a1)==0))
{
output_b(0b01010101);
}
else
{
if ((input (pin_a0)==0) && (input(pin_a1)==1))
{
output_b(0b00001111);
}
else
{
if ((input (pin_a0)==1) && (input(pin_a1)==1))
{
output_b(0b11110000);
}
}
}
}
}
//fin del while
No hay comentarios:
Publicar un comentario