Transcript
  • I HC QUC GIA TP.H CH MINHTRNG I HC BCH KHOA

    KHOA IN-IN T B MN K THUT IN T

    11

    CHNG 3

    H VI IU KHIN 8051

  • B mn K Thut in T - HBK

    3.6 Cng ni tip (Serial Port)

    2

  • B mn K Thut in T - HBK

    Ni dung

    Gii thiu

    Chun EIA(Electronic Industries Association)-232E hoc RS232

    Giao tip cng ni tip MCS-51/52

    ng dng ca ch 0

    ng dng ca ch 1

    ng dng ca ch 2 & 3

    Cc th d.

    3

  • B mn K Thut in T - HBK

    Truyn d liu ni tip

    Truyn d liu khong cch xa Tc truyn d liu thp Truyn d liu ni tip ng b

    Dng tn hiu clock ring ng b ha mch thu v pht.

    Thng dng khung d liu ln hn v nhanh hn.

    Truyn d liu ni tip bt ng b Khng cn tn hiu clock ring ng b ho chuyn

    d liu. Da trn k{ t. Mi k{ t c ng khung bng start

    bit v stop bit. Bn thu cn nhn dng start bit v stop bit nhn

    ng k{ t d liu.

    4

  • B mn K Thut in T - HBK

    Truyn d liu ni tip ng b (synchronous) v bt ng b (asynchronous) vi 8051

    5

  • B mn K Thut in T - HBK

    ng truyn d liu c bn

    Ngi ta c th s dng ng in thoi cng cng hoc dnh ring lm mi trng truyn d liu ni tip bt ng b.

    Modem c dng chuyn i d liu s thnh dng sng analog thch hp cho vic truyn trn ng dy in thoi v ngc li.

    C 2 kiu ng truyn: im n im v a im.

    6

    DTE DCE DCE DTE

    Computer or

    terminal

    Modem Modem Computer or

    terminal

    Communication linkDTE: Data Terminal EquipmentDCE: Data Communications Equipmnent

  • B mn K Thut in T - HBK

    ng truyn im n im v a im

    7

    Master

    Slave 1 Slave 2 Slave n

    Address 1 Address 2 Address n

    Station Station

    Peer Peer

    Tx

    TxRx

    Rx

  • B mn K Thut in T - HBK

    C bn v cc ng truyn

    H thng 2 dy v 4 dy:

    2 dy: tn hiu v t.

    4 dy: 2 b 2 dy.

    Cc kiu ng truyn:

    n cng (Simplex link): ng dy dnh ring cho thu hoc pht ch khng c hai.

    Bn song cng (Half-duplex link): ng dy c th dng cho pht hoc thu nhng mi ln ch c 1 chiu.

    Song cng (Full-duplex link): Pht v thu c th tin hnh ng thi. ng truyn cn 4 dy.

    8

  • B mn K Thut in T - HBK

    C bn v cc ng truyn

    9

    5V

    0V

    >+3V

  • B mn K Thut in T - HBK

    EIA-232-E or RS-232

    EIA-232-E or RS-232 can apply to the following data communication schemes:

    Serial communications

    Synchronous and asynchronous

    Dedicated leased or private lines

    Switched service

    Two wire or four wire

    Point to point or multipoint

    4 aspects in EIA-232-E interface: mechanical, functional, procedural, and electrical.

    10

  • B mn K Thut in T - HBK

    EIA-232-E Mechanical Characteristics

    25-pin DB25 /9-pin DB9 plug connector.

    11

  • B mn K Thut in T - HBK

    DB-9 Signals

    12

  • B mn K Thut in T - HBK

    Cng ni tip ca 8051

    Cng ni tip ca 8051 c th hot ng trn mt di rng tn s

    Chc nng:

    Chuyn i song song ni tip khi xut

    Chuyn i ni tip song song khi nhn

    13

  • B mn K Thut in T - HBK

    S khi cng ni tip ca 8051

    14

  • B mn K Thut in T - HBK

    Cc c tnh ca cng ni tip 8051

    Song cng (ful-duplex)

    C m khi thu (b m 1 byte): nu CPU c k t th nht trckhi k t th 2 c nhn y th d liu s khng b mt

    C 4 ch lm vic (0 - 3)

    Lp trnh d dng :

    Chn tc (c nh (on-chip OSC/12 hoc OSC/64), hoc thay i c (T1))

    Chn ch lm vic

    Cho chy (SCON)

    D s dng

    Truyn d liu: MOV SBUF, A

    Nhn d liu: MOV A, SBUF

    15

  • B mn K Thut in T - HBK

    Thanh ghi iu khin cng ni tip SCON

    16

  • B mn K Thut in T - HBK

    Cc ch hot ng ca cng ni tip

    17

    Trc khi s dng cng ni tip, SCON c khi to tr vi ch ng, v v.v... Th d, cc lnh sau

    MOV SCON, #01010010B

    khi to tr cho cng ni tip ch 1 (SM0/SM1=0/1), cho php b thu (REN=1) v t c ngt pht (T1=1) ch b pht sn sng hot ng.

  • B mn K Thut in T - HBK

    Ch 0:Thanh ghi dch 8 bit (1/3)

    RXD l chn xut/nhp d liu

    TXD l ng ra xung nhp dch

    Tm bit c pht ra hay thu vo vi LSB i trc.

    Tc baud c nh l 1/12 tn s mch dao ng trn chip

    18

  • B mn K Thut in T - HBK

    Ch 0:Thanh ghi dch 8 bit (2/3)

    19

    Pht: c khi ng bng lnh ghi vo SBUF

  • B mn K Thut in T - HBK

    Ch 0:Thanh ghi dch 8 bit (3/3)

    20

    Vic thu: c khi ng khi bit cho php b thu REN = 1 v RI = 0

  • B mn K Thut in T - HBK

    Ch 1: UART 8 bit c tc baud thayi c (1/3)

    ch 1, 10 bit c pht i trn TXD hoc c thu vo RXD. Cc bit ny bao gm 1 bit bt u (lun lun l 0), 8 bit d liu (LSB i trc), v 1 bit dng (lun lun l 1).

    hot ng b thu, bit dng i vo RB8 trong SCON. Trong 8051, tc baud c t bng tc trn ca Timer 1.

    21

  • B mn K Thut in T - HBK

    Ch 1: UART 8 bit c tc baud thayi c (2/3)

    Vic pht c khi ng bng cch ghi vo SBUF, nhng khng tht s bt u cho n khi cnh xung k ca b m chia 16 cung cp tc baud cng ni tip. D liu c dch ra trn ng TXD bt u bng bit bt u (start bit), theo sau l 8 bit d liu, v k n l bit dng. Chu kz ca mi bit l nghch o ca tc baud c lp trnh trong timer. C ngt pht (TI) c t ln 1 ngay khi bit dng xut hin trn TXD .

    22

    s kin ng b ha

  • B mn K Thut in T - HBK

    Ch 1: UART 8 bit c tc baud thay i c (3/3)

    Vic thu c khi ng bi chuyn tip 1 sang 0 RXD. B m chia 16 creset tc thi ng chnh cc s m vi chui bit n. Chui bit n cly mu gia 16 ln m.

    Gi s b thu pht hin bit bt u hp l th tip tc nhn k t. Bit bt uc b qua v 8 bit d liu c nhp vo thanh ghi dch cng ni tip. Khi ttc 8 bit c nhp vo th xy ra:

    Bit th 9 (bit dng) c nhp vo RB8 trong SCON.

    SBUF c np vi 8 bit d liu, v

    C ngt ca b thu (RI) c t ln 1.

    Tuy nhin cc iu trn ch xy ra nu c cc iu kin sau:

    RI = 0, v

    SM2 = 1, v bit dng nhn c = 1, hoc SM2=0.

    Yu cu RI = 0 bo m rng phn mm c k t trc (v xa RI).iu kin th 2 th hi phc tp, nhng ch p dng trong ch truyn thnga x l. N hm { Khng c t RI ln 1 trong ch truyn thng a x lkhi bit d liu th chn l 0.

    23

  • B mn K Thut in T - HBK

    Ch 2: UART 9 bit c tc baud c nh

    Khi SM1 =0 v SM0 = 1, cng ni tip hot ng ch 2 nh UART 9 bit vi tc baud c nh. Mi mt bit c pht hoc thu: 1 bit bt u, 8 bit

    d liu, 1 bit d liu th 9 lp trnh c, v 1 bit dng. Khi pht, bit th 9 l ni dung ca bit TB8 trong

    SCON. Khi thu, bit th 9 thu c c t trong RB8. Tc baud ch 2 l 1/32 hay 1/64 tn s mch

    dao ng trn chip (xem thm mc tc baud cngni tip).

    24

  • B mn K Thut in T - HBK

    Ch 3: UART 9 bit c tc baud thay i c

    Ch 3 ging vi ch 2 ngoi tr tc baud c lp trnh v c cung cp bi timer.

    Tht ra cc ch 1, 2, v 3 rt ging nhau. Skhc bit l tc baud (c nh trong ch 2, thay i c trong ch 1 v 3) v s bit dliu (8 trong ch 1, 9 trong ch 2 v 3)

    25

  • B mn K Thut in T - HBK

    Khi to tr v truy cp cc thanh ghi cng ni tip

    Cc tc v vi cng ni tip

    Cho php b thu

    Truyn (thu/pht) d liu ni tip

    Thm bit kim tra chn l

    Cc c ngt

    t tc baud cho cng ni tip

    Truyn thng a x l

    26

  • B mn K Thut in T - HBK

    S dng cc bit trong thanh ghi SCON

    Cho php b thu (REN bit 4)

    SETB REN Hoc

    MOV SCON, #xxx1xxxxB ; vi x=0/1

    Cc c ngt RI, TI: Cc c ny c bt ln bi phn cng nhng phi c xa bng phn mm.

    RI = 1: B m nhn y; TI = 1: B m pht rng

    27

    Cho php b thu Truyn d liu ni tip

    1. Thu ni tip:

    NHAN: JNB RI, $

    CLR RI

    MOV A, SBUF

    RET

    2. Pht ni tip:

    PHAT: JNB TI, $

    CLR TI

    MOV SBUF,A

    RET

  • B mn K Thut in T - HBK

    bit kim tra chn l - TB8 kim tra chn/l (nu khng c dng (*) l chn)

    ; qua bit nh C

    MOV C, P

    CPL C ; kim tra l (*)

    MOV TB8, C

    MOV SBUF, A

    ; ch 1: 7-bit + 1 parity-bit

    CLR ACC.7

    MOV C, P

    MOV ACC.7, C

    MOV SBUF, A

    Nu Parity lun lun bng 1 c 2 bit dng

    28

    Thm bit kim tra chn l

  • B mn K Thut in T - HBK

    t tc baud cho cng ni tip

    29

    Cch t SMOD ln 1MOV A,PCON

    SETB ACC.7

    MOV PCON,A

  • B mn K Thut in T - HBK

    S dng Timer 1 lm xung nhp tc baud

    Khi to tr TMOD ch timer 8 bit t ng np li tr u (ch 2 ca timer) v t gi tr np li vo TH1 cho tc trn bng tc baud. TMOD c khi to tr nh sau:

    MOVTMOD, #0010xxxxB

    vi x c gi tr 0 hay 1 cn cho Timer 0.

    t tc baud rt thp bng cch dng Timer 1 ch 16 bit , vi TMOD = #0001xxxxB. Tuy nhin phi khi to tr li cc thanh ghi TL1/TH1 sau mi ln trn. Vic ny s c thc hin trong chng trnh phc v ngt.

    Mt la chn khc l cung cp xung nhp Timer1 bng xung nhp bn ngoi qua chn T1 (P3.5). Tc baud l 1/32 tc trn ca Timer 1.

    Do cng thc xc nh tc baud trong cc ch 1 v 3 l

    Tc baud = 1/32 Tc trn ca Timer 1

    Th d: hot ng 1200 baud cn tc trn nh sau

    1200 = 1/32 Tc trn ca Timer 1

    Tc trn ca Timer 1 = 32 x 1200 = 38400 = 38.4 KHz -> Toverflow = 1/38.4 kHz = 26.04 s

    Vi XTAL=12 MHz -> TCLK = 1 s. Overflow cn Toverflow/TCLK 26 clocks

    Gi tr np cho timer 1 l -26

    30

  • B mn K Thut in T - HBK

    Tm tt tc baud

    31

  • B mn K Thut in T - HBK

    Th d 1: Khi to tr cho cng ni tip

    Vit chui lnh khi to tr cng ni tip hot ng nh UART 8 bit vi tc 2400 baud. S dng Timer 1 cung cp xung nhp tc baud.

    Bi gii.

    Vi th d ny, c 4 thanh ghi phi c khi to tr l: SCON, TMOD, TCON, v TH1. Gi tr cn khi to tr cho cc thanh ghi nh sau

    32

    ORG 8100H

    INIT: MOV SCON, #52H

    MOV TMOD, #20H

    MOV TH1, #-13

    SETB TR1

    END

  • B mn K Thut in T - HBK

    Th d 2: Gi s 10 byte chui d liu c lu trong RAM ni t a ch 30H. Vit

    chng trnh gi chui d liu ny n cng ni tip ca 8051 (1200 baud, crystal 11.0592 MHz)

    33

    ORG 0000H

    MOV SCON,#01010010B ;Serial port mode 1

    MOV TMOD,#00100000B ;Timer 1 mode 2

    MOV TH1,#-24 ;reload count for 1200 baud

    SETB TR1 ;start Timer 1

    MOV R2,#10 ;number of loops

    MOV R0,#30H ;starting address

    LOOP: MOV A,@R0 ;get data

    ACALL SEND ;send data

    INC R0 ;increase pointer

    DJNZ R2,LOOP ;loop 10 times

    SJMP DONE

    SEND: JNB TI,$ ;transmit buffer empty? No:check again

    CLR TI ;yes: clear flag and

    MOV SBUF,A ; send data

    RET ;return

    DONE: NOP

    END

  • B mn K Thut in T - HBK

    Th d 3

    Gi s chui d liu c lu trong RAM ni t a ch 30H n 50H. Vit chng trnh gi chui d liu ny ra cng ni tip 8051 dng UART 8-bit, 2400 baud, 11.059-MHz crystal

    34

    ORG 0000H

    MOV SCON,#01010010B

    MOV TMOD,#00100000B

    MOV TH1,#-12

    SETB TR1

    MOV R0,#30H

    LOOP: MOV A,@R0

    ACALL SEND

    INC R0

    CJNE R0,#51H,LOOP

    SJMP DONE

    SEND: JNB TI,$

    CLR TI

    MOV SBUF,A

    RET

    DONE: NOP

    END

  • B mn K Thut in T - HBK

    Th d 4 Vit chng trnh nhn 20-byte chui d liu t cng ni tip dng UART 8-

    bit, 2400 baud, 11.059-MHz crystal v ghi vo RAM ni bt u t a ch 40H

    35

    ORG 0000H

    MOV SCON,#01010010B ;Serial port mode 1

    MOV TMOD,#00100000B ;Timer 1 mode 2

    MOV TH1,#-12 ;reload count for 2400 baud

    SETB TR1 ;start Timer 1

    MOV R2,#20 ;number of loops

    MOV R0,#40H ;starting address

    LOOP: ACALL RECEIVE ;receive data

    MOV @R0,A ;store data

    INC R0 ;increase pointer

    DJNZ R2,LOOP ;loop 20 times

    SJMP DONE

    RECEIVE:

    JNB RI,$ ;receive buffer full? No: check again

    CLR RI ;yes: clear flag and

    MOV A,SBUF ; receive data

    RET ;return

    DONE: NOP

    END

  • B mn K Thut in T - HBK

    Th d 5 Vit chng trnh nhn 40-byte chui d liu t cng ni tip dng UART 8-

    bit, 4800 baud, 11.059-MHz crystal v ghi vo RAM ni bt u t a ch 40H

    36

    ORG 0000H

    MOV SCON,#01010010B ;Serial port mode 1

    MOV TMOD,#00100000B ;Timer 1 mode 2

    MOV TH1,#-6 ;reload count for 4800 baud

    SETB TR1 ;start Timer 1

    MOV R2,#40 ;number of loops

    MOV R0,#40H ;starting address

    LOOP: ACALL RECEIVE ;receive data

    MOV @R0,A ;store data

    INC R0 ;increase pointer

    DJNZ R2,LOOP ;loop 20 times

    SJMP DONE

    RECEIVE:

    JNB RI,$ ;receive buffer full? No: check again

    CLR RI ;yes: clear flag and

    MOV A,SBUF ; receive data

    RET ;return

    DONE: NOP

    END

  • B mn K Thut in T - HBK

    Th d 6: Chng trnh xut k t

    Vit chng trnh con OUTCHR pht m ASCII 7 bit trong thanh ghi tch ly A ra cng nitip ca 8051 vi bit kim tra l c thm vo nh bit th 8. Tr v t chng trnh con khng lm thay i tr ca thanh ghi tch ly trc khi gi chng trnh con.

    Bi gii.

    Th d ny v th d k minh ha 2 trong s cc chng trnh con thng dng nht trn cc h vi tnh c gn thit b u cui RS232: xut k{ t (OUTCHR) v nhp k{ t (INCHAR).

    OUTCHR: MOV C, P ; t bit kim ra chn vo c C

    CPL C ; i sang kim tra l

    MOV ACC.7, C ; thm vo m k{ t

    AGAIN: JNB TI, AGAIN ; TX c rnh ? Khng : kim tra li

    CLR TI ; Truyn c xa c TI v

    MOV SBUF, A ; gi k{ t

    CLR ACC.7 ; b bit kim tra l v

    RET ; quay v

    37

  • B mn K Thut in T - HBK

    Th d, cc lnh sau pht m ASCII cho ch Z n thit b ni tip gn vo cng ni tip ca 8051:

    MOV A, # Z

    CALL OUTCHR

    (tip tc)

    38

  • B mn K Thut in T - HBK

    Th d 7: Chng trnh con nhp k t

    Vit chng trnh con INCHAR nhp 1 k t t cng ni tip ca8051 v tr v vi m ASCII 7 bit trong thanh ghi tch ly. Bit kimtra l c t trong bit th 8 nhn c v t c nh ln 1 nuc sai v kim tra chn l.

    INCHAR: JNB RI, $ ; i k t

    CLR RI ; xa c

    MOV A, SBUF ; c k t vo A

    MOV C, P ; vi kim tra l trong A, P s = 1

    CPL C ; b ch c li

    CLR ACC.7 ; b bit kim tra chn l

    RET

    39

  • B mn K Thut in T - HBK

    Th d 8

    Gi s 10-byte chui d liu ASCII 8-bit c lu trong RAM ni t a ch 30H. Vit chng trnh pht chui d liu ny ra cng ni tip (4800 baud, crystal 11.0592 MHz) vi c kim tra l c truyn nh bit th 9.

    40

  • B mn K Thut in T - HBK

    Th d 8

    41

    ORG 0000H

    MOV SCON,#11010010B ;Serial port mode 3 (9-bit)

    MOV TMOD,#00100000B ;Timer 1 mode 2

    MOV TH1,#-6 ;reload count for 4800 baud

    SETB TR1 ;start Timer 1

    MOV R2,#10 ;number of loops

    MOV R0,#30H ;starting address

    LOOP: MOV A,@R0 ;get data

    MOV C,P ;put even parity bit in C flag

    CPL C ;convert to odd parity

    MOV TB8,C ;and move to the 9th data bit

    ACALL SEND ;send data

    INC R0 ;increase pointer

    DJNZ R2,LOOP ;loop 10 times

    SJMP DONE

    SEND: JNB TI,$ ;check TI empty? No: check again

    CLR TI ;yes: clear flag and

    MOV SBUF,A ; send data

    RET ;return

    DONE: NOP

    END

  • B mn K Thut in T - HBK

    Th d 9 Vit chng trnh nhn 40-byte chui d liu t cng ni tip dng UART 8-bit, 4800

    baud, 11.059-MHz crystal v ghi ra RAM ngoi bt u t a ch 5000H

    42

    ORG 0000H

    MOV SCON,#01010010B ;Serial port mode 1

    MOV TMOD,#00100000B ;Timer 1 mode 2

    MOV TH1,#-6 ;reload count for 4800 baud

    SETB TR1 ;start Timer 1

    MOV R2,#40 ;number of loops

    MOV DPTR,#5000H ;starting address

    LOOP: ACALL RECEIVE ;receive data

    MOVX @DPTR,A ;store data

    INC DPTR ;increase pointer

    DJNZ R2,LOOP ;loop 20 times

    SJMP DONE

    RECEIVE:

    JNB RI,$ ;receive buffer full? No: check again

    CLR RI ;yes: clear flag and

    MOV A,SBUF ;receive data

    RET ;return

    DONE: NOP

    END

  • B mn K Thut in T - HBK

    Exercise

    Vit chng trnh nhn 50-byte chui d liu t cng ni tip dng UART 8-bit, 2400 bps, 11.059 MHz v kim tra: Nu byte d liu l s chn th ghi vo RAM ni bt u t a ch 40H

    Nu byte d liu l s l th ghi ra RAM ngoi bt u t a ch 2000H

    43

  • B mn K Thut in T - HBK

    Ti liu tham kho

    H Trung M, Vi x l{, Nh xut bn i hc Quc Gia Tp. HCM - 2003

    I. Scott MacKenzie , The 8051 Microcontroller, 2nd Edition, Prentice-Hall, 1995

    Slide bi ging thy H Trung M

    Slide bi ging thy L Ch Thng.

    44


Top Related