Buenas tardes amigos.
He recibido ayuda de ustedes muchas veces, y ahora a pesar de que no es gran cosa, y ya que hasta ahora estoy aprendiendo, les adjunto este programa de un contador 0-9 con el PIC16F84A.
Saludos a todos.
He recibido ayuda de ustedes muchas veces, y ahora a pesar de que no es gran cosa, y ya que hasta ahora estoy aprendiendo, les adjunto este programa de un contador 0-9 con el PIC16F84A.
Saludos a todos.
PHP:
#include <16f84a.h> // pic escogido
#use delay(clock=4000000) //cristal de 4Mhz
#fuses xt,nowdt,noprotect,noput // sin esto no arranca:trabajar con cristal, no protegido con clave..etc
#use standard_io(b) //puerto b como entrda o salida estándar
int conteo=0;// el conteo inicia en 0
byte display[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0xa7,0x7f,0x6f};/* saca por el puerto
e ilumina los segmentos para ver 0-9
ya saben, RB0a A,...RB6a G y el punto no se conecta.*/
void main(void){
do{
if(input(pin_a0)){ // si el pin RA0 está en alto
while(input(pin_a0)); //se queda en esta línea mientras RA0 esté en alto
delay_ms(20); //luego al soltar el pulsador (RA0 ya no está en alto, pero ya entró a la rutina)hace un antirebote
if(conteo>9) //Este es el reinicio, si llega a 9 y quiere subir, pasa a 0 de nuevo
conteo=0;
output_b(display[conteo]); /*como conteo cuenta 0-9, cada vez que cuenta,
se escoge un valor del corchete [10] que es una matriz que arroja
valores según la vaiable que cuenta (conteo 0-9 10 valores) y se saca por el puerto B */
conteo++; //y por cada pulso hay un incremento
}
}
while(1); //esto hace un bucle sin fin, o sea que se repite siempre.
}
/* en el simulador proteus verás que hasta no soltar el pulsador, no hay incremento
por la condición while de la línea 17*/
Adjuntos
Última edición por un moderador: