GRUPO Nº
DESCRIPCIÓN DEL LABORATORIO:
Implementación de un circuito que conforman una serie de LED's con sus respectivas resistencias, conectados al puerto B del PIC18f2550, este, alimentado con un voltaje de 5Vdc. La función de este circuito es encender los LED's en un orden ascendente o descendente, cada LED debe encenderse durante 100ms, apagarse, y el siguiente debe encenderse y apagarse al igual que el anterior, así, con todos los led del circuito (para este ejercicio 8 LED's), seguido a esto el orden de encendido y apagado de cada led cambia de direccion, es decir, en este orden: led1, led2, led3, led4, led5, led6, led7, led8, led7, led6, led5, led4, led3, led2, led1... infinitas veces.
CODIGO EN C:
#include <18f2550.h> //libreria para pic18f2550
#fuses HS,NOWDT,NOPROTECT,NOLVP,USBDIV,PLL3,CPUDIV1,VREGEN //configuracion de bits
#use delay (clock=12000000)
#use fast_IO(B)
//#device retardo delay_ms(100)
void main()
{
set_tris_b(0x00) ; //todo el puerto B como salida
while(true){
output_high(PIN_B0); //RB0 = 1
delay_ms(100);
output_low(PIN_B0); //RB0 = 0
output_high(PIN_B1); //RB1 = 1
delay_ms(100);
output_low(PIN_B1); //RB1 = 0
output_high(PIN_B2); //RB2 = 1
delay_ms(100);
output_low(PIN_B2); //RB2 = 0
output_high(PIN_B3); //RB3 = 1
delay_ms(100);
output_low(PIN_B3); //RB3 = 0
output_high(PIN_B4); //RB4 = 1
delay_ms(100);
output_low(PIN_B4); //RB4 = 0
output_high(PIN_B5); //RB5 = 1
delay_ms(100);
output_low(PIN_B5); //RB5 = 0
output_high(PIN_B6); //RB6 = 1
delay_ms(100);
output_low(PIN_B6); //RB6 = 0
output_high(PIN_B7); //RB7 = 1
delay_ms(100);
output_low(PIN_B7); //RB7= 0
output_high(PIN_B6); //RB6= 1
delay_ms(100);
output_low(PIN_B6); //RB6= 0
output_high(PIN_B5); //RB5= 1
delay_ms(100);
output_low(PIN_B5); //RB5= 0
output_high(PIN_B4); //RB4= 1
delay_ms(100);
output_low(PIN_B4); //RB4 = 0
output_high(PIN_B3); //RB3 = 1
delay_ms(100);
output_low(PIN_B3); //RB3 = 0
output_high(PIN_B2); //RB2 = 1
delay_ms(100);
output_low(PIN_B2); //RB2 = 0
output_high(PIN_B1); //RB1 = 1
delay_ms(100);
output_low(PIN_B1); //RB1 = 0
output_high(PIN_B0); //RB0 = 1
delay_ms(100);
output_low(PIN_B0); //RB0 = 0
delay_ms(100);
}
}