Tải bản đầy đủ (.pdf) (19 trang)

Kỹ thuật vi điều khiển-p11 ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (162.8 KB, 19 trang )

Xung & Hoi1
1.Giớithiệu
2.Sơđồ khốivàchân
3.Tổchứcbộnhớ
4.Cácthanhghichứcnăng đặcbiệt(SFR)
5.Dao độngvàhoạt độngreset
6.Tậplệnh
7.Cácmode định địachỉ (addressing modes)
8.LậptrìnhIO
9.Tạotrễ
10.LậptrìnhTimer/Counter
11.
11.
L
L


p
p
tr
tr
ì
ì
nh
nh
giao
giao
ti
ti
ế
ế


p
p
n
n


i
i
ti
ti
ế
ế
p
p
(serial
(serial
comm
comm
programming)
programming)
12.Lậptrìnhngắt(interrupt programming)
13.Lậptrìnhhợpngữ
Xung & Hoi2
11-1. Giớithiệu
•Port nốitiếphoạt độngsong công(full duplex), nghĩalàcó
khả năngthuvàphát đồngthời
•Sửdụng2 thanhghichứcnăng đặcbiệt SBUF (địachỉ byte là
99H) & SCON (địachỉ byte là98H) để truyxuấtport nốitiếp
•Việc ghilênSBUF sẽ nạpdữliệu để phát, vàviệc đọcSBUF
sẽ truyxuấtdữliệu đãnhận được à thựcracó2 SBUF riêng

rẽ
•SCON chứacácbit trạngtháivà điềukhiển, thanhnày được
định địachỉ bit
•Tầnsốhoạt độngcủaport nốitiếphay còngọilà tốc độ baud
(baud rate) cóthể cốđịnhhoặcthay đổi
Xung & Hoi3
Clk SBUF Q
(write only)
SBUF
(read only)
D
Shift Register
Clk
Baud rate clock
(phát)
Baud rate clock
(thu)
TXD
(P3.1)
8051 internal bus
RXD
(P3.0)
Xung & Hoi4
11-2. Thanhkhi điềukhiểnport nốitiếp
SM1, SM0: chọnchếđộ củaport nốitiếp
SM2: chophéptruyềnthông đaxửlý
REN: chophépthu, phải đượcset để nhậncáckýtự
TB8:bit thứ 9 đượcphát ở chếđộ 2 & 3
RB8:bit thứ 9 nhận được
TI: cờ ngắtphát, đượcset ngaysaukhikếtthúcviệcphát1

kýtự; đượcxóabởiphầnmềm
RI: cờ ngắtthu, đượcset ngaysaukhikếtthúcviệcthu1
kýtự; đượcxóabởiphầnmềm
SM0 SM1 SM2 REN RB8TB8 RITI
SCON
Xung & Hoi5
11-3. Cácchếđộ hoạt động
SM0SM1ModeMôtả Tốcđộ baud
000ThanhghidịchCốđịnh(f
OSC
/12)
011UART 8-bit Thay đổi (thiếtlập
bởibộđịnhthời)
102UART 9-bitCốđịnh(f
OSC
/12
hoặcf
OSC
/64)
113UART 9-bit Thay đổi (thiếtlập
bởibộđịnhthời)
Xung & Hoi6
11-3-1. Thanhghidịch8-bit (mode 0)
•Khiphátvàthudữliệu8-bit, bit LSB đượcpháthoặcthutrước
tiên
•Tốcđộ baud cốđịnh= f
OSC
/12
•ChânRxDdùngchocảviệcthuphátdữliệutrongkhiTxD
dùnglàmchânxuấtclock dịchbit

•Phát:
–GhivàoSBUF
–Dữliệu đượcdịchrangoàitrênchânRxD(P3.0)
–Xungclock dịchbit đượcgửiratrênchânTxD(P3.1)
–Mỗibit hợplệtruyền đitrênRxDtrong1 chukỳmáy
Xung & Hoi7
•Thu:
–Chỉđượckhởi độngkhiREN = 1 & RI = 0, nghĩalàphảiset
REN = 1 ở thời điểmbắtđầuchươngtrình& xóaRI để bắt
đầucôngviệcthudữliệu
–Dữliệu đượcdịchvàochânRxDbởixungclock dịchbit
(tác độngsườnlên)
•1 Ứngdụngcủamode 0:
–Mởrộngthêmcácngõracho8051
8051
TxD(P3.1)
RxD(P3.0)
Clock
Shift Regsiter
Data
8 ngõramởrộng
Xung & Hoi8
11-3-2. UART 8-bit cótốcđộ baud thay
đổi(mode 1)
•UART làbộthuphátdữliệunốitiếpvớimỗikýtựdữliệu
được đứngtrướcbởi1 bit start và đứngsaubởi1 bit stop.
Thỉnhthoảng1 bit parity đượcchènvào.
•Hoạt độngchủ yếucủaUART làbiếndữliệupháttừ// thành
ntvàbiếndữliệuthutừntthành//
•CờngắtphátTI đượcset bằng1 ngaykhibit stop xuấthiện

