7 serial port

27
M_Nokhodchian @ yahoo.com M_Nokhodchian @ yahoo.com Microprocessors Microprocessors 1- 1- 1 1 Serial Communication

description

 

Transcript of 7 serial port

Page 1: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-11

Serial Communication

Page 2: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-22

Basics of serial communication

Parallel: expensive - short distance – fast – no modulationSerial :cheaper– long (two different cities by modem)-slow

Page 3: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-33

Basics of serial communication

Page 4: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-44

Packaging DataStart and stop bits

In asynchronous transmissionWhen there is no transfer the signal is highTransmission begins with a start (low) bitLSB firstFinally 1 stop bit (high)Data transfer rate (baud rate) is stated in bps

Page 5: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-55

RS232 Standard

Create in 1960 and updated in 1969

Logic 1 : -3 to -25 volt

Logic 0 : 3 to 25 volt

To Connect TXD to RXD and RXD to TXD from pc to 8051 you must use max232 to convert signal from TTL level to RS232 level

The baud rate of the 8051 must matched the baud rate of the pc

PC standard baud rate (see hyper terminal configuration) 2400-4800-9600-14400-19200-28800-

33600-57600

1 DCD

2 RD

3 TD

4 DTR

5 GND

6 DSR

7 RTS

8 CTS

9 RI

Page 6: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-66

MAX232 or MAX233

Page 7: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-77

SBUF registerMOV SBUF,#’D’ ;load SBUF=44H, ASCII for ‘D’

MOV SBUF,A ;copy accumulator into SBUFMOV A,SBUF ;copy SBUF into accumulator

Page 8: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-88

Serial control (SCON) Register

SM2 : used for multi processor communication

REN : receive enable (by software enable/disable)

TB8 : transmit bit8

RB8 : receive bit 8

TI : transmit interrupt flag set by HW after send , clear by SW

RI : receive interrupt flag set by HW after received ,clear by SW

SM0 RITIRB8TB8RENSM2SM1

7 6 5 4 3 2 1 0

SM0 SM1 MODE operation transmit rate 0 0 0 shift register fixed (xtal/12) 0 1 1 8 bit UART variable (timer1) 1 0 2 9 bit UART fixed (xtal/32 or

xtal/64) 1 1 3 9 bit UART variable (timer1)

SM0 : mode specifierSM1 : mode specifier

Page 9: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-99

Mode of operation Mode 0 :

Serial data enters and exits through RxD TxD outputs the shift clock. 8 bits are transmitted/received(LSB first) The baud rate is fixed a 1/12 the oscillator frequency.

Application Port expansion

8051

TXDRXD Shift register

clkdata

Page 10: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-1010

Timing of send in mode 0

One machine cycle

oscillator cycle

RXD (data)

TXD (clock pulse)

MOV SCON,#0001xxxxBWait: JNB RI,WAIT

CLR RIMOV A,SBUF

MOV SCON,#0001xxxxBWait: JNB TI,WAIT CLR TI MOV SBUF,A

Page 11: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-1111

Mode of operation Mode 1

Ten bits are transmitted (through TxD) or received (through RxD)

(A start bit (0), 8 data bits (LSB first), and a stop bit (1) )

On receive, the stop bit goes into RB8 in SCON

the baud rate is determined by the Timer 1 overflow rate.

Timer1 clock is 1/32 machine cycle (MC=1/12 XTAL)

• Timer clock can be programmed as 1/16 of machine cycle

• Transmission is initiated by any instruction that uses SBUF as a destination register.

Page 12: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-1212

Timer modes

GATE C/T M1 M0 GATE C/T M1 M0Timer 1 Timer 0

(MSB) (LSB)

Page 13: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-1313

Page 14: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-1414

Programming for sending data( in mode 1 )

4. SETB TR1

5. MOV SBUF, DATA

6. WAIT: JNB TI,WAIT

7. CLR TI

GATE C/T M1 M0 GATE C/T M1 M0Timer 1 Timer 0

(MSB)

(LSB)1. MOV TMOD,#20H

2. MOV TH1,# baud rate BAUD RATE VALUE IN TH VALUE IN HEX

9600 -3 FD

4800 -6 FA

2400 -12 F4

1200 -24 E8

