por lucflores » 23 Nov 2006 10:27
Ok, os resistores de pullup nos pinos do rx eu coloquei dos dois lados sim, aqui vai o meu program que fiz de maneira bem simples so para testar, aquem se interresar em dar uma olhada, sabe como é né, foi eu quem fiz e ja revisei varias vezes, mas as vezes pode ter um problema bem aparente e a gente nem vê: (tomara)
Programa do Mestre
MOV PCON,#00000000B
CLR SM0 ;serial no modo1
SETB SM1
MOV TH1,#0E8H ;BAUD RATE DE 1200
CALL DELAY
CALL DELAY
CALL DELAY
SETB TR1
INICIO:
TX:
CLR REN ;desabilita para a recepção
SETB DE ;SETA O PINO DE E RE DO 75176
MOV A,#55H ;DADO QUE VOU ENVIAR
CLR LED ;LIGA UM LED PARA DIZER QUE VAI TX
MOV SBUF,A ;ENVIA
JNB TI,$
CALL DELAY
CLR TI ;LIMPA FLAG
SETB LED ;DESLIGA O LED QUER DIZER QUE ENVIO
;LOGO APOS TRANSMITIR PASSA PARA RECEPÇÃO
RX:
CLR RE ;LIMPA PINO RE E DE DO 75176
SETB REN ;SETA A RECEPÇÃO
JNB RI,$ ;AGUARDA RECEBIMENTO DO DADO DO ESCRAVO
CLR RI ;LIMPA FLAG APOS TER RECEBIDO
CALL DELAY
MOV A,SBUF
CJNE A,#55H,OI ;COMPARA SE É O DADO CORRETO
CALL DELAY
CALL DELAY
CALL DELAY ;CADA DELAY TEM 150ms
CALL DELAY
MOV R0,#4
AQUI: CPL LED ;FAZ O LED PISCAR APOS TER RECEBIDO O
; DADO CORRETO
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
DJNZ R0,AQUI
SETB LED
CALL DELAY
CALL DELAY
CALL DELAY
JMP INICIO ;VOLTA PARA TRANSMITIR NOVAMENTE
OI:
CPL LED ;SE CASO O DADO FOR INCORRETO FICA
;PISCANDO O LED
CALL DELAY
DJNZ R0,OI
MOV R0,#4
JMP OI
Programa do ESCRAVO
MOV PCON,#00000000B
CLR SM0
SETB SM1
MOV TH1,#0E8H ;BAUD RATE DE 1200
MOV TEMPO,#100
SETB TR1
INICIO:
RX:
MOV R0,#4
CLR RE
SETB REN
JNB RI,$
CALL DELAY
CLR RI
MOV A,SBUF
CJNE A,#55H,OI
CPL LED ;LED DE SINALIZAÇÃO DE RECEBIMENTO
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY ;AGUARDA UM TEMPÃO ANTES DE RETRANSMITIR O DADO
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
TX: ;TRANSMITE O DADO PARA O MESTRE
CLR REN
SETB DE
MOV A,#55H
MOV SBUF,A
JNB TI,$
CLR TI ;LIMPA FLAG
CLR LED
CALL DELAY
SETB LED ; LED DESLIGA LED POIS PAROU DE TX
JMP INICIO
OI: ;CASO O DADO RECEBIDO SEJA ERRADO LED2 FICA PISCANDO
CPL LED2
CALL DELAY
DJNZ R0,OI
MOV R0,#4
JMP OI
E AI, ALGUEM PODE ME DAR UMA AJUDINHA, VALEU.....