Вы находитесь на странице: 1из 2

;Exemplo 1: Enviar o alfabeto pela porta serial...

ORG 00h
MOV SCON,#40h ;SM0=0 SM1=1 SM2=0 REN=0 TB8 RB8 TI RI
MOV TMOD,#20h ;G C/T M1 M2 X X X X -> T1 MODO 2
MOV TH1,#253 ;256-N
MOV TL1,#253 ;256-N
SETB TR1 ;TIMER RUN
MOV A,#'A'
VOLTA: CJNE A,#'Z'+1,ENVIA
SJMP $
ENVIA: MOV SBUF,A ;CARREGO O DADO NO SBUF
JNB TI,$ ;AGUARDO O ENVIO
INC ACC ;INCREMENTO O ACC
CLR TI
SJMP VOLTA
END

--------------------------------------------
--------------------------------------------
;Exemplo 2: Receber um dado e enviar esse mesmo dado pela porta serial...

ORG 00h
MOV SCON,#50h ;SM0=0 SM1=1 SM2=0 REN=0 TB8 RB8 TI RI
MOV TMOD,#20h ;G C/T M1 M2 X X X X -> T1 MODO 2
MOV TH1,#253 ;256-N
MOV TL1,#253 ;256-N
SETB TR1 ;TIMER RUN
lOOP: JNB RI,$ ;AGUARDO CHEGAR UM CARACTERE
CLR RI ;LIMPO A FLAG
MOV A,SBUF ;LEIO O DADO RECEBIDO
MOV SBUF,A ;CARREGO O REGISTTRADOR C O DADO A SER
ENVIADO
JNB TI,$ ;AGUARDO O ENVIO
CLR TI ;LIMPO A FLAG
SJMP LOOP
END

--------------------------------------------
--------------------------------------------
;Exemplo 3: Receber um dado e enviar esse mesmo dado pela porta serial usando
interrup��es...

ORG 00h ;INICIO DO PROGRAMA


SJMP INICIO

ORG 23h ;ENDERE�O DA SERIAL


ACALL INT_SER
RETI

ORG 50h ;PROGRAMA PRINCIPAL


INICIO: MOV SCON,#50h ;SM0=0 SM1=1 SM2=0 REN=0 TB8 RB8 TI RI
MOV TMOD,#20h ;G C/T M1 M2 X X X X -> T1 MODO 2
MOV TH1,#253 ;256-N - 9600BPS
MOV TL1,#253 ;256-N
SETB ES ;HABILITO A INT_SERIAL
SETB EA ;HABILITO TODAS AS INT
SETB TR1 ;TIMER RUN
SJMP $ ;AGUARDO RECEBER O DADO

INT_SER: MOV A,SBUF ;LEITURA DO DADO QUE CHEGOU


MOV SBUF,A ;ESCREVO O DADO
JNB TI,$
CLR TI
CLR RI
RET
END

--------------------------------------------
--------------------------------------------
;Exemplo 4: Escrever um firmware que envie uma msg via rs-232. Utilize o caractere
'#' para indicar o fim da mensagem...

ORG 00h
INICIO: MOV SCON,#40 ;SM0=0 SM1=1 SM2=0 REN=0 TB8=0 RB8=0 TI=0 RI=0
(TB8CONFIG. SCON)
MOV TMOD,#20h ;G C/T M1=1 M0=0
MOV TL1,#253 ;256 - N
MOV TH1,#253 ;9600 BPS
SETB TR1 ;LIGO T1
MOV DPTR,#MSG ;INFORMA AO PTPTR ONENDERE�O 1� CARACTERE DA MENSAGEM
LOOP: MOV A,#0 ;LIMPO O ACUMULADOR
MOVC A,@A+DPTR
CJNE A,#'#',ENVIA
SJMP $

ENVIA: MOV SBUF,A ;CARREGO O DADO NO BUFFER


JNB TI,$ ;AGUARDO O ENVIO
CLR TI ;LIMPO A FLAG
INC DPTR ;INCREMENTO O DPTR
SJMP LOOP

ORG 100h ;PARA SALVAR A MENSAGEM


MSG: DB 'UFERSA CARAUBAS#'
END

Оценить