XTAL=11.0592 MHz

3. MOV SCON,#50H

SM0 RITIRB8TB8RENSM2SM1

Page 15: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-1515

Programming for sending data( in mode 1 )

MOV TMOD,#20H ;TIMER 1 MODE 2

MOV TH1,#-3 ;9600 BAUD

MOV SCON,#50H ;REN enableSETB TR1 ;start

timer1AGAIN: MOV SBUF, # “A”WAIT: JNB TI,WAIT

CLR TISJMP AGAIN

Serial example(1)

Page 16: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-1616

Programming for recieving data

( in mode 1 )

MOV TMOD,#20H ;TIMER 1 MODE 2

MOV TH1,#-3 ;9600 BAUD

MOV SCON,#50H ;REN enableSETB TR1 ;start

timer1WAIT: JNB RI,WAIT

MOV A,SBUFCLR RI

SJMP WAIT

Serial example(2)

Page 17: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-1717

Serial example(3)An example of sending a message.;initialization

MOV TMOD,#20HMOV TH1,#-12MOV SCON,#50H

;begin to trnasmitSETB TR1

AGAIN1: MOV A,#‘G'CALL TRANSSMOV A,#‘O'CALL TRANSSMOV A,#‘O'CALL TRANSSMOV A,#‘D'CALL TRANSSSJMP AGAIN1

;seial transmiting subroutineTRANSS: MOV SBUF,AAGAIN2: JNB TI,AGAIN2

CLR TIRETEND

Page 18: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-1818

Serial example(4)ORG 0MOV TMOD,#20HMOV TH1,#0FAH ;4800MOV SCON,#50HSETB TR1MOV DPTR,#MYDATA

LOOP: CLR AMOVC A,@A+DPTRJZ EXITACALL SENDINC DPTRSJMP LOOP

;----------------------------------SEND: MOV SBUF,AWAIT: JNB TI,WAIT

CLR TIRET

;----------------------------------MYDATA: DB “THIS IS A SAMPLE TEST”,0EXIT: END

Page 19: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-1919

Mode of operation Mode 2 :

Eleven bits are transmitted (through TxD), received (through RxD) A start bit (0) 8 data bits (LSB first) A programmable 9th data bit and a stop bit (1)

On transmit, the 9th bit (TB8) can be assigned 0 or 1. On receive, the 9the data bit goes into RB8 in SCON. the 9th can be parity bit The baud rate is programmable to 1/32 or 1/64 the oscillator frequency in Mode 2

by SMOD bit in PCON register

Mode 3 Same as mode 2 But may have a variable baud rate generated from Timer 1.

Page 20: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-2020

Mode of operation

Page 21: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-2121

What is SMOD Bit 7 of PCON register

If SMOD=1 double baud rate

PCON is not bit addressable

How to set SMODMov a, pcon

Setb acc.7

Mov pcon,a

Page 22: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-2222

Power control register

Page 23: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-2323

Power control

A standard for applications where power consumption is critical

two power reducing modes Idle Power down

Page 24: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-2424

Idle mode An instruction that sets PCON.0 causes Idle mode

Last instruction executed before going into the Idle mode the internal CPU clock is gated off Interrupt, Timer, and Serial Port functions act normally. All of registers , ports and internal RAM maintain their data

during Idle ALE and PSEN hold at logic high levels

Any interrupt will cause PCON.0 to be cleared by HW (terminate Idle mode) then execute ISR with RETI return and execute next instruction after Idle

instruction. RST signal clears the IDL bit directly

Page 25: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-2525

Power-Down Mode

An instruction that sets PCON.1 causes power dowm mode

Last instruction executed before going into the power down mode

the on-chip oscillator is stopped. all functions are stopped,the contents of the on-chip

RAM and Special Function Registers are maintained. The ALE and PSEN output are held low The reset that terminates Power Down

Page 26: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-2626

Power control example

Org 0000hLjmp main

Org 0003hOrl pcon,#02h ;power down modeReti

Org 0030hMain:

………………Orl pcon,#01h ;Idle modeend

Page 27: 7 serial port

M_Nokhodchian @ yahoo.comM_Nokhodchian @ yahoo.com MicroprocessorsMicroprocessors 1-1-2727

example