por RobL » 14 Jul 2007 13:26
Se quizer fazer para praticar, pegue o assembler para pic16f628A do link sugerido acima e rode-o no MPLAB.
Escolha uma porta para entrada para a tecla de captura da freqüência.
Ao pressionar a tecla mova o valor da frequência para 4 registros novos F0,F1,F2,F3 (4 bytes para 30Mhz por exemplo em binario).
Faça uma rotina para iniciar comparação com esses 4 registros após a tecla ter sido pressionada.
A comparação poderá ser feita com Subtração e verificação do STATUS,Z (zero no resultado). Se procurar igualdade entre os bytes é só subtrair um a um e testar o status z. Pode ser feita com XOR também.
Se todos as quatro comparações forem zero acione a saída para o buzzer.
O buzzer poderá ser um com oscilador interno ou gerar no próprio pic.
(Display 0) - F0 ;subtrair os 2 registros
testa Status,z
goto sai ;(nao é igual)
(Displa1)-F1
testa Status,z
goto sai
Display2-F2
testa Status,z
goto sai
Display3-F3
testa Status,z
goto sai
BSF Porta do Buzzer
O mais provável êxito é fazer uma operação para intervalo de frequência (maior que e menor que, acione o buzzer) F0 <Fc <F1.