trênTxD
1 / baud rate
D0D1D2D3D4D5D6D7
Start
bit
Stop
bit
TI (ready
for more
data)
TxD
TI
Xung & Hoi9
•Việcnhận đượckhởi độngbởi1 chuyểntrạngtháitừ1 xuống
0 trên đườngRxD(bit start)
•Bit start sau đó đượcbỏqua & 8 bit dữ liệusau đó đượcnhận
tuầntựvàothanhghidịchbit củaport nốitiếp. Khicả8 bit
đượcnhận, tacó:
–Bit thứ 9 (bit stop) à RB8 củaSCON
–8 bit dữ liệu đượcnạpvàoSBUF
–CờngắtthuRI đượcset
•Note: Các điềutrênchỉ xảyranếutrước đócờRI = 0
Xung & Hoi10
11-4. Khởi độngvàtruyxuấtcácthanhghi
•Chophépnhận: REN trongSCON phải đượcset bởiphần
mềm để chophépnhậnkýtự
SETBREN
Hoặc
MOVSCON, #xxx1xxxxB
•Thêmvàobit chẵnlẻ:bit P trongPSW đượcset hoặcxóa ở

mỗichukỳmáy để thiếtlậpviệckiểmtrachẵncho8 bit chứa
trongA
MOVC, P; đưabit kiểmtrachẵnvàoTB8
MOVTB8, C; bit nàytrở thànhbit thứ 9
MOVSBUF, A; dichuyển8 bit dữ liệuvàoSBUF
Xung & Hoi11
•Cáccờngắt: RI vàTI đượcset bằngphầncứngnhưngphải
xóabằngphầnmềm
CTC nhận1 kýtựqua port nốitiếpnhư sau:
INCHAR:JNBRI, $
CLRRI
MOVA, SBUF
RET
CTC phát1 kýtựqua port nt:
OUTCHAR:JNBTI, $
CLRTI
MOVSBUF, A
RET
Xung & Hoi12
11-5. Tốc độ baud củaport nốitiếp
¸12
On-chip
OSC
Baud rate
clock
¸64
On-chip
OSC
Baud rate
clock

¸32
SMOD=0
SMOD=1
¸32
Timer 1
overflow
Baud rate
clock
¸16
SMOD=0
SMOD=1
Mode 0
Mode 2
Mode 1 & 3
Xung & Hoi13
Dùngtimer 1 làmxungclock tốc độ baud
•Thôngthườngkhởi độngthanhghiTMOD ở chếđộ tựđộng
nạplại8-bit (mode 2) & đặtgiátrị nạplạithíchhợpvàothanh
ghiTH1 để cótốcđộ tràn đúng, từđótạoratốcđộ baud
•MOVTMOD, #0010xxxxB ;for timer 1
•Baud rate = Timer 1 overflow / 32 hay /16 tùythuộcgiátrị bit
SMOD
Xung & Hoi14
Bàitoán11.1
•Tínhtoáncácgiátrị nạplạichothanhghiTH1 đốivớicáctốc
độ baud 9600, 4800, 2400, 1200 (XTAL = 11,0592MHz)?
~7%8929-7 (F9H)1129600
0,16%1202-26 (E6H)0121200
0%1200-24 (E8H)011,05921200
0%2400-12 (F4H)

0
11,05922400
0%4800-6 (FAH)011,05924800
0%9600-3 (FDH)011,05929600
0%19200-3 (FDH)111,059219200
Saisố
Tốcđộ baud
thựctế
Giátrị nạp
choTH1
SMOD
Tầnsốthạch
anh(MHz)
Tốc độ
baud
Xung & Hoi15
Tómlại:
NếuPCON.7 = 0
•TH1 = 256 -((Crystal / 384) / Baud)
NếuPCON.7 =1
•TH1 = 256 -((Crystal / 192) / Baud)
Làmvdvớibaud rate 19200 để chứngtỏvaitròbit SMOD
11.059Mhz crystal:
•TH1 = 256 -((Crystal / 384) / Baud)
TH1 = 256 -((11059200 / 384) / 19200 )
TH1 = 256 -((28799) / 19200)
TH1 = 256 -1.5 = 254.5
Xung & Hoi16
•Nếuset 254 ta đạt được14,400 baud cònvới255 ta đạt được
28,800 baud

•Set PCON.7 (SMOD). Ta có:
TH1 = 256 -((Crystal / 192) / Baud)
TH1 = 256 -((11059200 / 192) / 19200)
TH1 = 256 -((57699) / 19200)
TH1 = 256 -3 = 253
Kếtluậnvới19,200 baud (11.0592MHz crystal) taphải:
1.CấuhìnhPort nốitiếpmode 1 or 3
2.Timer 1 hoạt độngmode 2 (8-bit auto-reload)
3.Set TH1 bằng253
4.Set PCON.7 (SMOD)
Xung & Hoi17
Cácbàitoán

E
BT11.1. Khởi độngport nt: Viếtchuỗilệnhkhởi độngport
nốitiếphoạt độngnhư 1 UART 8-bit vớitốcđộ baud 2400.
Dùngtimer 1 để cungcấpxungclock tốc độ baud?

E
BT11.2. CTC xuấtkýtự: ViếtCTC mangtênOUTCHAR
phátmãASCII 7-bit chứatrongA raport nốitiếpvớibit kiểm
trachẵnlàbit thứ 8. Việctrở về từ CTC phảikhônglàmthay
đổinộidung thanhchứaA?

E
BT11.3. CTC thukýtự: ViếtCTC mangtênINCHAR để
thu1 kýtự từport nốitiếp& trả về mãASCII 7-bit trongA.
Sử dụngkiểmtrachẵntrongbit thứ 8 thu đượcvàset cờ nhớ
bằng1 nếucólỗichẵnlẻ?
Xung & Hoi18

MAX 232
Xung & Hoi19

×