serial port2

Upload: rafa-alexandru

Post on 04-Jun-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/13/2019 Serial Port2

    1/51

    Serial port

  • 8/13/2019 Serial Port2

    2/51

    Universal asynchronous receive

    transmit (UART)UARTs are used for serial communication

    between systems; they can be simplex , eitherhalf duplex (send or receive) or full duplex(send and receive at the same time).

    Transmitter Receiver Simplex

    Transmitter

    Transmitter

    Receiver

    Receiver

    Transmitter

    Transmitter

    Receiver

    Receiver

    Half Duplex

    Full Duplex

  • 8/13/2019 Serial Port2

    3/51

  • 8/13/2019 Serial Port2

    4/51

    RS 232 transmit (Tx) and receive (Rx) connectionsbetween a PC and microcontroller

  • 8/13/2019 Serial Port2

    5/51

    The interfacing standard RS232 was setby the Electronics Industries Association(EIA) in 1960

    The standard was set long before theadvent of the TTL logic family, its inputand output voltage levels are not TTLcompatible In RS232, a 1 is represented by -3 ~ -25 V,while a 0 bit is +3 ~ +25 V, making -3 to+3 undefined

  • 8/13/2019 Serial Port2

    6/51

    A line driver such as the MAX232 chip isrequired to convert RS232 voltagelevels to TTL levels, and vice versa

  • 8/13/2019 Serial Port2

    7/51

    Serial PortThe 8051 has a serial data communication circuit that uses

    register SBUF to hold data.Register SCON controls data communication, register PCON

    controls data rates, and pins RXD (P3.0) and TXD (P3.1) connect tothe serial data network.

    SBUF is physically two registers. One is write only and isused to hold data to be transmitted out of the 8051 via TXD. The other

    is read only and holds received data from external sources via RXD.Both mutually exclusive registers use address 99h .There are four programmable modes for serial data

    communication that are chosen by setting the SMX bits in SCON.Baud rates are determined by the mode chosen.

  • 8/13/2019 Serial Port2

    8/51

  • 8/13/2019 Serial Port2

    9/51

    Serial Data InterruptsSerial data communication is a relatively slow process, occupying

    many milliseconds per data byte to accomplish. In order not to tie up valuableprocessor time, serial data flags are included in SCON to aid in efficient datatransmission and reception. Notice that data transmission is under thecomplete control of the program, but reception of data is unpredictableand at random times that are beyond the control of the program.

    The serial data flags in SCON, TI and RI, are set whenever a data

    byte is transmitted (TI) or received (RI). These flags are ORed together toproduce an interrupt to the program.

    The program must read these flags to determine which caused theinterrupt and then clear the flag . This is unlike the timer flags that are cleared

    automatically; it is the responsibility of the programmer to write routinesthat handle the serial data flags.

  • 8/13/2019 Serial Port2

    10/51

    SCON7 6 5 4 3 2 1 0

    SM0 SM1 SM2 REN TB8 RB8 TI RI

  • 8/13/2019 Serial Port2

    11/51

    Bit Symbol Function

    7 SM0 Serial port mode bit 0.Set/cleared by program to select mode.

    6 SM1 Serial port mode bit 1. Set/cleared by program to select mode.

    5 SM2

    4 REN Receive enable bit. Set to 1 to enable reception; cleared to 0 to disablereception.

    3 TB8 Transmitted bit 8. Set/cleared by program in modes 2 and 3 .2 RB8 Received bit 8. Bit 8 of received data in modes 2 and 3; stop bit in mode 1.

    Not used in mode 0.

    1 TI Transmit interrupt flag. Set to one at the end of bit 7 time in mode 0, and at the beginning ofthe stop bit for other modes. Must be cleared by the program.

    0 RI Receive interrupt flag. Set to one at the end of bit 7 time in mode 0, and halfway through thestop bit for other modes. Must be cleared by the program.

    SM0 SM1 Mod Description0 0 0 Shift register; baud = f/12

    0 1 1 8-bit UART ;baud = variable

    1 0 2 9-bit UART ;baud = f/32 or f/64

    1 1 3 9-bit UART; baud = variableSM2Multiprocessor communications bit. Set/clearedby program to enable multiprocessorcommunications in modes 2 and 3. When set to1 an interrupt is generated if bit 9 of thereceived data is a 1; no interrupt is generated if

    bit 9 is a 0.If set to 1 for mode 1, no interruptwill be generated unless a valid stop bit isreceived. Clear to 0 if mode 0 is in use .

  • 8/13/2019 Serial Port2

    12/51

    PCON7 6 5 4 3 2 1 0

    SMOD - - - GF1 GF0 PD IDL

    Bit Symbol Function

    7 SMOD Serial baud rate modify bit. Set to 1 by program to

    double baud rate using timer 1 for modes 1, 2, and 3.Cleared to 0 by program to use timer 1 baud rate.

    3 GF1 General purpose user flag bit 1. Set/cleared byprogram.

    2 GF0 General purpose user flag bit 0. Set/cleared byprogram.

    1 PD Power down bit. Set to 1 by program to enter powerdown configuration for CMOS processors.

    0 IDL Idle mode bit. Set to 1 by program to enter idle modeconfiguration for CMOS processors.!!!PCON is not bit addressable.

  • 8/13/2019 Serial Port2

    13/51

    Data Transmission

    Transmission of serial data bits begins

    anytime data is written to SBUF . TI is setto a 1 when the data has been transmittedand signifies that SBUF is empty (for

    transmission purposes) and that anotherdata byte can be sent. If the program failsto wait for the TI flag and overwrites SBUFwhile a previous data byte is in theprocess of being transmitted, the resultswill be unpredictable.

  • 8/13/2019 Serial Port2

    14/51

    Data Reception Reception of serial data will begin if the receive enable bit (REN) in

    SCON is set to 1 for all modes. In addition, for mode 0 only, RI mustbe cleared to 0 also. Receiver interrupt flag RI is set after data hasbeen received in all modes. Setting REN is the only direct programcontrol that limits the reception of unexpected data; the requirementthat RI also be 0 for mode 0 prevents the reception of new data untilthe program has dealt with the old data and reset RI.

    Reception can begin in modes 1, 2, and 3 if RI is set when the serialstream of bits begins. RI must have been reset by the programbefore the last bit is received or the incoming data will be lost.Incoming data is not transferred to SBUF until the last data bit hasbeen received so that the previous transmission can be read fromSBUF while new data is being received.

  • 8/13/2019 Serial Port2

    15/51

    Serial Data Transmission Modes

    The 8051 designers have included four modes of serial datatransmission that enable data communication to be done in a variety ofways and a multitude of baud rates.

    Modes are selected by the programmer by seting the modebits SM0 and SM1 in SCON. Baud rates are fixed for mode 0 andvariable, using timer 1 and the serial baud rate modify bit (SMOD) inPCON, for modes 1, 2, and 3.

  • 8/13/2019 Serial Port2

    16/51

    Serial Data Mode 0-Shift Register

    ModeSetting bits SM0 and SM1 in SCON to 00 b configures SBUF to

    receive or transmit eight data bits using pin RXD for both functions.Pin TXD is connected to the internal shift frequency pulse source tosupply shift pulses to external circuits. The shift frequency, or baud rate, is fixed at 1/12 of the oscillator frequency, the same rate usedby the timers when in the timer configuration. The TXD shift clock is a

    square wave that is low for machine cycle states S3-S4-S5 and high forS6-S1-S2. When transmitting, data is shifted out of RXD; the datachanges on the falling edge of S6P2, or one clock pulse after the risingedge of the output TXD shift clock. The system designer must design theexternal circuitry that receives this transmitted data to receive the datareliably based on this timing.

  • 8/13/2019 Serial Port2

    17/51

  • 8/13/2019 Serial Port2

    18/51

    Serial Data Mode 0-Shift Register

    Mode

    Received data comes in on pin RXD and should besynchronized with the shift clock produced at TXD. Data is sampled onthe failing edge of S5P2 and shifted in to SBUF on the rising edge ofthe shift clock.

    Mode 0 is intended not for data communication betweencomputers, but as a high speed serial data-collection method usingdiscrete logic to achieve high data rates. The baud rate used in mode 0will be much higher than standard for any reasonable oscillatorfrequency; for a 6 megahertz crystal the shift rate will be 500 kilohertz.

  • 8/13/2019 Serial Port2

    19/51

    Serial Data Mode 1-Standard

    UART When SM0 and SM1 are set to 01b, SBUF

    becomes a I/O-bit full-duplex receiver,transmitter that may receive and transmit data atthe same time. Pin RXD receives all data andpin TXD transmits all data.

    Transmitted data is sent as a start bit, eight databits (Least Significant Bit. LSB, first), and a stopbit. Interrupt flag TI is set once all ten bits havebeen sent. Each bit interval is the inverse of thebaud rate frequency, and each bit is maintainedhigh or low over that interval.

  • 8/13/2019 Serial Port2

    20/51

    Serial Data Mode 1-Standard

    UART

  • 8/13/2019 Serial Port2

    21/51

    Serial Data Mode 1-Standard

    UARTReceived data is obtained in the same order; reception is

    triggered by the falling edge of the start bit and continues if the start bit

    is true (0 level) halfway through the start bit interval. This is an anti-noise measure; if the reception circuit is triggered by noise on thetransmission line, the check for a low after half a bit interval should limitfalse data reception.

    Data bits are shifted into the receiver at the programmed baudrate, and the data word will be loaded to SBUF if the followingconditions are true: RI must be 0, and mode bit SM2 is 0 or the stop bitis 1 (the normal state of stop bits). RI set to 0 implies that the programhas read the previous data byte and is ready to receive the next; a

    normal stop bit will then complete the transfer of data to SBUFregardless of the state of SM2. SM2 set to 0 enables the reception of abyte with any stop bit state, a condition which is of limited use in thismode, but very useful in modes 2 and 3. SM2 set to 1 forces reception

    of only "good" stop bits, an anti-noise safeguard.

  • 8/13/2019 Serial Port2

    22/51

    Serial Data Mode 1-Standard

    UART

    Of the original ten bits, the start bit is discarded, the eight data bitsgo to SBUF and the stop bit is saved in bit RB8 of SCON. RI is set to 1.

    indicating a new data byte has been received. If RI is found to be set at theend of the reception, indicating that the previously received data byte has notbeen read by the program, or if the other conditions listed are not true, thenew data will not be loaded and will be lost.

  • 8/13/2019 Serial Port2

    23/51

    Mode 1 Baud Rates Timer 1 is used to generate the baud rate for

    mode 1 by using the overflow flag of the timer to

    determine the baud frequency. Typically, timer 1is used in timer mode 2 as an autoload 8-bittimer that generates the baud frequency:

    )]1(256[12 _

    322

    TH x frequencyoscillator

    xd

    f SMOD

    baud =

    SMOD is the control bit in PCON and can be 0 or 1, which raisesthe 2 in the equation to a value of 1 or 2.

  • 8/13/2019 Serial Port2

    24/51

    Mode 1 Baud RatesIf timer 1 is not run in timer mode 2, then the baud rate:

    ) _ _ 1(322 frequencyoverflowtimer xd f SMOD

    baud =

    and timer 1 can be run using the internal clock or as a counter that receivesclock pulses from any external source via pin T1.

    The oscillator frequency is chosen to help generate both standardand nonstandard baud rates. If standard baud rates are desired, then an11.0592 megahertz crystal could be selected. To get a standard rate of 9600hertz then, the setting of TH 1 may be found as follows(if SMOD is clear):

    FDhd x

    x xTH 0253

    960012100592.11

    322

    256160

    ==

    =

  • 8/13/2019 Serial Port2

    25/51

    Mode 1 Baud Rates

    Viteza

    deComunica ie

    (Baud)

    f osc(MHz)

    BitulSMOD

    Timer 1

    Mod TH1

    62.5k 12 1 2 FFh

    19.2k 11.059 1 2 FDh

    9.6k 11.059 0 2 FDh

    4.8k 11.059 0 2 FAh

    2.4k 11.059 0 2 F4h

    1.2k 11.059 0 2 E8h

    300 11.059 0 2 CCh

    110 6 0 2 72h

    110 * 12 0 1 FEEBh

  • 8/13/2019 Serial Port2

    26/51

    Serial Data Mode 2-Multiprocessor Mode

    Mode 2 is similar to mode 1 except 11 bits are transmitted: a start bit, ninedata bits, and a stop bit.The ninth data bit is gotten from bit TB8 in SCONduring transmit and stored in bit RB8 of SCON when data is received. Both

    the start and stop bits are discarded. The baud rate is programmed asfollows:

    oscilator frecventa x f SMOD

    baud

    64

    2=

    Here, as in the case for mode 0, the baud rate is much higher thanstandard communication rates. This high data rate is needed inmany multi-processor applications. Data can be collected quicklyfrom an extensive network of communicating microcontrollers if highbaud rates are employed.

  • 8/13/2019 Serial Port2

    27/51

    Serial Data Mode 2-Multiprocessor Mode

  • 8/13/2019 Serial Port2

    28/51

    Serial Data Mode 2-Multiprocessor Mode

    The conditions for setting RI for mode 2 are similar tomode 1: RI must be 0 before the last bit is received, and

    SM2 must be 0 or the ninth data bit must be a 1. SettingRI based upon the state of SM2 in the receiving 8051and the state of bit 9 in the transmitted message makesmultiprocessing possible by enabling some receivers to

    be interrupted by certain messages, while otherreceivers ignore those messages. Only those 8051's thathave SM2 set to 0 will be interrupted by received datawhich has the ninth data bit set to 0; those with SM2 setto 1 will not be interrupted by messages with data bit 9 at0. All receivers will be interrupted by data words thathave the ninth data bit set to 1; the state of SM2 will notblock reception of such messages.

  • 8/13/2019 Serial Port2

    29/51

    Serial Data Mode 2-Multiprocessor Mode

    This scheme allows the transmitting computer to "talk" to selectedreceiving computers without interrupting other receiving computers.

    Receiving computers can be commanded by the "talker" to "listen" or"deafen" by transmitting coded byte(s) with the ninth data bit set to 1.The 1 in data bit 9 interrupts all receivers, instructing those that areprogrammed to respond to the coded byte(s) to program the state of

    SM2 in their respective SCON registers. Selected listeners thenrespond to the bit 9 set to 0 messages, while all other receiversignore these messages. The talker can change the mix of listenersby transmitting bit 9 set to I messages that instruct new listeners to

    set SM2 to 0, while others are instructed to set SM2 to 1.

  • 8/13/2019 Serial Port2

    30/51

  • 8/13/2019 Serial Port2

    31/51

  • 8/13/2019 Serial Port2

    32/51

    Programming serial port In programming the 8051 to transfercharacter bytes serially1. TMOD register is loaded with the value 20H, indicating the use oftimer 1 in mode 2 (8-bit auto-reload) to set baud rate2. The TH1 is loaded with one of the values to set baud rate for serial

    data transfer

    3. The SCON register is loaded with the value 50H, indicating serialmode 1, where an 8-bit data is framed with start and stop bits4. TR1 is set to 1 to start timer 15. TI is cleared by CLR TI instruction6. The character byte to be transferred serially is written into SBUF

    register7. The TI flag bit is monitored with the use of instruction J NB TI , xx

    to see if the character has been transferred completely8. To transfer the next byte, go to step 5

  • 8/13/2019 Serial Port2

    33/51

    Programming serial port

    Write a program for the 8051 to transfer letter A serially at4800 baud, continuously.Solution:

    MOV TMOD,#20H ; t i mer 1, mode 2( aut o r el oad) MOV TH1,#-6 ; 4800 baud r at e MOV SCON,#50H ; 8- bi t , 1 st op, REN enabl ed

    SETB TR1 ; s t ar t t i mer 1 AGAIN: MOV SBUF,#A ; l et t er A t o t r ansf er

    HERE: JNB TI,HERE ; wai t f or t he l ast bi tCLR TI ; cl ear TI f or next charSJMP AGAIN ; keep sendi ng A

  • 8/13/2019 Serial Port2

    34/51

  • 8/13/2019 Serial Port2

    35/51

    Programming serial portWrite a program for the 8051 to transfer YES serially at 9600

    baud, 8-bit data, 1 stop bit, do this continuouslySolution:

    MOV TMOD,#20H ; t i mer 1, mode 2( aut o r el oad) MOV TH1,#-3 ; 9600 baud r at e MOV SCON,#50H ; 8- bi t , 1 st op, REN enabl ed

    SETB TR1 ; s t ar t t i mer 1AGAI N: MOV A,#Y ; t r ansf er Y

    ACALL TRANS

    MOV A,#E ; t r ansf er E ACALL TRANS MOV A,#S ; t r ansf er S ACALL TRANS

    SJMP AGAIN ; keep doi ng i t; ser i al dat a t r ansf er subr out i ne

    TRANS: MOV SBUF,A ; l oad SBUFHERE: JNB TI,HERE ; wai t f or t he l as t bi t

    CLR TI ; get r eady f or next byt eRET

    Example 2

  • 8/13/2019 Serial Port2

    36/51

    Example 2org 0000h

    jmp startorg 0100h

    message: db "hello everybody!"db 0

    start:mov tmod,#20h ; timer 1, mod 2mov th1,#-6 ; rata de transfer 4800 baudmov scon,#50h ; 8 bit, 1 stop REN enablesetb tr1 ; start timer 1mov dptr,#message ; incarca pointer pt. mesajmov r0,#00h

    again:mov a, r0 ; preia caracterul

    movc a,@a+dptr ; daca ultimul caracter este "0" se opreste trasferul jz terminamov sbuf,a ; incarca data in portul serial

    here: jnb TI, here ; sta in bucla pana ultimul bit este transmisClr TI ; urmatorul caracter poate fi transmisinc r0sjmp again

    termina:sjmp terminaend

  • 8/13/2019 Serial Port2

    37/51

  • 8/13/2019 Serial Port2

    38/51

    Programming serial portThe steps that 8051 goes through intransmitting a character via TxD1. The byte character to be transmitted is

    written into the SBUF register2. The start bit is transferred3. The 8-bit character is transferred on bit ata time4. The stop bit is transferred

    It is during the transfer of the stop bit that8051 raises the TI flag, indicating that the lastcharacter was transmitted5. By monitoring the TI flag, we make surethat we are not overloading the SBUF

    If we write another byte into the SBUF beforeTI is raised, the untransmitted portion of theprevious byte will be lost

    6. After SBUF is loaded with a new byte, theTI flag bit must be forced to 0 by CLR TI in order for this new byte to be transferred

  • 8/13/2019 Serial Port2

    39/51

    Programming serial portBy checking the TI flag bit, we knowwhether or not the 8051 is ready totransfer another byte It must be noted that TI flag bit is raised by8051 itself when it finishes data transfer It must be cleared by the programmer withinstruction

    CLR TI If we write a byte into SBUF before the TIflag bit is raised, we risk the loss of aportion of the byte being transferred

    The TI bit can be checked by The instruction J NB TI , xx Using an interrupt

  • 8/13/2019 Serial Port2

    40/51

    Programming serial portIn programming the 8051 to receivecharacter bytes serially1. TMOD register is loaded with the value

    20H, indicating the use of timer 1 in mode2 (8-bit auto-reload) to set baud rate2. TH1 is loaded to set baud rate3. The SCON register is loaded with the value

    50H, indicating serial mode 1, where an 8-

    bit data is framed with start and stop bits4. TR1 is set to 1 to start timer 15. RI is cleared by CLR RI instruction6. The RI flag bit is monitored with the use of

    instruction J NB RI , xx to see if an entire

    character has been received yet7. When RI is raised, SBUF has the byte, its

    contents are moved into a safe place8. To receive the next character, go to step 5

  • 8/13/2019 Serial Port2

    41/51

    Write a program for the 8051 to receive bytes of data serially, and put them in P1, set the baud rate at 4800, 8-bit data, and 1 stop bitSolution:

    MOV TMOD,#20H ; t i mer 1, mode 2( aut o r el oad)

    MOV TH1,#-6 ; 4800 baud r at e MOV SCON,#50H ; 8- bi t , 1 st op, REN enabl edSETB TR1 ; st ar t t i mer 1

    HERE: JNB RI,HERE ; wai t f or char t o come i n

    MOV A,SBUF ; savi ng i ncomi ng byt e i n A MOV P1,A ; send t o por t 1CLR RI ; get r eady t o r ecei ve next

    ; byt e

    SJMP HERE ; keep get t i ng dat a

  • 8/13/2019 Serial Port2

    42/51

  • 8/13/2019 Serial Port2

    43/51

    Example 10-5Assume that the 8051 serial port is connected to the COM port of IBM PC, and on the PC, we are using the terminal.exe program tosend and receive data serially. P1 and P2 of the 8051 are connected to LEDs and switches, respectively. Write an 8051 program to (a)send to PC the message We Are Ready, (b) receive any data send

    by PC and put it on LEDs connected to P1, and (c) get data on

    switches connected to P2 and send it to PC serially. The programshould perform part (a) once, but parts (b) and (c) continuously, use4800 baud rate.Solution:

    ORG 0 MOV P2,#0FFH ; make P2 an i nput por t MOV TMOD,#20H ; t i mer 1, mode 2 MOV TH1,#0FAH ; 4800 baud r at e MOV SCON,#50H ; 8- bi t , 1 st op, REN enabl ed

    SETB TR1 ; s t ar t t i mer 1 MOV DPTR,#MYDATA ; l oad poi nt er f or message

    H_1: CLR A MOV A,@A+DPTR ; get t he char act er

  • 8/13/2019 Serial Port2

    44/51

    JZ B_1 ; i f l as t char ac ter get out ACALL SEND ; ot her wi se cal l t r ansf er

    INC DPTR ; next oneSJMP H_1 ; s t ay i n l oop

    B_1: MOV a,P2 ; r ead dat a on P2 ACALL SEND ; t r ansf er i t s er i al l y ACALL RECV ; get t he ser i al dat a MOV P1,A

    ; di spl ay i t on LEDsSJMP B_1 ; s t ay i n l oop i ndef i ni t el y; - - - - ser i al dat a t r ansf er . ACC has t he dat a- - - - - -SEND: MOV SBUF,A ; l oad t he dat a

    H_2: JNB TI,H_2 ; s t ay her e unt i l l as t bi t; gone

    CLR TI ; get r eady f or next charRET ; r et ur n t o cal l er

    ; - - - - Recei ve dat a ser i al l y i n ACC- - - - - - - - - - - - - - - -RECV: JNB RI,RECV ; wai t her e f or char

    MOV A,SBUF ; save i t i n ACCCLR RI ; get r eady f or next charRET ; r et ur n t o cal l er

    ; - - - - - The message- - - - - - - - - - - - - - -MYDATA: DB We Ar e Ready, 0

    END

  • 8/13/2019 Serial Port2

    45/51

  • 8/13/2019 Serial Port2

    46/51

    In receiving bit via its RxD pin, 8051goes through the following steps1. It receives the start bit

    Indicating that the next bit is the first bit of thecharacter byte it is about to receive

    2. The 8-bit character is received one bit attime

    3. The stop bit is receivedWhen receiving the stop bit 8051 makes RI = 1,indicating that an entire character byte hasbeen received and must be picked up before itgets overwritten by an incoming character

  • 8/13/2019 Serial Port2

    47/51

    4. By checking the RI flag bit when it israised, we know that a character has beenreceived and is sitting in the SBUF register

    We copy the SBUF contents to a safe place insome other register or memory before it is lost

    5. After the SBUF contents are copied into asafe place, the RI flag bit must be forcedto 0 by CLR RI in order to allow the nextreceived character byte to be placed inSBUF

    Failure to do this causes loss of the receivedcharacter

  • 8/13/2019 Serial Port2

    48/51

    By checking the RI flag bit, we knowwhether or not the 8051 received acharacter byte If we failed to copy SBUF into a safe place,we risk the loss of the received byte It must be noted that RI flag bit is raised by8051 when it finish receive data It must be cleared by the programmer withinstruction CLR RI If we copy SBUF into a safe place beforethe RI flag bit is raised, we risk copyinggarbage The RI bit can be checked by

    The instruction J NB RI , xx Using an interrupt

    SERIAL PORT PROGRAMMING

  • 8/13/2019 Serial Port2

    49/51

    IN CWrite a C program for 8051 to transfer the letter A serially at 4800

    baud continuously. Use 8-bit data and 1 stop bit.Solution:

    #i ncl ude voi d mai n( voi d) {

    TMOD=0x20; / / use Ti mer 1, mode 2 TH1=0xFA; / / 4800 baud r at e

    SCON=0x50; TR1=1;whi l e ( 1) {

    SBUF= A ; / / pl ace val ue i n buf f erwhi l e ( TI ==0) ;

    TI =0;}

    }

  • 8/13/2019 Serial Port2

    50/51

    Write an 8051 C program to transfer the message YES serially at

    9600 baud, 8-bit data, 1 stop bit. Do this continuously.Solution:#i ncl ude voi d Ser Tx( unsi gned char ) ;voi d mai n( voi d) {

    TMOD=0x20; / / use Ti mer 1, mode 2

    TH1=0xFD; / / 9600 baud r at eSCON=0x50; TR1=1; / / st ar t t i merwhi l e ( 1) {Ser Tx( Y ) ;Ser Tx( E ) ;Ser Tx( S ) ;}

    }voi d Ser Tx( unsi gned char x) {

    SBUF=x; / / pl ace val ue i n buf f erwhi l e ( TI ==0) ; / / wai t unt i l t r ansmi t t ed

    TI =0;}

  • 8/13/2019 Serial Port2

    51/51

    Program the 8051 in C to receive bytes of data serially and put themin P1. Set the baud rate at 4800, 8-bit data, and 1 stop bit.Solution:#i ncl ude voi d mai n( voi d) {

    unsi gned char mybyt e; TMOD=0x20; / / use Ti mer 1, mode 2 TH1=0xFA; / / 4800 baud r at eSCON=0x50;

    TR1=1; / / st ar t t i merwhi l e ( 1) { / / r epeat f or ever

    whi l e ( RI ==0) ; / / wai t t o r ecei vemybyt e=SBUF; / / save val ue

    P1=mybyt e; / / wr i t e val ue t o por tRI =0;}

    }