por Francesco » 15 Mai 2008 16:33
Olá,
O programa que você quer fazer não é difícil. Qual cristal você está usando? Isso definirá a velocidade da sua porta serial.
Caso seja de 11,0592MHz, a conta fica assim:
Velocidade = ( ( 2^SMOD ) * Cristal ) / ( 384 * ( 256 - TH1 ) )
Velocidade são seus 9600bps, SMOD é um bit de configuração, aceita apenas 1 ou 0. Cristal é a velocidade do seu cristal em Hz, e TH1 é o valor a ser configurado no Timer 1, esse valor (TH1) é o que você quer.
Supondo que seu cristal seja 11,0592MHz e SMOD seja 0, o valor de TH1 é FDh.
Uma configuração básica pode ser feita assim:
MOV SCON,#60h
MOV TMOD,#20h
MOV TH1,#0FDh
SETB TR1
Quando um dado é recebido, a flag RI é setada. Você pode fazer o programa principal ficar testando ela.
JNB RI,$
MOV A,SBUF
CLR RI
Agora é só testar. Basta fazer um SUB e comparar as flags.