Professional Documents
Culture Documents
GIAO TIẾP NỐI TIẾP VI ĐIỀU KHIỂN 8051
GIAO TIẾP NỐI TIẾP VI ĐIỀU KHIỂN 8051
CHNG 3
H VI IU KHIN 8051
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.
B mn K Thut in T - HBK
B mn K Thut in T - HBK
ng truyn d liu c bn
DTE: Data Terminal Equipment DCE: Data Communications Equipmnent
Communication link
DTE
Computer or terminal
DCE
Modem
DCE
Modem
DTE
Computer or terminal
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.
B mn K Thut in T - HBK
6
ng truyn im n im v a im
StationRx
Peer
Tx Rx Tx
Station
Peer
Master
Slave 1
Address 1
B mn K Thut in T - HBK
Slave 2
Address 2
Slave n
Address n
7
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.
B mn K Thut in T - HBK
8
C bn v cc ng truyn
Signal pattern for letter A (41H) Start bit Stop bit 5V 0V 0 1 0 0 0 0 0 1 0 1
Serial port
D0 D1 D2 D3 D4 D5 D6 D7
>+3V <-3V mark
B mn K Thut in T - HBK
RS232
space
9
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
B mn K Thut in T - HBK
11
DB-9 Signals
B mn K Thut in T - HBK
12
B mn K Thut in T - HBK
13
B mn K Thut in T - HBK
14
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
B mn K Thut in T - HBK
15
B mn K Thut in T - HBK
16
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
17
B mn K Thut in T - HBK
18
B mn K Thut in T - HBK
19
B mn K Thut in T - HBK
20
B mn K Thut in T - HBK
21
s kin ng b ha
B mn K Thut in T - HBK
22
B mn K Thut in T - HBK
24
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. S khc bit l tc baud (c nh trong ch 2, thay i c trong ch 1 v 3) v s bit d liu (8 trong ch 1, 9 trong ch 2 v 3)
B mn K Thut in T - HBK
25
B mn K Thut in T - HBK
26
Cc c ngt RI, TI: Cc c ny c bt ln bi phn cng nhng phi c xa bng phn mm.
1. Thu ni tip:
NHAN: JNB RI, $ CLR RI MOV A, SBUF RET
B mn K Thut in T - HBK
B mn K Thut in T - HBK
29
Tm tt tc baud
B mn K Thut in T - HBK
31
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
B mn K Thut in T - HBK
32
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)
ORG 0000H MOV SCON,#01010010B MOV TMOD,#00100000B MOV TH1,#-24 SETB TR1 MOV R2,#10 MOV R0,#30H MOV A,@R0 ACALL SEND INC R0 DJNZ R2,LOOP SJMP DONE JNB TI,$ CLR TI MOV SBUF,A RET NOP END
;Serial port mode 1 ;Timer 1 mode 2 ;reload count for 1200 baud ;start Timer 1 ;number of loops ;starting address ;get data ;send data ;increase pointer ;loop 10 times
LOOP:
SEND:
;transmit buffer empty? No:check again ;yes: clear flag and ; send data ;return
DONE:
B mn K Thut in T - HBK
33
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
ORG 0000H MOV SCON,#01010010B MOV TMOD,#00100000B MOV TH1,#-12 SETB TR1 MOV R0,#30H MOV A,@R0 ACALL SEND INC R0 CJNE R0,#51H,LOOP SJMP DONE JNB TI,$ CLR TI MOV SBUF,A RET NOP END
LOOP:
SEND:
DONE:
B mn K Thut in T - HBK
34
Th d 4
Vit chng trnh nhn 20-byte chui d liu t cng ni tip dng UART 8bit, 2400 baud, 11.059-MHz crystal v ghi vo RAM ni bt u t a ch 40H
ORG 0000H MOV SCON,#01010010B MOV TMOD,#00100000B MOV TH1,#-12 SETB TR1 MOV R2,#20 MOV R0,#40H LOOP: ACALL RECEIVE MOV @R0,A INC R0 DJNZ R2,LOOP SJMP DONE RECEIVE: JNB RI,$ CLR RI MOV A,SBUF RET DONE: NOP END B mn K Thut in T - HBK
;Serial port mode 1 ;Timer 1 mode 2 ;reload count for 2400 baud ;start Timer 1 ;number of loops ;starting address ;receive data ;store data ;increase pointer ;loop 20 times
;receive buffer full? No: check again ;yes: clear flag and ; receive data ;return
35
Th d 5
Vit chng trnh nhn 40-byte chui d liu t cng ni tip dng UART 8bit, 4800 baud, 11.059-MHz crystal v ghi vo RAM ni bt u t a ch 40H
ORG 0000H MOV SCON,#01010010B MOV TMOD,#00100000B MOV TH1,#-6 SETB TR1 MOV R2,#40 MOV R0,#40H LOOP: ACALL RECEIVE MOV @R0,A INC R0 DJNZ R2,LOOP SJMP DONE RECEIVE: JNB RI,$ CLR RI MOV A,SBUF RET DONE: NOP END B mn K Thut in T - HBK
;Serial port mode 1 ;Timer 1 mode 2 ;reload count for 4800 baud ;start Timer 1 ;number of loops ;starting address ;receive data ;store data ;increase pointer ;loop 20 times
;receive buffer full? No: check again ;yes: clear flag and ; receive data ;return
36
AGAIN:
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)
B mn K Thut in T - HBK
38
B mn K Thut in T - HBK
39
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.
B mn K Thut in T - HBK
40
Th d 8
ORG 0000H MOV SCON,#11010010B MOV TMOD,#00100000B MOV TH1,#-6 SETB TR1 MOV R2,#10 MOV R0,#30H LOOP: MOV A,@R0 MOV C,P CPL C MOV TB8,C ACALL SEND INC R0 DJNZ R2,LOOP SJMP DONE SEND: JNB TI,$ CLR TI MOV SBUF,A RET DONE: NOP END B mn K Thut in T - HBK ;Serial port mode 3 (9-bit) ;Timer 1 mode 2 ;reload count for 4800 baud ;start Timer 1 ;number of loops ;starting address ;get data ;put even parity bit in C flag ;convert to odd parity ;and move to the 9th data bit ;send data ;increase pointer ;loop 10 times ;check TI empty? No: check again ;yes: clear flag and ; send data ;return
41
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
;Serial port mode 1 ;Timer 1 mode 2 ;reload count for 4800 baud ;start Timer 1 ;number of loops ;starting address ;receive data ;store data ;increase pointer ;loop 20 times
ORG 0000H MOV SCON,#01010010B MOV TMOD,#00100000B MOV TH1,#-6 SETB TR1 MOV R2,#40 MOV DPTR,#5000H LOOP: ACALL RECEIVE MOVX @DPTR,A INC DPTR DJNZ R2,LOOP SJMP DONE RECEIVE: JNB RI,$ CLR RI MOV A,SBUF RET DONE: NOP END B mn K Thut in T - HBK
;receive buffer full? No: check again ;yes: clear flag and ;receive data ;return
42
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
B mn K Thut in T - HBK
43
B mn K Thut in T - HBK
44