Hola a todos, soy nuevo en programacion de micros con CCS, y tengo el siguiente problema, hice un codigo para encender una serie de de 4 led a traves del puerto B del pic 16F84. Al hacerlo manualmente con OUTPUT_HIGH(PIN_xx) para cada secuencia no hay problemas, pero al querer hacerlo mas automatizado, creando un registro de 8 bit y ponerlo en el puerto B, no me funciona bien, no me prenden los led como dice el codigo. Alguien podria ayudarme e indicarme que estoy haciendo mal? copio el codigo en CCS:
Codigo con el cual me funciona perfecto:
Código:
#include "C:\Program Files\PICC\Examples\Proyectos\led1.h"
#byte port_a = 0x05
#byte port_b = 0x06
#byte set_tris_a = 0x85
#byte set_tris_b = 0x86
#byte dato1 = 0x0C
#byte dato2 = 0x0F
#byte dato3 = 0x10
#byte dato4 = 0x11
void main()
{
set_tris_a=0b00000000;
set_tris_b=0b00000000;
dato1=0b10000000;
dato2=0b01000000;
dato3=0b00100000;
dato4=0b00010000;
while(true){
port_b=dato1;
delay_ms(200);
port_b=dato2;
delay_ms(200);
port_b=dato3;
delay_ms(200);
port_b=dato4;
delay_ms(200);
}
}
Codigo con el cual me funciona perfecto:
Código:
#include "C:\Program Files\PICC\Examples\Proyectos\led1.h"
#byte port_a = 0x05
#byte port_b = 0x06
#byte set_tris_a = 0x85
#byte set_tris_b = 0x86
#byte dato1 = 0x0C
#byte dato2 = 0x0F
#byte dato3 = 0x10
#byte dato4 = 0x11
void main()
{
set_tris_a=0b00000000;
set_tris_b=0b00000000;
dato1=0b10000000;
dato2=0b01000000;
dato3=0b00100000;
dato4=0b00010000;
while(true){
output_high(PIN_B7);
output_low(PIN_B6);
output_low(PIN_B5);
output_low(PIN_B4);
output_low(PIN_B3);
output_low(PIN_B2);
output_low(PIN_B1);
output_low(PIN_B0);
delay_ms(200);
output_low(PIN_B7);
output_high(PIN_B6);
output_low(PIN_B5);
output_low(PIN_B4);
output_low(PIN_B3);
output_low(PIN_B2);
output_low(PIN_B1);
output_low(PIN_B0);
delay_ms(200);
output_low(PIN_B7);
output_low(PIN_B6);
output_high(PIN_B5);
output_low(PIN_B4);
output_low(PIN_B3);
output_low(PIN_B2);
output_low(PIN_B1);
output_low(PIN_B0);
delay_ms(200);
output_low(PIN_B7);
output_low(PIN_B6);
output_low(PIN_B5);
output_high(PIN_B4);
output_low(PIN_B3);
output_low(PIN_B2);
output_low(PIN_B1);
output_low(PIN_B0);
delay_ms(200);
}
}
Última edición por un moderador: