8051 Serial Port Programming
8051 Serial Port Programming
baud rate
• Another widely used terminology for bps
• defined as the number of signal changes per
second
Note:
Solution:
MOV TMOD,#20H ;timer 1,mode 2(auto reload)
MOV TH1,#-6 ;4800 baud rate
MOV SCON,#50H ;8-bit, 1 stop, REN enabled
SETB TR1 ;start timer 1
AGAIN: MOV SBUF,#”A” ;letter “A” to transfer
HERE: JNB TI,HERE ;wait for the last bit
CLR TI ;clear TI for next
SJMP AGAIN ;keep sending A
Example:
Write a program for the 8051 to transfer “YES” serially at 9600
baud, 8-bit data, 1 stop bit, do this continuously
Solution:
MOV TMOD,#20H ;timer 1,mode 2(auto reload)
MOV TH1,#-3 ;9600 baud rate
MOV SCON,#50H ;8-bit, 1 stop, REN enabled
SETB TR1 ;start timer 1
AGAIN: MOV A,#”Y” ;transfer “Y”
ACALL TRANS
MOV A,#”E” ;transfer “E”
ACALL TRANS
MOV A,#”S” ;transfer “S”
ACALL TRANS
SJMP AGAIN ;keep doing it
;serial data transfer subroutine
TRANS: MOV SBUF,A ;load SBUF
HERE: JNB TI,HERE ;wait for the last bit
CLR TI ;get ready for next byte
RET
Example:
Take data in through ports 0,1 and 2 one after the other and transfer
the data serially, continuously
MOV TMOD, #20H ;Timer 1, mode 2
MOV TH1, #-6 ;4800 baud rate
MOV SCON, #50H ;8 bit, 1 stop bit, REN enabled
MOV P0, #0FFH ;Make P0 an i/p port
MOV P1, #0FFH ;Make P1 an i/p port
MOV P2, #0FFH ;Make P2 an i/p port
SETB TR1 ;start timer 1
RPT: MOV A, P0
ACALL SEND ;call subroutine for transmission
MOV A, P1
ACALL SEND
MOV ,P2
ACALL SEND
SJMP RPT
Program cont….