Electronica, Microcontroladores y Psicología
  Dado Electronico
 


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
}
}
}

 

 
   
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis