hola soy nuevo en esto de los pics y en CCS, tu programa funciona muy bien, pero me gustaria que me ayudaras a hacer uno como el tuyo que cuente hasta 999 y que cuando este en algun numero, con el PIN_A1 puedas descender hasta llegar a 0. que sea acsendente y descendente. pero cuando llegue a 0 se detenga.
me puedes ayudar porfavor.
//programa: contador de 00000 a 99999 con LCD
// nombres: japifer_22
// email: japifer_22@hotmail.com
// Ing.Ejec.Electronica
// variables:
// * i -> indice tabla 7seg para mostrar 1º digito,,,sifra menos significativa
// * j -> indice tabla 7seg para mostrar 2º digito
// * h -> indice tabla 7seg para mostrar 3º digito
// * g -> indice tabla 7seg para mostrar 4º digito
// * z -> indice tabla 7seg para mostrar 5º digito,,,sifra mas significativa
// * tabNum[] -> vector donde se almacenan numeros del contador 0a9
//
// Conexiones:
// MCLR -> inicio programa //"propaganda"
// A0 -> entrada a contador
// B0 -> E --> de la LCD
// B1 -> RS --> de la LCD
// B2 -> RW --> de la LCD
// B4 -> D4 --> de la LCD
// B5 -> D5 --> de la LCD
// B6 -> D6 --> de la LCD
// B7 -> D7 --> de la LCD
//
//////////////////////////////////////////////////////////////////////////////////
#include <16f876a.h> //pic a utilizar
#fuses HS,NOWDT,NOPROTECT,PUT,NOLVP //ordenes para el programador
#use delay (clock=20000000) //clock=20Mhz
#define use_portb_lcd TRUE //definir portb lcd
#include<lcd.c> //libreria manejo lcd
///PROGRAMA
void main(void)
{
char tabNum[10]={'0','1','2','3','4','5','6','7','8','9'},i=0,j=0,h=0,g=0,z=0; //tabla y variable definida
lcd_init(); //inicializa lcd
printf(lcd_putc,"contador de\n00000 a 99999"); //muestra mensaje inicio
do{ //espera hasta que se pulse boton...
}while(input(PIN_A0)==1);
printf(lcd_putc,"\f"); //...para borrar pantalla e iniciar contador
printf(lcd_putc,"\njapifer_22."); //auto publicidad en la 2ºfila lcd
lcd_gotoxy(7,1); //vuelve 1ºfila lcd y apunta la mitad de la columna
for(;
{ //bucle...
if(!input(PIN_A0)){ //¿se ha pulsado el boton?
do{ //SI -> eliminar...
}while(!input(PIN_A0)); //...rebotes del boton
if(i>9){ //¿se ha mostrado digito 9?
i=0; //SI -> restaura valor indice(para mostrar digito 0)
j++;
if(j>9){J=0;
h++;}
if(h>9){h=0;
g++;}
if(g>9){g=0;
z++;}
if(z>9){z=0;
output_high(PIN_B3);
delay_ms(100);
}
}
printf(lcd_putc,"%c%c%c%c%c",tabNum[z],tabNum[g],tabNum[h],tabNum[j],tabNum
); //muestra por pantalla el numero
printf(lcd_putc,"\b\b\b\b\b"); //retrasa el cursor una posicion(escribe encima)
i++; //incremento contador indice tabNum
}
} //...infinito
}