|
|
|
Hola a todos, aquí les traigo un nuevo proyecto, es un proyecto sencillo, se trata de un dado electronico. Funciona de la siguiente manera:
1. Se muestra el numero "0" cuando se prende el circuito.
2. Se orpime el pulsador y el dado empieza a contar, cuando se suelta espera 1.5 segundos mostrando el numero en el que quedó, después de esto vuelve al numero "0".
Este dado no necesita decodificador BCD 7 segmentos, ya que éste es controlado directamente por el micrcontrolador.
Bueno sin más preambulos les dejo el código, lo que tienen que hacer es copiarlo y compilarlo.
Ahora una imagen para que sepan como simularlo.
#include <16f84.h> //Incluye el archivo de cabecera
#use delay (clock=4000000) //Indica frecuencia del oscilador
#byte portb=6
#bit RA0=5.0
main() //Programa principal
{
int const display[7]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,};
int x=0,control=0; //Define las variable a usar
set_tris_a(0xff); //PORTA como salidas
set_tris_b(0x00); //PORTB como salidas
portb=display[x];
while(1) //Inicia ciclo infinito
{
if(RA0==1) //Si RA0==1
{
portb=display[x];
x++; //Incrementa X
control=1; //Variable control=1
delay_ms(50); //Retardo de 50 ms
if (x==7) //Si X es igual a 7
x=1; //X=1
} //Cierre del while
if (RA0==0 && control==1) //Si RA0=0 y control=1
{
delay_ms(1500); //Retardo 1.5 segundos
output_b(0x3f); //Portb=0x3f (0 en display)
control=0; //Control=0
}
}
}
|
|
|
|
|
|
|
|
|
|
|
|