Professional Documents
Culture Documents
1
LÔØI NOÙI ÑAÀU
Kyõ thuaät vi söû lyù hieän nay raát phaùt trieån , noù ñöôïc öùng duïng vaøo raát nhieàu lónh
vöïc nhö saûn xuaát coâng nghieäp ,töï ñoäng hoaù vaø coøn nhieàu lónh vöïc khaùc nöõa . So vôùi kyõ
thuaätsoá thì kyõ thuaät vi söû lyù nhoû goïn hôn raát nhieàu do noù ñöôïc tích hôïp laïi vaø ñöôïc laäp
trình ñeå ñieàu khieån .
Vôùi tính öu vieät cuûa vi xöû lyù thì trong phaïm vi ñoà aùn nhoû naøy em chæ tieán haønh
vieäc duøng vi xöû lyù ñeå ño vaø ñieàu khieån nhieät ñoä , ñaây chæ laø moät öùng duïng nhoû cuûa vi
xöû lyù trong caùc öùng duïng cuûa noù .
Nhöõng kieán thöùc hoïc ñöôïc coäng theâm hieåu bieát töø caùc taøi lieäu tham khaûo , tuy
coù theå hoaøn thaønh cuoán ñoà aùn naøy nhöng khoâng theå traùnh khoûi nhieàu thieáu soùt mong
thaày giaùo khi xem cuoán ñoà aùn naøy coù theå thoâng caûm.
Ñeå hoaøn thaønh cuoán ñoà aùn naøy em ñaõ nhaän ñöôïc söï chæ baûo taän tình cuûa thaày
giaùo höôùng daãn vaø söï giuùp ñôõ nhieät tình cuûa baïn beø . Cuoái cuøng em xin caûm ôn thaày
höôùng daãn Phaïm Huøng Kim Khaùnh ,thaày giaùo moân vi xöû lyù vaø caùc thaày coâ giaùo ñaõ
daïy cho em nhöõng kieán thöùc cô baûn ñeå em coù theå hoaøn thaønh cuoán ñoà aùn naøy.
Sinh vieân thöïc hieän
Nguyeãn Quang Hieáu.
2
PHAÀN A : CÔ SÔÛ LYÙ THUYEÁT
Chöông 1:
GIÔÙI THIEÄU CHUNG VEÀ BOÄ VI ÑIEÀU KHIEÅN
I.GIÔÙI THIEÄU :
Boä vi ñieàu khieån vieát taét laø Micro-controller, laø maïch tích hôïp treân moät
chip coù theå laäp trình ñöôïc, duøng ñeå ñieàu khieån hoaït ñoäng cuûa moät heä thoáng.
Theo caùc taäp leänh cuûa ngöôøi laäp trình, boä vi ñieàu khieån tieán haønh ñoïc, löu tröõ
thoâng tin, xöû lyù thoâng tin, ño thôøi gian vaø tieán haønh ñoùng môû moät cô caáu naøo
ñoù.
Trong caùc thieáh bò ñieän vaø ñieän vaø ñieän töû daân duïng, caùc boä vi ñieàu khieån,
ñieàu khieån hoaït ñoäng cuûa TV, maùy giaët, ñaàu ñoïc laser, ñieän thoïai, loø vi-ba …
Trong heä thoáng saûn xuaát töï ñoäng, boä vi ñieàu khieån ñöôïc söû duïng trong Robot,
daây chuyeàn töï ñoäng. Caùc heä thoáng caøng “thoâng minh” thì vai troø cuûa heä vi ñieàu
khieån caøng quan troïng.
3
1.CAÁU TRUÙC BEÂN TRONG CUÛA 8051 / 8031 :
INT\*1
INT\*0
TIMER2
TIMER1
PORT noái tieàp
Rom T1*
Ñieàu Caùc ùthanh 128 byte 4K-8051 Timer1
Ram Timer2 T2*
khieån ngaét ghi khaùc OK-8031
CPU
TXD* RXD*
4
Phaàn chính cuûa vi ñieàu khieån 8051 / 8031 laø boä xöû lí trung taâm (CPU:
central processing unit ) bao goàm :
- Thanh ghi tích luõy A
- Thanh ghi tích luõy phuï B, duøng cho pheùp nhaân vaø pheùp chia
- Ñôn vò logic hoïc (ALU : Arithmetic Logical Unit )
- Töø traïng thaùi chöông trình (PSW : Prorgam Status Word)
- Boán baêng thanh ghi
- Con troû ngaên xeáp
- Ngoaøi ra coøn coù boä nhôù chöông trình, boä giaûi maõ leänh, boä ñieàu khieån
thôøi gian vaø logic.
Ñôn vò xöû lí trung taâm nhaän tröïc tieáp xung töø boä giao ñoäng, ngoaøi ra coøn
coù khaû naêng ñöa moät tín hieäu giöõ nhòp töø beân ngoaøi.
Chöông trình ñang chaïy coù theå cho döøng laïi nhôø moät khoái ñieàu khieån ngaét
ôû beân trong. Caùc nguoàn ngaét coù theå laø : caùc bieán coá ôû beân ngoaøi , söï traøn boä
ñeám ñònh thôøi hoaëc cuõng coù theå laø giao dieän noái tieáp.
Hai boä ñònh thôøi 16 bit hoaït ñoäng nhö moät boä ñeám.
Caùc coång (port0, port1, port2, port3 ). Söû duïng vaøo muïc ñích ñieàu khieån.
Ôû coång 3 coù theâm caùc ñöôøng daãn ñieàu khieån duøng ñeå trao ñoåi vôùi moät boä
nhôù beân ngoaøi, hoaëc ñeå ñaàu noái giao dieän noái tieáp, cuõng nhö caùc ñöôøng ngaét
daãn beân ngoaøi.
Giao dieän noái tieáp coù chöùa moät boä truyeàn vaø moät boä nhaän khoâng ñoàng boä,
laøm vieäc ñoäc laäp vôùi nhau. Toác ñoä truyeàn qu oång noái tieáp coù theå ñaët trong vaûy
roäng vaø ñöôïc aán ñònh baèng moät boä ñònh thôøi.
Trong vi ñieàu khieån 8051 / 8031 coù hai thaønh phaàn quan troïng khaùc ñoù laø
boä nhôù vaø caùc thanh ghi :
Boä nhôù goàm coù boä nhôù Ram vaø boä nhôù Rom (chæ coù ôû 8031) duøng ñeå löu
tröõ döõ lieäu vaø maõ leänh.
Caùc thanh ghi söû duïng ñeå löu tröõ thoâng tin trong quaù trình xöû lí. Khi CPU
laøm vieäc noù laøm thay ñoåi noäi dung cuû aùc thanh ghi.
5
2.CHÖÙC NAÊNG CAÙC CHAÂN VI ÑIEÀU KHIEÅN :
40
30p
19 32
Vcc Po.7 AD7
XTAL1 Po.6 33 AD6
12MHz
Po.5 34 AD5
XTAL2 Po.4 35 AD4
18
30p Po.3 36 AD3
Po.2 37 AD2
Po.1 38 AD1
29 39
PSEN\ Po.0 AD0
30
ALE 8
P2.7
7
31 P2.6
EA\ 6
9 P2.5
RET 5
P2.4
4
P2.3
RD\ 17 3
P2.2
WR\ 16 2
P2.1
T1 15 1
P2.0
T0 14 28
13 P1.7 A15
INT1 27
12 P1.6 A14
INT0 26
11 P1.5 A13
TXD 25
10 P1.4 A12
RXD 24
P1.3 A11
23 A10
P1.2
22 A9
P1.1
Vss 21 A8
P1.0
20
6
a.port0 : laø port coù 2 chöùc naêng ôû treân chaân töø 32 ñeán 39 trong caùc thieát keá
côõ nhoû
( khoâng duøng boä nhôù môû roäng ) coù hai chöùc naêng nhö caùc ñöôøng I/O. Ñoái vôùi
caùc thieát keá côõ lôùn ( vôùi boä nhôù môû roäng ) noù ñöôïc keát hôïp keânh giöõ a caùc
bus)
b.port1 : port1 laø moät port I/O treân caùc chaân 1-8. Caùc chaân ñöôïc kyù hieäu
P1.0, P1.1, P1.2 … coù theå duøng cho caùc thieát bò ngoaøi neáu caàn. Port1 khoâng coù
chöùc naêng khaùc, vì vaäy chuùng ta chæ ñöôïc duøng trong giao tieáp vôùi caùc thieát bò
ngoaøi.
c.port2 : port2 laø moät port coâng duïng keùp treân caùc chaân 21 – 28 ñöôïc duøng
nhö caùc ñöôøng xuaát nhaäp hoaëc laø byte cao cuûa bus ñòa chæ ñoái vôùi caùc thieát keá
duøng boä nhôù môû roäng.
d.Port3 : port3 laø moät port coâng duïng keùp treân caùc chaân 10 – 17. Caùc chaân
cuûa port naøy coù nhieàu chöùc naêng, caùc coâng duïng chuyeån ñoåi coù lieân heä vôùi caùc
ñaëc tín ñaëc bieät cuûa 8051 / 8031 nhö ôû baûng sau :
7
PSEN laø tín hieäu ra treân chaân 29. Noù laø tín hieäu ñieàu khieån ñeå cho pheùp
boä nhôù chöông trình môû roäng vaø thöôøng ñöôïc noái ñeán chaân OE (Output Enable)
cuûa moät EPROM ñeå cho pheùp ñoïc caùc bytes maõ leänh.
PSEN seõ ôû möùc thaáp trong thôøi gian laáy leänh. Caùc maõ nhò phaân cuûa
chöông trình ñöôïc ñoïc töø EPROM qua bus vaø ñöôïc choát vaøo thanh ghi leänh cuûa
8051 ñeå giaûi maõ leänh. Khi thi haønh chöông trình trong ROM noäi (8051) PSEN
seõ ôû möùc thuï ñoäng (möùc cao).
f.ALE (Address Latch Enable ) :
tín hieäu ra ALE treân chaân 30 töông hôïp vôùi caùc thieát bò laøm vieäc vôùi caùc
xöû lí 8585, 8088, 8086, 8051 duøng ALE moät caùch töông töï cho laøm vieäc giaûi caùc
keânh caùc bus ñòa chæ vaø döõ lieäu khi port 0 ñöôïc duøng trong cheá ñoä chuyeån ñoåi
cuûa noù : vöøa laø bus döõ lieäu vöøa laø buùyt thaáp cuûa ñòa chæ, ALE laø tín hieäu ñeå choát
ñòa chæ vaøo moät thanh ghi beân ngoaøi trong nöõa ñaàu cuûa chu kyø boä nhôù. Sau ñoù,
caùc ñöôøng port 0 duøng ñeå xuaát hoaëc nhaäp döõ lieäu trong nöõa sau chu kyø cuûa boä
nhôù.
Caùc xung tín hieäu ALE coù toác ñoä baèng 1/6 laàn taàn soá dao ñoäng treân chip
vaø coù theå ñöôïc duøng laø nguoàn xung nhòp cho caùc heä thoáng. Neáu xung treân 8051
laø 12MHz thì ALE coù taàn soá 2MHz. Chæ ngoaïi tröø khi thi haønh leänh MOVX,
moät xung ALE seõ bò maát. Chaân naøy cuõng ñöôïc laøm ngoõ vaøo cho xung laäp trình
cho EPROM trong 8051.
g.EA (External Access) :
Tín hieäu vaøo EA treân chaân 31 thöôøng ñöôïc maéc leân möùc cao (+5V) hoaëc
möùc thaáp (GND). Neáu ôû möùc cao, 8051 thi haønh chöông trình töø ROM noäi trong
khoaûng ñòa chæ thaáp (4K). Neáu ôû möùc thaáp, chöông trình chæ ñöôïc thi haønh töø
boä nhôù môû roäng. Khi duøng 8031, EA luoân ñöôïc noái möùc thaáp vì khoâng coù boä
nhôù chöông trình treân chip. Neáu EA ñöôïc noái möùc thaáp boä nhôù beân trong
chöông trình 8051 seõ bò caám vaø chöông trình thi haønh töø EPROM môû roäng.
Ngöôøi ta coøn duøng chaân EA laøm chaân caáp ñieän aùp 21V khi laäp trình cho
EPROM trong 8051.
h.SRT (Reset) :
Ngoõ vaøo RST treân chaân 9 laø ngoõ reset cuûa 8051. Khi tín hieäu naøy ñöôïc
ñöa leân muùc cao (trong ít nhaát 2 chu kyø maùy ), caùc thanh ghi trong 8051 ñöôïc
taûi nhöõng giaù trò thích hôïp ñeå khôûi ñoäng heä thoáng.
i.Caùc ngoõ vaøo boä dao ñoäng treân chip :
Nhö ñaõ thaáy trong caùc hình treân , 8051 coù moät boä dao ñoäng treân chip. Noù
thöôøng ñöôïc noái vôùi thaïch anh giöõa hai chaân 18 vaø 19. Caùc tuï giöõa cuõng caàn
thieát nhö ñaõ veõ. Taàn soá thaïch anh thoâng thöôøng laø 12MHz.
8
j.Caùc chaân nguoàn :
8051 vaän haønh vôùi nguoàn ñôn +5V. Vcc ñöôïc noái vaøo chaân 40 vaø Vss
(GND) ñöôïc noái vaøo chaân 20.
9
4/. Leänh reset.
8051/8031 ñöôïc reset baèng caùch giöõ chaân RST ôû möùc cao ít nhaát trong 2 chu
kyø maùy vaø traû noù veà muùc thaáp. RST coù theå ñöôïc kích khi caáp ñieän duøng moät
maïch R-C.
+5V
+5V
100 10UF
8,2K
Traïng thaùi cuûa taát caû caùc thanh ghi cuûa 8051/8031 sau khi reset heä thoáng
ñöôïc toùm taét trong baûng sau:
10
SBUF 00H
PCON(HMOS) 0XXXXXXB
PCON(CMOS) 0XXX0000B
Baûng 2.3: Traïng thaùi caùc thanh ghi sau khi reset
Quan troïng nhaát trong caùc thanh ghi treân laø thanh ghi ñeám chöông trình, noù
ñöôïc ñaët laïi 0000H. Khi RST trôû laïi möùc thaáp, vieäc thi haønh chöông trình luoân
baét ñaàu ôû ñòa chæ ñaàu tieân trong boä nhôù trong chöông trình: ñòa chæ 0000H. Noäi
dung cuûa RAM treân chip khoâng bò thay ñoåi bôûi leänh reset.
5. Hoaït ñoäng cuûa boä ñònh thôøi (timer)
5.1 Giôùi thieäu.
Moät ñònh nghóa ñôn giaûn cuûa timer laø moät chuoãi caùc flip-flop chia ñoâi taàn soá
noái tieáp vôùi nhau, chuùng nhaän tín hieäu vaøo laøm nguoàn xung nhòp. Ngoõ ra cuûa
taàn soá cuoái laøm nguoàn xung nhòp cho flip-flop baùo traøn cuûa timer (flip-flop côø).
Giaù trò nhò phaân trong caùc flip-flop cuûa timer coù theå xem nhö soá ñeám soá xung
nhòp (hoaëc caùc söï kieän) töø khi khôûi ñoäng timer. Ví duï timer 16 bit seõ ñeám leân töø
0000H ñeán FFFFH. Côø baùo traøn seõ leân 1 khi soá ñeám traøn töø FFFFH ñeán 0000H.
8051/8031 coù 2 timer 16 bit, moãi timer coù boán caùch laøm vieäc. Ngöôøi ta söû duïng
caùc timer ñeå : a) ñònh khoaûng thôøi gian, b) ñeám söï kieän hoaëc c) taïo toác ñoä baud
cho port noái tieáp trong 8051/8031.
Trong caùc öùng duïng ñònh khoaûng thôøi gian, ngöôøi ta laäp trình timer ôû moät
khoaûng ñeàu ñaën vaø ñaët côø traøn timer. Côø ñöôïc duøng ñeå ñoàng boä hoùa chöông
trình ñeå thöïc hieän moät taùc ñoäng nhö kieåm tra traïng thaùi cuûa caùc cöûa ngoõ vaøo
hoaëc göûi caùc söï kieän ra caùc ngoõ ra. Caùc öùng duïng khaùc coù theå söû duïng vieäc taïo
xung nhòp ñeàu ñaën cuûa timer ñeå ño thôøi gian troâi qua giöõa hai söï kieän (ví duï :
ño ñoä roäng xung).
Ñeám söï kieän duøng ñeå xaùc ñònh soá laàn xaåy ra cuûa moät söï kieän. Moät “söï kieän”
laø baát cöù taùc ñoäng ngoaøi naøo coù theå cung caáp moät chuyeån traïng thaùi treân moät
chaân cuûa 8051/8031. Caùc timer cuõng coù theå cung caáp xung nhòp toác ñoä baud cho
port noái tieáp trong 8051/8031.
11
Truy xuaát timer cuûa 8051/8031 duøng 6 thanh ghi chöùc naêng ñaëc bieät cho
trong baûng sau:
Baûng 2.4: Thanh ghi chöùc naêng ñaëc bieät duøng timer.
12
01: cheá ñoä 1 : timer 16 bit
10: cheá ñoä 2 : töï ñoäng naïp laïi 8255A bit
11: cheá ñoä 3 : taùch timer
3 GATE 0 Bit (môû) coång
2 C/T 0 Bit choïn counter/timer
1 M1 0 Bit 1 cuûa cheá ñoä
0 M0 0 Bit 0 cuûa cheá ñoä
13
TCON.4 TR0 8CH Bit ñieàu khieån timer 0 chaïy
TCON.3 IE1 8BH Côø caïnh ngaét 1 beân ngoaøi, ñaëc bôûi
TCON.2 IT1 8AH Côø kieåu ngaét moät beân ngoaøi.
phaàn cöùng khi phaùt hieän moät caïnh
xuoáng ôû INT1, xoùa baèng phaàn meàm
hoaëc phaàn cöùng khi CPU chæ ñeán
chöông trình phuïc vuï ngaét.
Ñaët/xoùa baèng phaàn meàm ñeà ngaét
ngoaøi tích cöïc caïnh xuoáng/möùc thaáp
TCON.1 IE0 89H Côø caïnh ngaét 0 beân ngoaøi
TCON.0 IT0 88H Côø kieåu ngaét 0 beân ngoaøi
14
c) Cheá ñoä 0- cheá ñoä töï ñoäng naïp laïi 8 bit.
TLx hoaït ñoäng nhö moät timer 8 bit, trong khi ñoù THx vaãn giöõ nguyeân giaù
trò ñöôïc naïp. Khi soá ñeám traøn töù FFH ñeán 00H, khoâng nhöõng côø timer ñöôïc set
maø giaù trò trong THx ñoàng thôøi ñöôïc naïp vaøo TLx. Vieäc ñeám tieáp tuïc töø giaù trò
naøy leân ñeán FFH xuoáng 00H vaø naïp laïi... cheá ñoä naøy raát thoâng duïng vì söï traøn
timer xaûy ra trong nhöõng khoaûng thôøi gian nhaát ñònh vaø tuaàn hoaøn moät khi ñaõ
khôûi ñoäng TMOD vaø THx.
TLx TFx
(8 bit)
Xung nhòp
timer
Côû baùo traøn
Naïp laïi
THx
(8 bit)
15 TH0 TF1
Côø baùo traøn
I/12 Fosc
On chip
Crytal Osillato
r ÷12 Timer
Clock
T0 or T1
pin −
C/T
0=Up (Internal Timing)
1=Down (Event Counting)
Nguoàn xung taïo nhòp
16
Nguoàn xung nhòp ngoaøi coù töø thay ñoåi chuù7c naêng cuûa caùc chaân port 3. Bit
4 cuûa port 3 (P3.4) duøng laøm ngoõ vaøo taïo xung nhòp beân trong timer 0 vaø ñöôïc
goïi laø “T0”. Vaø p3.5 hay “T1” laø ngoõ vaøo taïo xung nhòp cho timer 1.
5.6 Baét ñaàu döøng vaø ñieàu khieån caùc timer.
Phöông phaùp môùi ñôn giaûn nhaát ñeå baét ñaàu (cho chaïy) vaø döøng caùc timer
laø duøng caùc bit ñieàu khieån chaïy :TRx trong TCON, TRx bò xoùa sau khi reset heä
thoáng. Nhö vaäy, caùc timer theo maëc nhieân laø bò caám (bò döøng). TRx ñöôïc ñaët
leân 1 baèng phaàn meàm ñeå cho caùc timer chaïy.
Xung nhòp
Timer Caùc thanh ghi timer
17
Trong moät soá öùng duïng caàn ñoïc giaù trò trong caùc thanh ghi timer ñang
chaïy. Vì phaûi ñoïc 2 thanh ghi timer “sai pha” coù theå xaåy ra neáu byte thaáp traøn
vaøo byte cao giöõa hai laàn ñoïc. Giaù trò coù theå ñoïc ñöôïc khoâng ñuùng. Giaûi phaùp laø
ñoïc byte cao tröôùc, keá ñoù ñoïc byte thaáp roài ñoïc byte cao laïi moät laàn nöõa. Neáu
byte cao ñaõ thay ñoåi thì laäp laïi caùc hoaït ñoäng ñoïc.
5.8 Caùc khoaûng ngaén vaø caùc khoaûng daøi.
Daõy caùc khoaûng thôøi gian coù theå ñònh thôøi laø bao nhieâu ? vaán ñeà naøy
ñöôïc khaûo saùt vôùi 8051/8031 hoaït ñoäng vôùi taàn soá 12MHz. nhö vaäy xung nhòp
cuûa caùc timer coù taàn soá laù 1 MHz.
Khoaûng thôøi gian ngaén nhaát coù theå coù bò giôùi haïn khoâng chæ bôûi taàn soá xung
nhòp cuûa timer maø coøn bôûi phaàn meàm. Do aûnh höôûng cuûa thôøi khoaûng thöïc hieän
moät leänh. Leäng ngaén nhaát 8051/8031 laø moät chu kyø maùy hay 1µs. Sau ñaây laø
baûng toùm taét caùc kyõ thuaät ñeå taïo nhöõng khoaûng thôøi gian coù chieàu daøi khaùc
nhau (vôùi giaû söû xung nhòp cho 8051/8031 coù taàn soá 12 MHz)
Khoaûng thôøi gian toái ña Kyõ thuaät
≈10 - Baèng phaàn meàm
256 - Timer 8 bit vôùi töï ñoäng naïp laïi
65535 - Timer 16 bit
Khoâng giôùi haïn - Timer 16 bit coäng vôùi caùc voøng
laäp phaàn meàm
Caùc kyõ thuaät ñeå laäp trình caùc khoaûng thôøi gian (FOSC=12 MHz)
18
Hai thanh ghi chöùc naêng ñaëc bieät cho pheùp phaàn meàm truy xuaát ñeán port
noái tieáp laø : SBUF vaø SCON. Boä ñeám port noái tieáp (SBUF) ôû ñaïi chæ 99H thaät
söû laø hai boä ñeám. Vieát vaøo SBUF ñeå truy xuaát döõ lieäu thu ñöôïc. Ñaây laø hai
thanh ghi rieâng bieät thanh ghi chæ ghi ñeå phaùt vaø thanh ghi ñeå thu.
TXD (P3.1) RXD (P3.0)
CLK SUBF
(Chæ ghi) Q D Thanh ghi dòch
CLK
Xung nhòp toác SBUF
Ñoä baud (thu) (chæ ñoïc)
Xung nhòp toác
Ñoä baud (thu) SBUF
(chæ ñoïc)
19
Bit Kyù hieäu Ñòa chæ Moâ taû
SCON.7 SM0 9FH Bit 0 cuûa cheá ñoä port noái tieáp
SCON.6 SM1 9EH Bit 1 cuûa cheá ñoä port noái tieáp
SCON.5 SM2 9DH Bit 2 cuûa cheá ñoä 2 noái tieáp.
cho pheùp trueàn thoâng ñaõ xöû lyù
trong caùc cheá ñoä 2 vaø 3 ;RI seõ
khoâng bò taùc ñoäng neáu bit thöù
9 thu ñöôïc laø 0
SCON.4 REN 9CH Cho pheùp boä thu phaûi ñaët leân
1 ñeå thu (nhaän) caùc kyù töï
SCON.3 TB8 9BH Bit 8 phaùt, bit thöù 9 ñöôïc phaùt
caùc cheá ñoä 2 vaø 3; ñöôïc ñaët
vaø xoùa baèng phaàn meàm
SCON.2 RB8 9AH Bit 8 thu, bit thöù 9 thu ñöôïc
SCON.1 TI 99H Côø ngaét phaùt. Ñaët leân 1 khi
keát thuùc phaùt kyù töï; ñöôïc xoùa
phaàn meàm
SCON.0 RI 98H Côø ngaét thu. Ñaët leân 1 khi
Keát thuùc thu kyù töï; ñöôïc xoùa
Baèng phaàn meàm
Baûng 2.7:Toùm taét thanh ghi cheá ñoä port noái tieáp SCON.
20
MOV SCON,#01010010B
Khôûi ñoäng port noái tieáp cho cheá ñoä 1 (SM0/SM1=0/1), cho pheùp boä thu
(REN=1) vaø ñaët côø ngaét phaùt (TP=1) ñeå chæ boä phaùt saün saøng hoaït ñoäng.
6.3 Khôûi ñoäng vaø truy xuaát caùc thanh ghi coång noái tieáp.
a. Cho pheùp thu:
Bit cho pheùp boä thu (REN = Receiver Enable) trong SCON phaûi ñöôïc ñaët
leân 1 baèng phaàn meàm ñeå cho pheùp thu caùc kyù töï. Thoâng thöôøng thöïc hieän vieäc
naøy ôû ñaàu chöông trình khi khôûi ñoäng coång noái tieáp, timer...Coù theå thöïc hieän
vieäc naøy theo hai caùch. Leänh :
SETB REN
Seõ ñaët REN leân 1, hoaëc leänh :
MOV SCON,#xxx1xxxxB
Seõ ñaët REN 1 vaø ñaëc hoaëc xoùa ñi caùc bit khaùc treân SCON khi caàn (caùc x
phaûi laø 0 hoaëc 2 ñeå ñaëc cheá ñoä laøm vieäc).
b. Bit döõ lieäu thöù 9:
Bit döõ lieäu thöù 9 caàn phaùt trong caùc cheá ñoä 2 vaø 3, phaûi ñöôïc naïp vaøo
trong TB8 baèng phaàn meàm. Bit döõ lieäu thöù 9 thu ñöôïc ñaët ôû RBS. Phaàn meàm coù
theå caàn hoaëc khoâng caàn bit döõ lieäu thöù 9, phuï thuoäc vaøo caùc ñaëc tính kyõ thuaät
cuûa thieát bò noái tieáp söû duïng (bit döõ lieäu thöù 9 cuõng ñoùng vai moät troø quan troïng
trong truyeàn thoâng ña xöû lyù).
c. Theâm 1 bit parity:
Thöôøng söû duïng bit döõ lieäu thöù 9 ñeå theâm parity vaøo kyù töï. Nhö ñaõ xeùt ôû
caùc chöông tröôùc, pit P trong töø traïng thaùi chöông trình (PSW) ñöôïc ñaët leân 1
hoaëc bò xoùa bôûi chu kyø maùy ñeå thieát laäp kieåm tra chaün vôùi 8 bit trong thanh tích
luõy.
21
Dao ñoäng Xung nhòp
÷12
treân chip toác ñoä baud
a. Cheá ñoä 0
÷64
SMOD=0
Dao ñoäng Xung nhòp
treân chip toác ñoä baud
÷32 SMOD=1
b. Cheá ñoä 2
÷32
SMOD=0
Dao ñoäng Xung nhòp
treân chip toác ñoä baud
÷16 SMOD=1
÷16
Maëc nhieân, sau khi reset heä thoáng, toác ñoä baud cheá ñoä laø 2 taàn soá boä dao
ñoäng chia cho 64. Toác ñoä baud cuõng aûnh höôûng bôûi 1 bit trong thanh ghi ñieàu
khieån nguoàn cung caáp (PCON). Bit 7 cuûa PCON laø bit SMOD. Ñaët bit sMOD
leân moät laøm gaáp ñoâi toác ñoä baud trong cheá ñoä 1,2 vaø 3. Trong cheá ñoä 2, toác ñoä
baud coù theå bò gaáp ñoâi töø giaù trò maëc nhieân cuûa 1/64 taàn soá dao ñoäng
(SMOD=0) ñeán 1/32 taàn soá dao ñoäng (SMOD=1)
Vì PCON khoâng ñöôïc ñònh ñòa chæ theo bit, neân ñeå ñaët bit SMOD leân 1
caàn phaûi theo caùc leänh sau:
MOV A,PCON laáy giaù trò hieän thôøi cuûa PCON
SETB ACC.7 ñaët bit 7 (SMOD) leân 1
MOV PCON,A ghi giaù trò ngöôïc veà PCON
Caùc toác ñoä baud trong caùc cheá ñoä 1 vaø 3 ñöôïc xaùc ñònh baèng toác ñoä traøn
cuûa timer 1. Vì timer hoaït ñoäng ôû taàn soá töông ñoái cao, traøn timer ñöôïc chia
22
theâm cho 32 (hay 16 neáu SMOD=1) tröôùc khi cung caáp xung nhòp toác ñoä baud
cho port noái tieáp.
7. Taäp leänh cuûa 8051/8031.
Taäp leänh 8051/8031 coù 255 leänh goàm 139 leänh 1 byte, 92 leänh 2 byte vaø
24 leänh 3 byte.
7.1/ Caùc nhoùm leänh cuûa 8051/8031.
Taäp leänh cuûa 8051/8031 ñöôïc chia thaønh 5 nhoùm:
- Soá hoïc.
- Luaän lyù.
- Chuyeån döõ lieäu.
- Chuyeån ñieàu khieån.
Caùc chi tieát thieát laäp leänh:
Rn :Thanh ghi R0 ñeán R7 cuûa bank thanh ghi ñöôïc choïn.
Data : 8 bit ñòa chæ vuøng döõ lieäu beân trong. Noù coù theå laø vuøng RAM döõ
lieäu trong (0-127) hoaëc caùc thanh ghi chöùc naêng ñaëc bieät.
@Ri : 8 bit vuøng RAM döõ lieäu trong (0-125) ñöôïc ñaùnh giaù ñòa chæ giaùn
tieáp qua thanh ghi R0 hoaëc R1.
#data : Haèng 8 bit chöùc trong caâu leänh.
#data 16 : Haèng 16 bit chöùa trong caâu leänh.
Addr16 : 16 bit ñòa chæ ñích ñöôïc duøng trong leänh LCALL vaø LJMP.
Addr11 : 11 bit ñòa chæ ñích ñöôïc duøng trong leänh LCALL vaø AJMP.
Rel : Byte offset 8 bit coù daáu ñöôïc duøng trong leänh SJMP vaø nhöõng
leänh nhaûy coù ñieàu kieän.
Bit : Bit ñöôïc ñònh ñòa chæ tröïc tieáp trong RAM döõ lieäu noäi hoaëc caùc
thanh ghi chöùc naêng ñaëc bieät.
a. Nhoùm leänh xöû lyù soá hoïc:
ADD A,Rn (1byte, 1 chu kyø maùy) : coäng noäi dung thanh ghi Rn vaøo thanh ghi
A.
ADD A,data (2,1): Coäng tröïc tieáp 1 byte vaøo thanh ghi A.
ADD A,@Ri (1,1): Coäng giaùn tieáp noäi dung RAM chöùa taïi ñòa chæ ñöôïc
khai baùo trong Ri vaøo thanh ghi A.
ADD A,#data (2,1):Coäng döõ lieäu töùc thôøi vaøo A.
ADD A,Rn (1,1): Coäng thanh ghi vaø côø nhôù vaøo A.
ADD A,data (2,1): Coäng tröïc tieáp byte döõ lieäu vaø côø nhôù vaøo A.
ADDC A,@Ri (1,1): Coäng giaùn tieáp noäi dung RAM vaø côø nhôù vaøo A.
ADDC A,#data (2,1): Coäng döõ lieäu töùc thôøi vaø côø nhôù vaøo A.
SUBB A,Rn (1,1): Tröø noäi dung thanh ghi A cho noäi dung thanh ghi Rn
vaø côø nhôù.
23
SUBB A,data (2,1): Tröø tröïc tieáp A cho moät soá vaø côø nhôù.
SUBB A,@Ri (1,1): Tröø giaùn tieáp A cho moät soá vaø côø nhôù.
SUBB A,#data (2,1): Tröø noäi dung A cho moät soá töùc thôøi vaø côø nhôù.
INC A (1,1): Taêng noäi dung thanh ghi A leân 1.
INC Rn (1,1): Taêng noäi dung thanh ghi Rn leân 1.
INC data (2,1): Taêng döõ lieäu tröïc tieáp leân 1.
INC @Ri (1,1): Taêng giaùn tieáp noäi dung vuøng RAM leân 1.
DEC A (1,1): Giaûm noäi dung thanh ghi A xuoáng 1.
DEC Rn (1,1): Giaûm noäi dung thanh ghi Rn xuoáng 1.
DEC data (2,1): Giaûm döõ lieäu tröïc tieáp xuoáng 1
DEC @Ri (1,1): Giaûm giaùn tieáp noäi dung vuøng RAM xuoáng 1.
INC DPTR (1,2): Taêng noäi dng con troû döõ lieäu leân 1.
MUL AB (1,4): Nhaân noäi dung thanh ghi A vôùi noäi dung thanh ghi B.
DIV AB (1,4): Chia noäi dung thanh ghi A cho noäi dung thanh ghi B.
DA A (1,1,): hieäu chænh thaäp phaân thanh ghi A.
24
XRL data,A (2,1): XOR moät döõ lieäu tröïc tieáp vôùi thanh ghi A.
XRL dara,#data (3,1): XOR moät döõ lieäu tröïc tieáp vôùi moät döõ lieäu töùc thôøi.
SETB C (1,1): Ñaët côø nhôù.
SETB bit (2,1): Ñaët moät bit tröïc tieáp.
CLR A (1,1): Xoùa thanh ghi A.
CLR C (1,1): Xoùa côø nhôù.
CPL A (1,1): Buø noäi dung thanh ghi A.
CPL C (1,1): Buø côø nhôù.
CPL bit (2,1): Buø moät bit tröïc tieáp.
RL A (1,1): Quay traùi noäi dung thanh ghi A.
RLC A (1,1): Quay traùi noäi dung thanh ghi A qua côø nhôù.
RR A (1,1): Quay phaûi noäi dung thanh ghi A.
RRC A (1,1): Quay phaûi noäi dung thanh ghi A qua côø nhôù.
SWAP (1,1): Quay traùi noäi dung thanh ghi A 1 nibble (1/2byte).
c. Nhoùm leänh chuyeån döõ lieäu:
MOV A,Rn (1,1):Chuyeån noäi dung thanh ghi Rn vaøo thanh ghi A.
MOV A,data (2,1): Chuyeån döõ lieäu tröïc tieáp vaøo thanh ghi A.
MOV A,@Ri (1,1): Chuyeån döõ lieäu giaùn tieáp vaøo thanh ghi A.
MOV A,#data (2,1): Chuyeån döõ lieäu töùc thôøi vaøo thanh ghi A.
MOV Rn,data (2,2): Chuyeån döõ lieäu tröïc tieáp vaøo thanh ghi Rn.
MOV Rn,#data (2,1): Chuyeån döõ lieäu töùc thôøi vaøo thanh ghi Rn.
MOV data,A (2,1): Chuyeån noäi dung thanh ghi A vaøo moät döõ lieäu tröïc
tieáp.
MOV data,Rn (2,2): Chuyeån noäi dung thanh ghi Rn vaøo moät döõ lieäu tröïc
tieáp.
MOV data,data (3,2): Chuyeån moät döõ lieäu tröïc tieáp vaøo moät döõ lieäu tröïc
tieáp.
MOV data,@Ri (2,2): Chuyeån moät döõ lieäu giaùn tieáp vaøo moät döõ lieäu giaùn
tieáp.
MOV data,#data (3,2): Chuyeån moät döõ lieäu töùc thôøi vaøo moät döõ lieäu tröïc
tieáp.
MOV @Ri,A (1,1): Chuyeån noäi dung thanh ghi A vaøo moät döõ lieäu giaùn
tieáp.
MOV @Ri,data (2,2): Chuyeån moät döõ lieäu tröïc tieáp vaøo moät döõ lieäu giaùn
tieáp.
MOV @Ri,#data (2,1): Chuyeån döõ lieäu töùc thôøi vaøo döõ lieäu giaùn tieáp.
MOV DPTR,#dataù6 (3,2): Chuyeån moät haèng 16 bit vaøo thanh ghi con troû döõ
lieäu.
25
MOV C,bit (2,1): Chuyeån moät bit tröïc tieáp vaøo côø nhôù.
MOV bit,C (2,2): Chuyeån côø nhôù vaøo moät bit tröïc tieáp.
MOV A,@A+DPTR (1,2): Chuyeån byte boä nhôù chöông trình coù ñòa chæ laø
@A+DPRT vaøo thanh ghi A.
MOVC A,@A+PC (1,2): Chuyeån byte boä nhôù chöông trình coù ñòa chæ laø
@A+PC vaøo thanh ghi A.
MOV A,@Ri (1,2): Chuyeån döõ lieäu ngoaøi (8 bit ñòa chæ) vaøo thanh ghi A.
MOVX A,@DPTR (1,2): Chuyeån döõ lieäu ngoaøi (16 bit ñòa chæ) vaøo thanh ghi A.
MOVX @Ri,A (1,2): Chuyeån noäi dung A ra döõ lieäu ngoaøi (8 bit ñòa chæ).
MOVX @DPTR,A (1,2): Chuyeån noäi dung A ra döõ lieäu beân ngoaøi (16 bit ñòa
chæ).
PUSH data (2,2) : Chuyeån döõ lieäu tröïc tieáp vaøo ngaên xeáp vaø taêng SP.
POP data (2,2) : Chuyeån döõ lieäu tröïc tieáp vaøo ngaên xeáp vaø giaûm SP.
XCH A,Rn (1,1) : Trao ñoåi döõ lieäu giöõa thanh ghi Rn v2 thanh ghi A.
XCH A,data (2,1) : Trao ñoåi giöõa thanh ghi A vaø moät döõ lieäu tröïc tieáp.
XCH A,@Ri (1,1) : Trao ñoåi giöõa thanh ghi A vaø moät döõ lieäu giaùn tieáp.
XCHD A,@R (1,1) : Trao ñoåi giöõa nibble thaáp (LSN) cuûa thanh ghi A vaø LSN
cuûa döõ lieäu giaùn tieáp.
d. Nhoùm leänh chuyeàn ñieàu khieån:
ACALL addr11 (2,2): Goïi chöông trình con duøng ñòa chì tuyeät ñoái.
LCALL addr16 (3,2): Goïi chöông trình con duøng ñòa chæ daøi.
RET (1,2): Trôû veà töø leänh goïi chöông trình con.
RET1 (1,2): Trôû veà töø leänh goïi ngaét.
AJMP addr11 (2,2): Nhaûy tuyeät ñoái.
LJMP addr16 (3,2): Nhaûy daøi.
SJMP rel (2,2):Nhaûy ngaén.
JMP @A+DPTR (1,2): Nhaûy giaùn tieáp töø con troû döõ lieäu.
JZ rel (2,2): Nhaûy neáu A=0.
JNZ rel (2,2): Nhaûy neáu A khoâng baèng 0.
JC rel (2,2): Nhaûy neáu côø nhôù ñöôïc ñaët.
JNC rel (2,2): Nhaûy neáu côø nhôù khoâng ñöôïc ñaët.
JB bit,rel (3,2): Nhaûy töông ñoái neáu bit tröïc tieáp ñöôïc ñaët.
JNB bit,rel (3,2):Nhaûy töông ñoái neáu bit tröïc tieáp khoâng ñöôïc ñaët.
JBC bit,rel (3,2): Nhaûy töông ñoái neáu bit tröïc tieáp ñöôïc ñaët , roài xoùa
bit.
CJNE A,data,rel (3,2): So saùnh döõ lieäu tröïc tieáp vôùi A vaø nhaûy neáu khoâng
baèng.
26
CJNE A,#data,rel (3,2): So saùnh döõ lieäu töùc thôøi vôùi A vaø nhaûy neáu khoâng
baèng.
CJNE Rn,#data,rel (3,2): So saùnh döõ lieäu töùc thôøi vôùi noäi dung thanh ghi Rn vaø
nhaûy neáu khoâng baèng.
CJNE @Ri,#data,rel (3,2): So saùnh döõ lieäu töùc thôøi vôùi döõ lieäu giaùn tieáp vaø
nhaûy neáu khoâng baèng.
DJNZ Rn,rel (2,2): Giaûn thanh ghi Rn vaø nhaûy neáu khoâng baèng.
DJNZ data,rel (3,2): Giaûm döõ lieäu tröïc tieáp vaø nhaûy neáu khoâng baèng.
Maïch
Chuyeån ñoåi Chæ thò
ño
_ Khoái chuyeån ñoåi: laøm nhieäm vuï nhaän tröïc tieáp caùc ñaïi löôïng vaät lyù ñaëc tröng
cho ñoái töôïng caàn ño bieán ñoåi caùc ñaïi löôïng thaønh caùc ñaïi löôïng vaät lyù thoáng
nhaát(doøng ñieän hay ñieän aùp) ñeå thuaän lôïi cho vieäc tính toaùn.
_ Maïch ño: coù nhieäm vuï tính toaùn bieán ñoåi tín hieäu nhaän ñöôïc töø boä
chuyeån ñoåi sao cho phuø hôïp vôùi yeâu caàu theå hieän keát quaû ño cuûa boä chæ thò.
_ Khoái chæ thò:laøm nhieäm vuï bieán ñoåi tín hieäu ñieän nhaän ñöôïc töø maïch ño
ñeå theå hieän keát quaû ño.
2. Heä thoáng ño löôøng soá
Heä thoáng ño löôøng soá ñöôïc nhoùm aùp duïng ñeå thöïc hieän luaän vaên naày vì
coù caùc öu ñieåm:caùc tín hieäu töông töï qua bieán ñoåi thaønh caùc tín hieäu soá coù caùc
xung roû raøng ôû traïng thaùi 0,1 seõ giôùi haïn ñöôïc nhieàu möùc tín hieäu gaây sai soá
.Maët khaùc ,heä thoáng naøy töông thích vôùi döõ lieäu cuûa maùy tính,qua giao tieáp vôùi
maùy tính öùng duïng roäng raõi trong kyõ thuaät.
27
a. Sô ñoà khoái
Cheá
Ñaïi löôïng Caûm
bieán bieán
Doàn Vi xöû Hieånthò
Tín
keânh lyù
hieäu ño
töông
ADC
töï
Cheá Söû
Caûm
Ñaïi löôïng bieán bieán
Ñieàu khieån choïn dung
Tín
hieäu ño
Chöông
trình
28
+ Nhieät ñieän trôû baùn daãn
+ Caûm bieán thaïch anh.
Vieäc söû duïng caùc IC caûm bieán nhieät ñeå ño nhieät ñoä laø moät phöông phaùp
thoâng duïng ñöôïc nhoùm söû duïng trong taäp luaän vaên naày,neân ôû ñaây chæ giôùi thieäu
veà IC caûm bieán nhieät.
Nguyeân lyù hoaït ñoäng chung cuûa IC ño nhieät ñoä
IC ño nhieät ñoä laø moät maïch tích hôïp nhaän tín hieäu nhieät ñoä chuyeån thaønh
tín hieäu ñieän döôùi daïng doøng ñieän hay ñieän aùp.Döïa vaøo ñaëc tính raát nhaïy cuûa
caùc baùn daãn vôùi nhieät ñoä,taïo ra ñieän aùp hoaëc doøng ñieän,tæ leä thuaän vôùi nhieät ñoä
tuyeät ñoái.Ño tín hieäu ñieän ta bieát ñöôïc giaù trò cuûa nhieät ñoä caàn ño.Söï taùc ñoäng
cuûa nhieät ñoä taïo ra ñieän tích töï do vaø caùc loå troáng trong chaát baùn daãn . Baèng söï
phaù vôõ caùc phaân tö û, böùt caùc electron thaønh daïng töï do di chuyeån qua vuøng caáu
truùc maïng tinh theå taïo söï xuaát hieän caùc loã troáng . Laøm cho tæ leä ñieän töû töï do vaø
loå troáng taêng leân theo qui luaät haøm muõ vôùi nhieät ñoä .
Ñaëc tính cuûa moät soá IC ño nhieät ñoä thoâng duïng
+AÏD590
Ngoõ ra laø doøng ñieän.
Ñoä nhaïy 1A/0K.
Ñoä chính xaùc +40C.
Nguoàn cung caáp Vcc = 4 – 30V.
Phaïm vi söû duïng –55oc ñeán 150oc
+ LX5700
Ngoõ ra laø ñieän aùp.
Ñoä nhaïy –10mv/0K.
Phaïm vi söû duïng –550C – 1500C.
+ LM135,LM335
Ngoõ ra laø ñieän aùp.
Ñoä nhaïy 10mv/0C.
Sai soá cöïc ñaïi 1,50C khi nhieät ñoä lôùn hôn 1000C.
Phaïm vi söû duïng –550C – 1500C.
29
hieäu aâm thanh…Ñeå keát noái giöõa nguoàn tín hieäu töôïng töï vôùi caùc heä thoáng xöû lyù
soá ngöôøi ta duøng caùc maïch chuyeån ñoåi töông töï sang soá(ADC) nhaèm bieán ñoåi
tín hieäu töông töï sang soá hoaëc trong tröøông hôïp ngöôïc laïi caàn bieán ñoåi tín hieäu
soá sang töông töï thi duøng caùc maïch DAC (Digital Analog Converter).
II GIÔÙI THIEÄU VEÀ IC ADC0809
Boä ADC 0809 laø moät thieát bò CMOS tích hôïp vôùi moät boä chuyeån ñoåi töø
töông töï sang soá 8 bit, boä choïn 8 keânh vaø moät boâ logic ñieàu khieån töông thích.
Boä chuyeån ñoåi AD 8 bit naøy duøng phöông phaùp chuyeån ñoåi xaáp xæ tieáp. Boä
choïn keânh coù theå truy xuaát baát keành naøo trong caùc ngoõ vaøo töông töï moät caùnh
ñoäc laäp.
Thieát bò naøy loaïi tröø khaû naêng caàn thieát ñieàu chænh ñieåm 0 beân ngoaøi vaø
khaû naêng ñieàu chænh tæ soá laøm troøn ADC 0809 deã daøng giao tieáp vôùi caùc boä vi
xöû lyù.
1/ Sô ñoà chaân ADC 0809:
IN2 IN1 IN0 A B C ALE 2-1 2-2 2-3 2-4 2-8 REF 2-6
28 15
ADC0809
1 14
IN3 IN4 IN5 IN6 IN7 START EOC 2-5 OE CLK VCC REF GND 2-7
30
. Toång sai soá chöa chænh ñònh ± ½ LSB; ± 1 LSB
. Thôøi gian chuyeån ñoåi: 100µs ôû taàn soá 640 kHz
. Nguoàn cung caáp + 5V
. Ñieän aùp ngoõ vaøo 0 – 5V
. Taàn soá xung clock 10kHz – 1280 kHz
. Nhieät ñoä hoaït ñoäng - 40oC ñeán 85oC
. Deã daøng giao tieáp vôùi vi xöû lyù hoaëc duøng rieâng
. Khoâng caàn ñieàu chænh zero hoaëc ñaày thang
3/ Nguyeân lyù hoaït ñoäng:
ADC 0809 coù 8 ngoõ vaøo töông töï, 8 ngoõ ra 8 bit coù theå choïn 1 trong 8 ngoõ
vaøo töông töï ñeå chuyeån ñoåi sang soá 8 bit.
Caùc ngoõ vaøo ñöôïc choïn baèng caùch giaûi maõ. Choïn 1 trong 8 ngoõ vaøo töông
töï ñöôïc thöïc hieän nhôø 3 chaân ADDA , ADDB , ADDC nhö baûng traïng thaùi sau:
Sau khi kích xung start thì boä chuyeån ñoåi baét ñaàu hoaït ñoäng ôû caïnh xuoáng
cuûa xung start, ngoõ ra EOC seõ xuoáng möùc thaáp sau khoaûng 8 xung clock (tính töø
caïnh xuoáng cuûa xung start). Luùc naøy bit cô troïng soá lôùn nhaát (MSB) ñöôïc ñaët
leân möùc 1, taát caû caùc bit coøn laïi ôû möùc 0, ñoàng thôøi taïo ra ñieän theá coù giaù trò
Vref/2, ñieän theá naøy ñöôïc so saùnh vôùi ñieän theá vaøo in.
+ Neáu Vin > Vref/2 thì bit MSB vaãn ôû möùc 1.
+ Neáu Vin < Vref/2 thì bit MSB vaãn ôû möùc 0.
Töông töï nhö vaäy bit keá tieáp MSB ñöôïc ñaët leân 1 vaø taïo ra ñieän theá coù giaù trò
Vref/4 vaø cuõng so saùnh vôùi ñieän aùp ngoõ vaøo Vin. Quaù trình cöù tieáp tuïc nhö vaäy
cho ñeán khi xaùc ñònh ñöôïc bit cuoái cuøng. Khi ñoù chaân EOC leân möùc 1 baùo cho
bieát ñaõ keát thuùc chuyeån ñoåi.
Trong suoát quaù trình chuyeån ñoåi chaân OE ñöôïc ñaët ôû möùc 1, muoán ñoïc döõ lieäu
ra chaân OE xuoáng möùc 0.
31
Trong suoát quaù trình chuyeån ñoåi neáu coù 1 xung start taùc ñoäng thì ADC seõ ngöng
chuyeån ñoåi.
Maõ ra N cho moät ngoõ vaøo tuøy yù laø moät soá nguyeân.
256.(VIN − Vref ( − ) )
N=
Vref ( + ) − Vref ( − )
1
Taàn soá dao ñoäng cuûa maïch laø f = 560
3RC
Taàn soá dao ñoäng chuaån laø 600 kHz
1
Suy ra 640 =
3RC
Vôùi R töø 100Ω ñeán vaøi kΩ choïn R =1 kΩ ⇒ C = 500 PF.
*****************************************************
*****************************************************
32
KHOÁI HIEÅN THÒ BOÄ BIEÁN ÑOÅI ADC
Heä hoaït ñoäng theo chöông trình ñaõ naïp treân ROM , qua söï ñieàu khieån cuaû MCU
8051 phaàn caûm bieán nhieät ñaët ôû nôi ta muoán ño ,noù seõ ñoï tín hieäu cuûa nhieät ñoä qua
möùc ñieän aùp tín hieäu analog ñöôïc chuyeån thaønh tín hieäu soá vaø giao tieáp vôùi heä thoáng
qua data bus.
Treân cô sôû chöông chình ñöôïc naïp treân ROM vaø tín hieäu nhaän ñöôïc , MCU cho
pheùp thieát bò ngoaïi vi hoaït ñoäng nhö : hieån thò giaù trò nhieät ñoä töông öùng ñieàu khieån
nhieät ñoä thích hôïp.
II .SÔ LÖÔÏC CHÖÙC NAÊNG CAÙC BOÄ PHAÄN :
_ Vi xöû lyù 8051 laø phaàn töû chính xöû caùc thoâng tin nhaäp vaøo vaø ñöa ra caùc quyeát
ñònh ñieài khieån.
_ Phím laø boä phaän giao tieáp ngoaïi vi , cho pheùp nhaäp caùc thoâng soá baèng tay.
_ Maïch hieån thò , hieån thò caùc giaù trò ñaët vaø giaù trò ño.
_ Maïch caûm bieán duøng ñeå khuyeách ñaò tín hieäu vaø buø nhieät.
_ Maïch coâng suaát duøng ñeå ñoùng môû nguoàn coâng suaát.
1VCC_CIRCLE
+V
III . THIEÁT KEÁ CHI TIEÁT :
1 . Thieát keá phím :
Caùc phím thieát keá ñôn giaûn goàm coù 3 phím : R1 R2 R3
• Phím taêng 4.7k 4.7k 4.7k
• Phím giaûm.
• Phím chöùc naêng.
P1.0
P1.1
P1.2
33
2 . Khoái maïch caûm bieán :
VCC
1
+V -VCC
U1
1 4+ LM358
2 1 R3 R5
VR
1 5% 3 -VCC
2
C1 U3
3 1 4+ LM358
8 +VCC
2 IN0
3 1
-VCC 8
VCC1 VCC
1 U2A R6
+V 2 4+ LM358
R4
3 1
1 8
LM335 2 VR1
1 1 5%
+VCC
3
C2
1
34
⎛ R6 ⎞⎛ R5 ⎞ R5 R5
V0 = ⎜ ⎟⎜1 + ⎟ Vi2 - Vi1 = ( ) (Vi2 – Vi1 ) =Av(Vi2 – Vi1)
⎝ R6 + R 4 ⎠⎝ R3 ⎠ R3 R3
Suy ra ñieän aùp ngoõ ra seõ thay ñoåi Av*10mV khi nhieät ñoä thay ñoåi 10C .ñoä
phaân giaûi caàn laø 0.50C neân ñieän aùp thay ñoåi khi nhieät ñoä thay ñoåi 10C,phaûi baèng hai
laàn ñoä phaân giaûi cuûa AD0804 :
Av*10mV = 2*19.6mV
Ö Av= 3.92
Ö Choïn R5 = 39 K vaø R3 = 10K
Caân chænh :
Chænh VR1 sao cho VI cuûa U3 =2.73 + 0.01* t0C
Nhöng trong thöïc teá ñeå chính xaùc ,nhuùng LM335 vaøo nöôùc daù ñang tan
0
(0 C) . Chænh VR2 sao cho V2 cuûa U2 = 2.73V.
Thieát keá boä caûm bieán nhieät :
Taàm laøm vieäc trong heä thoáng maïch töø 0z1000C.
Ñeå ño nhieät ñoä chính xaùc phaûi coù caùc ñaàu ño ñaëc bieät. Ñaàu ño döôùi
daïng vi maïch LM335 laø moät ñaàu ño ñöôn giaûn vaø chính xaùc vôùi giaù thaønh laïi reû .
LM335 coù ñoä bieán thieân ñieän aùp theo nhieät ñoä laø 10mV/0K ,coù moät daõy ñoä chính xaùc
khaù cao vaø caûm bieán nhieät toát ôû nhieät ñoä 250C coù ñoä sai soá nhoû hôn 10C.vôùi taàm ño töø
nhieät ñoä 0z1000C, ngoõ ra cuûa caûm bieán naøy tuyeán tính.
Caùc tính chaát cuûa caûm bieán LM335 :
• Chia ñoä tröïc teáp theo 0K
• Ñoä chính xaùc ban ñaàu laø 10C
• Trôû khaùng ñoäng < 1Ω
• Taàm nhieät ñoä roäng .
• Khoaûng ño 2000C
35
500C (3230K ) aùp ra 3.23V 3.23
1000C (3730K ) aùp ra 3.73V
2.98
+5V 2.78
2.73
Nhö vaäy taàn bieán thieân ñieän aùp öùng vôùi nhieät ñoä töø 0z1000C laø 1V
Ñieän aùp ra töø boä caûm bieán LM335 theo coâng thöùc
VT (0K) = 2.73 =0.01T(0K) (mV)
Ñieän aùp ngoõ ra hoaït ñoäng ôû ñieàu kieän Tc =250C ,IR = 1mA
Maët khaùc : 400µA<IR<5mA
5V − 2.98V
< = > 400µA< < 5mA
R2
<= > 1.8K <R2 < 22.5K
5V − 2.98V
maø R2 = = 2.02 K
1mA
neân choïn R2 =2.2K vaø choïn moät bieán trôû VR2 =20K ñeå chænh tinh.
3 /Maïch hieån thò :
Tính giaù trò ñòeân trôû haïn doøng Rhd noái vôùi 74LS47 :
Moãi ñoaïn cuûa led caøn doøng khoaûng 10mA ñeå saùng , ñieän aùp rôi treân led khoaûng
Vled=2V . Nguoàng cung caáp Vcc = 5V. Caùc thoâng soá ngoõ ra cuûa IC7447 laø :
Vol = 0.4V, Iol = 40mA .
Giaû söû , ta muoán caùc led saùng vôùi moät doøng Iled =10mA vaäy :
Rhd= (Vcc – V LED – VOL)/ILED => RHD = (5V-1.8V –0.4V )/10mA Î RHD = 280Ω
thöïc teá khi thieát keá thöôøng cho moãi LED saùng vôùi doøng ILED töông öùng vôùi giaù trò
ñieän trôû haïn doøng laø: RHD =330Ω.
36
1 Q3
VCC
1 Q1 1 Q2 P0. PNP
P0. PNP P0. PNP Rb
6
Rb
5
Rb 4
A101 A101 A101
5 5 5
DISP3
DISP1 DISP2
Gnd
Gnd Gnd
8 8 8
5 5 5
3 abcdefg. 3 abcdefg.
3 abcdefg.
U3
U2 U1 74LS47
74LS47 74LS47 P0. A3 g
P0. A3 g P0. A3 g P
00. A2 f
P A2 f A2 f
00. A1 e P
00. A1 e P0.
1
A1
A0
e
d
P0.
1 A0 d
c
P0.
1 A0 d
c P
20. c
b
P0.
2 b
a
P0.
2 b
a 3 a
3 test
3 test
test
RBI RBO
RBI RBO RBI RBO
VCC
Choïn RB =1.2K Ω
37
Duøng coâng taéc ñieän töû ñeå ñoùng ngaét nguoàn ñieän cung caùp cho maïch ñieàu khieån
khi coù tín hieäu ngoõ vaøo P3.2 .Boä gheùp quang ñöôïc söû duïng vì söï caùch ly toát veà ñieän
giöõa maïch ñieàu khieån vaø maïch coâng suaát .
TAÛI
**********************************************************************
**********************************************************************
38
PHAÀNC : THIEÁT KEÁ CHÖÔNG TRÌNH
CHÖÔNG1 : GIAÛI THUAÄT CHÖÔNG TRÌNH
CHÖÔNG TRÌNH CHÍNH
Start
N N Taêng t0
Ñoïc ADC
P1.2 =0 ? Y Ktra t0 ñaët Y
Giaûm t0 >= t0 min
Hieäu chænh
N N Giaûm t0
39
GIAÛI THUAÄT CHÖÔNG TRÌNH ÑOÅI SOÁ NHÒ PHAÂN RA BCD
Baét ñaàu
Thoaùt
40
GIAÛI THUAÄT XUAÁT LED
Baét ñaàu
Thoaùt
41
GIAÛI THUAÄT CHÖÔNG TRÌNH ÑOÏC A/D
Baét ñaàu
Thoaùt
42
GIAÛI THUAÄT CHÖÔNH TRÌNH SO SAÙNH VAØ ÑIEÀU KHIEÅN
Baét ñaàu
Ño < Ñaët
Thoaùt
43
GIAÛI THUAÄT CHÖÔNG TRÌNH TAÊNG GIAÛM
Vaøo
YES
44
45