Dado Eletrônico com PIC16F628A
Projeto simples de um Dado Eletrônico utilizando o PIC16F628A
Funciona da seguinte maneira: Ao pressionar o botão START/STOP irá executar a função rand(). Essa função gera um número aleatório entre 0 e 32767, toda vez que é chamada. Ao pressionar o botão novamente, fixa o valor e exibe-o pela PORTB.
Como os números dos dados são de 1 a 6, tive que fazer uma regra de 3 com o valor randômico.
DOWNLOAD:
Firware: Dado.hex;
Arquivo de simulação do Proteus: Dado.DSN;
CóDIGO-FONTE:
long random; bit oldstate, start; int numeros[6] = {0x08,0x01,0x09,0x05,0x0D,0x07}; void main() { oldstate=0; start=0; TRISB=0b10000000; PORTB = 0x00; while(1){ if(PORTB.F7) oldstate=1; if(!PORTB.F7 && oldstate){ start= ~start; oldstate=0; } if(start){ random = rand();//a função rand() gera um numero entre 0 e 32767 random = ( 6 * random ) / 32767; //regra de 3 PORTB = numeros[random]; }else{ PORTB = numeros[random]; } delay_ms(20); } }
Nenhum comentário