Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PORTD = 0b01000001;
__delay_ms(2000);
PORTD = 0b00100100;
__delay_ms(3000);
PORTD = 0b00100010;
__delay_ms(2000);
}
return;
}
FALSE
TRUE
2. Para el programa contador ascendente explicado en clase. Realice las modificaciones para
que pueda funcionar como un contador ascendente descendente (pulsador 1 para
ascender y pulsador 2 para descender).
Utilice el puerto B RB0 y RB1 para los respectivos pulsadores
RB0 ascendente
RB1 descendente
//Configuramos el cristal
#define _XTAL_FREQ 4000000
/* +-------------------------+
* | DECLARA PROCEDIMIENTO |
*| RETARDO |
* +-------------------------|*/
//Programa principal
void main(void)
{
TRISD = 0x00; //Puerto D como salida
TRISB = 0x0F;/*Los 4 LSB como entrada y los
* 4MSBcomo salida*/
//Puerto D apagado (OFF)
PORTD = 0x00;
while(1)
{
ent_2_bcd(contador); //Llamada a procedimiento
a = 0;
b = centenas;
c = decenas;
d = unidades;
visualizar(); //Llamada a procedimiento
if (PORTBbits.RB0==0)
{
if(contador<10)
{
++contador;
visualizar();
}
if (contador>=0&& contador<10)
PORTBbits.RB7=1;
if (contador==10)
PORTBbits.RB5=1;
}
else if (PORTBbits.RB1==0)
{
if(contador<10)
{
--contador;
visualizar();
}
if (contador>=0&& contador<10)
PORTBbits.RB7=1;
if (contador==10)
PORTBbits.RB5=1;
}
return;
}