Вы находитесь на странице: 1из 37

Ñoà aùn moân hoïc VÑK

LÅÌI NOÏI ÂÁÖU

Ngaøy nay ñaïi ña soá caùc lónh vöïc saûn xuaát, ñieàu khieån, giaùm saùt, ño löôøng…ñeàu ñöôïc
trang bò heä thoáng töï ñoäng hoùa. Moät trong soá vi maïch ñöôïc söû duïng ñoù laø kyõ thuaät vi ñieàu khieån.
Nhôø tính naêng öu vieät cuûa boä vi ñieàu khieån nhö: khaû naêng laäp trình phuø hôïp vôùi thieát keá nhoû vaø
lôùn cuõng nhö giao tieáp vôùi caùc thieát bò ngoaïi vi vaø maùy tính ñaõ ñem laïi söï hoaøn haûo, ñoä chính
xaùc vaø tính meàm deûo cao thoâng qua giao tieáp giöõa ngöôøi vaø maùy.
Vi ñieàu khieån quaûn lyù vaø ñieàu khieån hoaït ñoäng cuûa heä thoáng thoâng qua phaàn meàm, nhôø
vaäy maø ta coù theå môû roäng vaø thay ñoåi hoaït ñoäng moät caùch deã daøng baèng caùch thay ñoåi moät soá
thoâng soá cuûa chöông trình. Vi ñieàu khieån hoaït ñoänh theo chöông trình ñaõ naïp saün,ñoïc caùc tín
hieäu töø beân ngoaøi ñöa vaøo sau ñoù löu tröõ vaø xöû lyù, treân cô sôû ñoù ñöa ra caùc thoâng baùo, tín hieäu
ñieàu khieån caùc thieát bò beân ngoaøi hoaït ñoäng theo ñuùng thoâng soá vaø yeâu caàu cuûa heä thoáng.
Heä thoáng ñieän töû soá söû duïng boä vi ñieàu khieån vaø maùy tính trong caùc daây chuyeàn saûn xuaát
coâng nghieäp, thöïc hieän nhieäm vuï ñieàu khieån vaø giaùm saùt heä thoáng. Ngoaøi ra vi ñieàu khieån cuõng
coù maët trong caùc saûn phaåm coâng nghieäp vaø tieâu duøng nhö: loø vi ba, loø söôõi, maùy giaët, heä thoáng
caûnh baùo vaø giaùm saùt cuûa caùc phöông tieän giao thoâng… vaø trong nhieàu thieát bò coâng nghieäp
khaùc.
Trong taäp ñoà aùn naøy em xin pheùp ñöôïc giôùi thieäu moät heä thoáng âiãöu khiãøn maïy
giàût söû duïng chip vi ñieàu khieån 8051.
Vieäc ñònh höôùng xaây ñöïng ñeà taøi naøy xuaát phaùt töø nhu caàu thöïc teá trong ñôøi soáng hiãûn
âaûi. Noäi dung cuûa ñoà aùn coù 2 phaàn:
+ Phaàn I : Cô sôû lyù thuyeát. Bao goàm kieán truùc cuûa chip vi ñieàu khieån 8051
+ Phaàn II: Tính toaùn vaø thieát keáá trình baøy veà thieát keá phaàn cöùng vaø phaàn meàm heä thoáng.
Qua noå löïc nghieân cöùu, tìm hieåu cuûa baûn thaân cuøng vôùi söï höôùng daãn taän tình chu ñaùo
cuûa Thaày giaùo Th.S Leâ Xöùng em ñaõ hoaøn thaønh ñoà aùn naøy.
Vôùi khoaûng thôøi gian coù haïn cuõng nhö trình ñoä kieán thöùc em coøn haïn cheá neân em tin chaéc
raèng heä thoáng naøy hoaït ñoäng chöa ñöôïc toái öu vaø cuõng seû khoâng traùnh khoûi nhöõng thieáu soùt.
Em kính mong Thaày Coâ thoâng caûm, giuùp ñôõ vaø chæ baûo theâm cho em nhöõng kinh nghieäm quyù
baùu.

Em xin chaân thaønh caûm ôn.

1
Ñoà aùn moân hoïc VÑK

Chöông 1:GIÔÙI THIEÄU ÑEÀ TAØI


1.1 Giôùi thieäu:
Trong raát nhieàu öùng duïng , nhö maùy in , maùy ATM , robotíc , Cd player ,disk driver , …
caàn ñeán ñoäng cô ñieän moät chieàu . Trong da soâ caùc uùng duïng ñoù , ñoäng cô ñoài hoûi phaûi coù boä
ñieàu khieån toát nhö : ñieàu chænh ñöôïc toác ñoä , oån ñònh ñöôïc toác ñoä , ñaûo chieàu quay , ñoä oån ñònh
toát , hieäu suaát cao , nhoû goïn . Ñoù laø nhöõng ñoøi hoûi heát söc phöùc taïp .Chính vì vaïy trong ñeà taøi
naøy em xin ñua ra phöông phaùp “ ñiieâuø chænh toác ñoä ñoäng cô baøng phöông phaùp baêm xung ,
söû duïng vi ñieàu khieån AT89C51 vaø vi maïch LMD 18200 “ nhaøm ñaät ñöôïc toái ña nhöõng ñoøi hoi
treân . Neáu giaûi queát ñöôïc vaán ñeà thì seõ caûi thieän ñeán chaát löôïng cuûa caùc maùy moùc coù söû duïng
ñoäng cô dc raát lôùn . Nhö : ñieàu khieûn maùy CNC , maùy ñóa , robot , ….

1.2Cô baûn veà ñieàu khieån ñoäng cô :


Coù raát nhieàu phöông phaùp ñeå ñieàu khieån ñoäng cô dc , nhöng ngöôøi ta thöôøng duøng
phöông phaùp ñieàu khieån caàu .Caáu truùc maïch nhö hình veõ :

Vôùi maïch naøy coù theå vöøa ñieàu chænh toác ñoä ñoäng cô baèng xung , vöøa ñaûo ñöôïc chieàu
quay , hieäu suaát cao .Vi maïch LMD18200 tích hôïp saün maïch caàu ñieàu khieån ñoäng cô coù theå
hoaït ñoäng vôùi taàn soá 1Khz .Neáu coù theâm tuï 10nF chaân Bootstrap thì coù theå hoaït ñoäng leân tôùi
taàn soá 500Khz .Söû duïng vi ñieàu khieån 89C51 ñeå taïo xung ñieàu khieån LMD18200.
1.3 Phöông phaùp ñieàu cheá ñoä roäng xung (PWM):
Ñaây laø phöông phaùp ñöa ra ñoä roäng xung thay ñoåi töø ñoù ñieàu khieån ñöôïc coâng suaát treân
taûi thay ñoåi.

2
Ñoà aùn moân hoïc VÑK

MAÙY TÍNH

KHOÁI HIEÅN KHOÁI ÑK


THÒ ÑCÔ
ÑC
KHOÁI VÑK 89C51

KHOÁI ÑIEÀU CAÛM BIEÁN


CHÆNH

1.4 Giôùi thieäu caùc chöùc naêng chính cuûa maïch:


-Khoái hieån thò goàm 8 led, 4led hieån thò toác ñoä thöïc, 4led hieån thò toác ñoä caøi ñaët, coù caùc
led bieåu thò traïng thaùi chaïy, döøng, quay thuaän , quay nghòch, vaø coù loa baùo quaû taûi
-Khoái ñieàu chænh goàm 4 coâng taéc laøm caùc coâng vieäc :start/stop, chieàu thuaän , chieàu
nghòch, taêng toác , giaûm toác
-Khoái ñoäng cô: laø vi maïch LDM18200 nhaän caùc tín hieäu ñieàu khieån töø vi ñieàu khieån deå
ñieàu chænh ñoäng cô
-Khoái caûm bieán: laø boä thu phaùt tin hoàng ngoaïi ñeå nhaän bieát toác ñoä quay cuûa ñoäng cô vaø
phaûn hoài veà vi ñieàu khieån ñeå hieäu chænh ñoäng cô ñoøng vôùi toác ñoä ñaët

3
Ñoà aùn moân hoïc VÑK

Chöông 2
GIÔÙI THIEÄU CAÙC VI MAÏCH LIEÂN QUAN

2.1 Toång quan veà kyõ thuaät vi ñieàu khieån:( xem chi tieát ôû phuï luïc I)
2.1.1 Khaùi quaùt chung veà boä vi ñieàu khieån:
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 chöông trình ñieàu khieån ñaõ
naïp saün beân trong chip.
2.1.2 Lòch söû phaùt trieån cuûa vi ñieàu khieån:
Boä vi ñieàu khieån thöïc ra laø moät loaïi vi xöû lí trong taäp hôïp caùc boä vi xöû lyù noùi chung. Boä
vi ñieàu khieån ñöôïc phaùt trieån töø boä vi xöû lí, töø nhöõng naêm 1970 do söï phaùt trieån vaø hoaøn thieän
veà coâng ngheä vi ñieän töû döïa treân kyõ thuaät MOS (Metal-Oxide-Semiconductor), möùc ñoä tích
hôïp cuûa caùc linh kieän baùn daãn trong moät chip ngaøy caøng cao.
2.1.3 Sô ñoà khoái cuûa moät boä vi ñieàu khieån:
Sô ñoà khoái chung cuûa haàu heát caùc boä vi ñieàu khieån bao CPU, boä nhôù ROM hay EPROM
vaø RAM, maïch giao tieáp, maïch giao tieáp song song, boä ñònh thôøi gian, heä thoáng ngaét vaø caùc
BUS ñöôïc tích hôïp treân cuøng moät chip.

Nguoàn ñoàng Ngaét ngoaøi Thieát bò Thieát bò


hoà ngoaøi noái tieáp song

Ñoàng hoà noäi

Timers Ñieàu khieån Giao tieáp Giao tieáp


ngaét noái tieáp song

CPU Bus döõ lieäu, ñòa chæ, ñieàu khieån

RAM ROM

Hình 1.1: Sô ñoà khoái cuûa boä vi ñieàu khieån

2.2 Kieán truùc cuûa boä vi ñieàu khieån 8051:


IC vi ñieàu khieån 8051/8031 thuoäc hoï MCS51 coù caùc ñaët ñieåm sau :
- 4 kbyte ROM (ñöôïc laäp trình bôûi nhaø saûn xuaát chæ coù ôû 8051)
- 128 byte RAM
- 4 port I/0 8 bit

4
Ñoà aùn moân hoïc VÑK

- Hai boä ñònh thôøi 16 bits


- Giao tieáp noái tieáp
- 64KB khoâng gian boä nhôù chöông trình ngoaøi
- 64 KB khoâng gian boä nhôù döõ lieäu ngoaøi
- boä xöû lí luaän lí (thao taùc treân caùc bit ñôn)
- 210 bit ñöôïc ñòa chæ hoùa
- boä nhaân / chia 4μs
2.2.1 Caáu truùc beân trong cuûa 8051:

INT\1
INT\0
TIMER2
TIMER1
PORT noá tieáp
T1*
Ñ Ñieàu Cacùùthanh 128 byte Rom Timer1
T2*
khieån ngaét ghi khaùc Ram 4K-8051 Timer2

CPU

Taïo dao Ñieàu khieån Caùc port I\O Port noái


ñoäng bus tieáp

EA\ RST PSEN ALE P0 P1 P2 P3


TXD* RXD*

Hình 2.1 : Sô Ñoà Khoái 8051

Phaàn chính cuûa vi ñieàu khieån 8051 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.

5
Ñoà aùn moân hoïc VÑK

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.
2.2.2 Chöùc naêng caùc chaân cuûa vi ñieàu khieån:

40
30p
19 Vcc P0.7 32 AD7
XTAL1 P0.6 33 AD6
12MHz
P0.5 34 AD5
XTAL2 35
18 P0.4 AD4
30p 36
P0.3 AD3
P0.2 37 AD2
P0.1 38 AD1
29 PSEN\ P0.0 39 AD0
30 ALE 8
P2.7
7
31 P2.6
EA\ 6
9 P2.5
RET 5
P2.4
4
P2.3
17 3
RD\ P2.2
16 2
WR\ P2.1
15 1
T1 P2.0
T0 14 28
P1.7 A15
INT1 13 27
P1.6 A14
INT0 12 26
P1.5 A13
TXD 11 25
P1.4 A12
RXD 10 24
P1.3 A11
23
P1.2 A10
22
P1.1 A9
Vss 21
P1.0 A8

20 Hình 2.2 : Sô Ñoà Chaân 8051

Vi ñieàu khieån 8051 coù 32 trong 40 chaân coù chöùc naêng nhö laø caùc coång I/O, trong ñoa 24
chaân ñöôïc söû duïng vôùi hai muïc ñích. Nghóa laø ngoaøi chöùc naêng coång I/O, moãi chaân coù coâng
duïng keùp naøy coù theå laø moät ñöôøng ñieàu khieån cuûa Bus ñòa chæ hay Bus döõ lieäu hoaëc laø moãi
chaân hoaït ñoäng moät caùch ñoäc laäp ñeå giao tieáp vôùi caùc thieát ñôn bit nhö laø coâng taéc, LED,
transistor…
a.Port0 : laø port coù 2 chöùc naêng ôû treân chaân töø 32 ñeán 39 cuûa MC 8051. Trong caùc thieát
keá côõ nhoû khoâng duøng boä nhôù ngoaøi, PO ñöôïc söû duïng nhö laø nhöõng coång I/O. Coøn trong caùc
thieát keá lôùn coù yeâu caàu moät soá löôïng ñaùng keå boä nhôù ngoaøi thì PO trôû thaønh caùc ñöôøng truyeàn
döõ lieäu vaø 8 bit thaáp cuûa bus ñòa chæ.

6
Ñoà aùn moân hoïc VÑK

b.Port1 : Port1 laø moät port I/O chuyeân duïng treân caùc chaân 1-8 cuûa MC8051. Chuùng ñöôïc
söû duïng vôùi moät muùc ñích duy nhaát laø giao tieáp vôùi caùc thieát bò ngoaøi khi caàn thieát.
c.Port2 : Port2 laø moät coång coù coâng duïng keùp treân caùc chaân 21 – 28 cuûa MC 8051.
Ngoaøi chöùc naêng I/O, caùc chaân naøy duøng laøm 8 bit cao cuûa bus ñòa chæ cho nhöõng moâ hình thieát
keá coù boä nhôù chöông trình ROM ngoaøi hoaëc boä nhôù döõ lieäu RAM coù dung löôïng lôùn hôn 256
byte.
d.Port3 : Port3 laø moät coång coù coâng duïng keùp treân caùc chaân 10 – 17 cuûa MC 8051. Ngoaøi
chöùc naêng laø coång I/O, nhöõng chaân naøy kieâm luoân nhieàu chöùc naêng khaùc nöõa lieân quan ñeán
nhieàu tính naêng ñaëc bieät cuûa MC 8051, ñöôïc moâ taû trong baûng sau :

Bit Teân Chöùc naêng chuyeån ñoåi

P3.0 RXD Döõ lieäu nhaän cho port noái tieáp


P3.1 TXD Döõ lieäu phaùt cho port noái tieáp
P3.2 INTO Ngaét 0 beân ngoaøi
P3.3 INT1 Ngaét 1 beân ngoaøi
P3.4 TO Ngoû vaøo cuûa timer 0
P3.5 T1 Ngoõ vaøo cuûa timer 1
P3.6 WR Tín hieäu ghi boä nhôù döõ lieäu ngoaøi
P3.7 RD Tín hieäu ñoïc boä nhôù döõ lieäu ngoaøi

Baûng 2.1 : Chöùc naêng cuûa caùc chaân treân port3

e.PSEN (Program Store Enable ) : 8051 coù 4 tín hieäu ñieàu khieån. 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 truy xuaát 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 byte maõ
leänh cuûa chöông trình. Tín hieäu PSEN ôû möùc thaáp trong suoát phaïm vi quaù trình cuûa moät 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 PSEN seõ ôû möùc cao.
f.ALE (Address Latch Enable ) :
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
chu kyø 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. 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 noái leân möùc cao (+5V) hoaëc möùc thaáp
(GND).
h.RST (Reset) :

7
Ñoà aùn moân hoïc VÑK

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 möùc cao
(trong ít nhaát 2 chu kyø maùy ), caùc thanh ghi trong 8051 ñöôïc ñöa vaøo nhöõng giaù trò thích hôïp ñeå
khôûi ñoäng heä thoáng.
i. OSC:
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. Taàn soá thaïch anh thoâng thöôøng laø 12MHz.
j. POWER:
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.
2.2.3.Toå chöùc boä nhôù cuûa boä vi ñieàu khieån 8051 :
8051 coù boä nhôù theo caáu truùc Harvard : coù nhöõng vuøng boä nhôù rieâng bieät cho chöông
trình vaø döõ lieäu. Nhö ñaõ noùi ôû treân, caû chöông trình vaø döõ lieäu coù theå ôû beân trong 8051, duø vaäy
chuùng coù theå ñöôïc môû roäng baèèng caùc thaønh phaàn ngoaøi leân ñeán toái ña 64 Kbytes boä nhôù
chöông trình vaø 64 Kbytes boä nhôù döõ lieäu.
Boä nhôù beân trong bao goàm ROM (8051) vaø RAM treân chip. RAM treân chip bao goàm nhieàu
phaàn : phaàn löu tröõ ña duïng, phaàn löu tröõ ñòa chæ hoùa töøng bit, caùc bank thanh ghi vaø caùc thanh
ghi chöùc naêng ñaëc bieät.
Chi tieát veà boä nhôù RAM treân chip :
RAM beân trong chip 8051 ñöôïc phaân chia nhö sau:
• bank thanh ghi (00H – 1FH).
• RAM ñòa chæ hoùa töøng bit (20H – 2FH).
• RAM ña duïng (30H – 7FH)ø.
• Caùc thanh ghi chöùc naêng ñaëc bieät (80H – FFH).

8
Ñoà aùn moân hoïc VÑK

a. RAM ña duïng.

Ñòa chæ byte Ñòa chæ bit


7F

RAM ña duïng
30 7F 7E 7D 7C 7B 7A 79 78
2F 77 76 75 74 73 72 71 70
2E
2D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61 60
2B 5F 5E 5D 5C 5B 5A 59 58
2A 57 56 55 54 53 52 51 50
29 4F 4E 4D 4C 4B 4A 49 48
28 47 46 45 44 43 42 41 40
27 3F 3E 3D 3C 3B 3A 39 38
26 37 36 35 34 33 32 31 30
25 2F 2E 2D 2C 2B 2A 29 28
24 27 26 25 24 23 22 21 20
23 1F 1E 1D 1C 1B 1A 19 18
22 17 16 15 14 13 12 11 10
21
0F 0E 0D 0C 0B 0A 09 08
20
07 06 05 04 03 02 01 00
1F
18 BANK 3
17
BANK 2
10
0F BANK 1
08 Default register
07 Bank for RO÷R7
00

Hình 2.3 Baûng toùm taét baûn baûn ñoà vuøng nhôù döõ lieäu treân chip 8051

9
Ñoà aùn moân hoïc VÑK

Ñòa chæ byte Ñòa chæ bit

FF
F0 F7 F6 F5 F4 F3 F2 F1 F0 B

E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC

D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW

B8 - - - BC BB BA B9 B8 IP

B0 B7 B6 B5 B4 B3 B2 B1 B0 P3

A8 AF - - AC AB AA A9 A8 IE

A0
A7 A6 A5 A4 A3 A2 A1 A0 P2

SBUF
99 Not bit addressable
98 9F 9E 9D 9C 9B 9A 99 98 SCON

90 97 96 95 94 93 92 91 90 P1

8D TH1
Not bit addressable
8C TH0
Not bit addressable
8B
8A Not bit addressable
TL1
89 Not bit addressable
TL0
Not bit addressable TMOD
88 8F 8E 8D 8C 8B 8A 89 88 TCON
87 Not bit addressable PCON

83 Not bit addressable DPH


82 Not bit addressable DPL
81 Not bit addressable SP
80 87 86 85 84 83 82 81 80 PO

Hình 2.4 Toùm taét boä nhôù döõ lieäu treân chip

Moïi ñòa chæ trong vuøng RAM ña duïng ñeàu coù theå ñöôïc truy xuaát töï do duøng caùch ñaùnh
ñòa chæ tröïc tieáp hoaëc giaùn tieáp. Ví duï, ñeå ñoïc noäi dung ôû ñòa chæ 5FH cuûa RAM noäi vaøo thanh
ghi tích luõy leänh sau seõ ñöôïc duøng :
MOV A, 5FH

10
Ñoà aùn moân hoïc VÑK

Leänh naøy di chuyeån moät byte döõ lieäu duøng caùch ñaùnh ñòa chæ tröïc tieáp ñeå xaùc ñònh “ñòa
chæ nguoàn” (5FH). Ñích nhaän döõ lieäu ñöôïc ngaàm xaùc ñònh trong maõ leänh laø thanh ghi tích luõy
A.
RAM beân trong cuõng coù theå ñöôïc truy xuaát duøng caùch ñaùnh ñòa chæ giaùn tieáp qua RO hay
R1. Ví duï, sau khi thi haønh cuøng nhieäm vuï nhö leänh ñôn ôû treân :
MOV R0, #5FH
MOV A, @R0
Leänh ñaàu duøng ñòa chæ töùc thôøi ñeå di chuyeån giaù trò 5FH vaøo thanh ghi R0 vaø leänh thöù hai
duøng ñòa giaùn tieáp ñeå di chuyeån döõ lieäu “ñöôïc troû bôûi R0” vaøo thanh ghi tích luõy.
b.RAM ñòa chæ hoùa töøng bit :
8051 chöùa 210 bit ñöôïc ñòa chæ hoùa, trong ñoù 128 bit laø ôû caùc ñòa chæ byte 20H ñeán 2FH,
vaø phaàn coøn laïi trong caùc thanh ghi chöùc naêng ñaëc bieät .
Coù 128 bit ñöôïc ñòa chæ hoùa ña duïng ôû caùc byte 20H ñeán 2FH. Caùc ñòa chæ naøy ñöôïc truy
xuaát nhö caùc byte hoaëc caùc bit phuï thuoäc vaøo leänh ñöôïc duøng. Ví duï, ñeå ñaët bit 67H, ta duøng
leänh sau :
SETB 67H
ÔÛ ñaây ñòa chæ bit 67H laø bit coù troïng soá lôùn nhaát (MSB) ôû ñòa chæ byte 2CH, leänh treân seõ
khoâng taùc ñoäng ñeán caùc bit khaùc cuûa byte naøy.
c.Caùc bank thanh ghi :
MC 8051 cung caáp 32 byte thaáp nhaát cuûa boä nhôù döõ lieäu noäi laø daønh cho caùc bank
thanh ghi. 8 thanh ghi (RO ñeán R7) ôû vò trí cuoái cuøng cuûa RAM vaø theo maëc ñònh (sau khi
Reset heä thoáng) caùc thanh ghi naøy ôû caùc ñòa chæ 00H-07H, tieáp ñoù laø bank 1, bank 2 vaø bank 3.
Leänh sau ñaây seõ ñoïc noäi dung ôû ñòa chæ 05H vaøo thanh ghi tích luõy:
MOV A,R5
Ñaây laø leänh moät byte duøng ñòa chæ thanh ghi. Taát nhieân, thao taùc töông töï coù theå ñöôïc
thi haønh baèng leänh 2 byte duøng ñòa chæ tröïc tieáp naèm trong byte thöù hai:
MOV A,05H
Caùc leänh duøng caùc thanh ghi R0 ñeán R7 thì seõ ngaén hôn vaø nhanh hôn caùc leänh töông
öùng duøng ñòa chæ tröïc tieáp. Caùc giaù trò döõ lieäu ñöôïc duøng thöôøng xuyeân neân duøng moät trong caùc
thanh ghi naøy.
2.2.4 Caùc thanh ghi chöùc naêng ñaëc bieät SFR:
Caùc thanh ghi noäi cuûa 8051 ñöôïc truy xuaát ngaàm ñònh bôûi boä leänh. Ví duï leänh “INC A”
seõ taêng noäi dung cuûa thanh ghi tích luõy A leân 1. Taùc ñoäng naøy ñöôïc ngaàm ñònh trong maõ leänh.
Cuõng nhö R0 ñeán R7, coù 21 thanh ghi chöùc naêng ñaëc bieät (SFR: Special Funtion
Rgister) ôû vuøng treân cuûa RAM noäi, töø ñòa chæ 80H ñeán FFH. Chuù yù raèng haàu heát 128 ñòa chæ töø
80H ñeán FFH khoâng ñöôïc ñònh nghóa, chæ coù 21 ñòa chæ SFR laø ñöôïc ñònh nghóa.
Ngoaïi tröø tích luõy (A) coù theå ñöôïc truy xuaát ngaàm nhö ñaõ noùi, ña soá caùc SFR ñöôïc truy
xuaát duøng ñòa chæ tröïc tieáp. chuù yù raèng moät vaøi SFR coù theå ñöôïc ñòa chæ hoùa bit hoaëc byte. Khi
thieát keá phaûi thaän troïng khi truy xuaát bit vaø byte. Ví duï leänh sau:
SETB 0E0H
Seõ Set bit 0 trong thanh ghi tích luõy, caùc bit khaùc khoâng thay ñoåi. Ta thaáy raèng E0H ñoàng
thôøi laø ñòa chæ byte cuûa thanh ghi tích luõy vaø laø ñòa chæ bit coù troïng soá nhoû nhaát trong thanh ghi
tích luõy. Vì leänh SETB chæ taùc ñoäng treân bit, neân chæ coù ñòa chæ bit laø coù hieäu quaû.

11
Ñoà aùn moân hoïc VÑK

a. Töø traïng thaùi chöông trình(PWS):


Töø traïng thaùi chöông trình (PSW: Program Status Word) ôû ñòa chæ D0H chöùa caùc bit traïng
thaùi nhö baûng toùm taét sau:

Bit Kyù hieäu Ñòa chæ YÙù nghóa


PSW.7 CY D7H Côø nhôù
PSW.6 AC D6H Côø nhôù phuï
PSW.5 F0 D5H Côø 0
PSW.4 RS1 D4H Bit 1 choïn bank thanh ghi
PSW.3 RS0 D3H Bit choïn bank thanh ghi.
00=bank 0; ñòa chæ 00H-07H
01=bank 1: ñòa chæ 08H-0FH
10=bank 2:ñòa chæ 10H-17H
11=bank 3:ñòa chæ 18H-1FH
PSW.2 OV D2H Côø traøn
PSW.1 D1H Döï tröõ
PSW.0 P D0H Côø Parity chaün.
Hình 21: Töø traïng thaùi chöông trình
• Côø nhôù (CY) coù coâng duïng keùp. Thoâng thöôøng noù ñöôïc duøng cho caùc leänh toaùn hoïc: noù seõ
ñöôïc set neáu coù moät soá nhôù sinh ra bôûi pheùp coäng hoaëc coù moät soá möôïn pheùp tröø . Ví duï,
neáu thanh ghi tích luõy chöùa FFH, thì leänh sau:
ADD A,#1
Seõ traû veà thanh ghi tích luõy keát quûa 00H vaø set côø nhôù trong PSW.
Côø nhôù cuõng coù theå xem nhö moät thanh ghi 1 bit cho caùc leänh luaän lyù thi haønh treân bit.
Ví duï, leänh seõ AND bit 25H vôùi côø nhôù vaø ñaët keát quûa trôû vaøo côø nhôù: ANL C,25H
• Côø nhôù phuï AC :
Khi coäng caùc soá BCD, côø nhôù phuï (AC) ñöôïc set neáu keát quûa cuûa 4 bit thaáp trong
khoaûng 0AH ñeán 0FH. Neáu caùc giaù trò coäng ñöôïc laø soá BCD, thì sau leänh coäng caàn coù DA A(
hieäu chænh thaäp phaân thanh ghi tích luõy) ñeå mang keát quûa lôùn hôn 9 trôû veà taâm töø 0÷9.
• Côø zero F0: Côø F0 laø moät bit côø ña duïng daønh caùc öùng duïng cuûa ngöôøi duøng.
• Caùc bit choïn bank thanh ghi
Caùc bit choïn bank thanh ghi (RSO vaø RS1) xaùc ñònh bank thanh ghi ñöôïc tích cöïc. Chuùng
ñöôïc xoùa sau khi reset heä thoáng vaø ñöôïc thay ñoåi baèng phaàn meàm neáu caàn. Ví duï, ba leänh sau
cho pheùp bank thanh ghi 3 vaø di chuyeån noäi dung cuûa thanh ghi R7 (ñòa chæ byte 1FH) ñeán
thanh ghi tích luõy:
SETB RS1
SETB RSO
MOV A,R7
Khi chöông trình ñöôïc hôïp dòch caùc ñòa chæ bit ñuùng ñöôïc thay theá cho caùc kyù hieäu
“RS1” vaø “RS0”. Vaäy leänh SETB RS1 seõ gioáng nhö leänh SETB 0D4H.
• Côø Traøn
Côø traøn (OV) ñöôïc set moät leänh coäng hoaëc tröø neáu coù moät pheùp toaùn bò traøn. Khi caùc soá
coù daáu ñöôïc coäng hoaëc tröø vôùi nhau, phaàn meàm coù theå kieåm tra bit naøy ñeå xaùc ñònh xem keát
quûa cuûa noù coù naèm trong taàm xaùc ñònh khoâng. Khi caùc soá khoâng daáu ñöôïc coäng, bit OV coù theå
ñöôïc boû qua. Caùc keát quûa lôùn hôn +127 hoaëc nhoû hôn –128 seõ set bit OV.

12
Ñoà aùn moân hoïc VÑK

b. Thanh ghi B:
Thanh ghi B ôû ñòa chæ F0H ñöôïc duøng cuøng vôùi thanh ghi tích luõy A cho caùc pheùp toaùn
nhaân vaø chia. Leänh MUL AB seõ nhaân caùc giaù trò khoâng daáu 8 bit trong A vaø B roài traû veà keát
quûa 16 bit trong A (byte thaáp) vaø B (byte cao). Leänh DIV AB seõ chia A cho B roài traû veà keát
quûa nguyeân trong A vaø phaàn dö trong B. Thanh ghi B cuõng coù theå ñöôïc xem nhö thanh ghi ñeäm
ña duïng. Noù ñöôïc ñòa chæ hoùa ttöøng bit baèng caùc ñòa chæ bit FOH ñeán F7H.
c. Con troû ngaên xeáp:
Con troû ngaên xeáp (SP) laø moät thanh ghi 8 bit ôû ñòa chæ 81H. Noù chöùa ñòa chæ cuûa byte döõ
lieäu hieän haønh treân ñænh cuûa ngaên xeáp. Caùc leänh treân ngaên xeáp bao goàm caùc thao taùc caát döõ
lieäu vaøo ngaên xeáp vaø laáy döõ lieäu ra khoûi ngaên xeáp. Leänh caát döõ lieäu vaøo ngaên xeáp seõ laøm taêng
SP tröôùc khi ghi döõ lieäu, vaø leänh laáy döõ lieäu ra khoûi ngaên xeáp seõ doïc döõ lieäu vaø laøm giaûm SP.
Ngaên xeáp cuûa 8051 ñöôïc giöõ trong RAM noäi vaø ñöôïc giôùi haïn caùc ñòa chæ coù theå truy xuaát
baèng ñòa chæ giaùn tieáp. chuùng laø 128 byte ñaàu cuûa 8051.
Ñeå khôûi ñoäng laïi SP vôùi ngaên xeáp baét ñaàu taïi 60H, caùc leänh sau ñaây ñöôïc duøng:
MOV SP,#5FH
d. Con troû döõ lieäu:
Con troû döõ lieäu (DPTR) ñöôïc duøng ñeå truy xuaát boä nhôù ngoaøi, ñaây laø moät thanh ghi 16
bit ôû ñòa chæ 82H( byte thaáp) vaø 83H (byte cao). Ba leänh sau seõ ghi 55H vaøo RAM ngoaøi ôû ñòa
chæ 1000H:
MOV A,#55H
MOV DPTR,#1000H
MOVX @DPTR,A
Leänh ñaàu tieân duøng ñòa chæ töùc thôøi ñeå taûi döõ lieäu 55H vaøo thanh ghi tích luõy, leänh thöù
hai cuõng duøng ñòa chæ töùc thôøi, laàn naøy ñeå taûi döõ lieäu 16 bit 1000H vaøo con troû döõ lieäu. Leänh
thöù ba duøng ñòa chæ giaùn tieáp ñeå di chuyeån döõ lieäu trong A (55H) ñeán RAM ngoaøi ôû ñòa chæ
ñöôïc chöùa trong DPTR (1000H)
e. Caùc thanh ghi port xuaát nhaäp:
Caùc port cuûa 8051/8031 bao goàm Port 0 ôû ñòa chæ 80H, Port 1 ôû ñòa chæ 90 H, Port 2 ôû ñòa
chæ A0H vaø Port 3 ôû ñòa chæ B0H. Taát caû caùc Port ñeàu ñöôïc ñòa chæ hoùa töøng bit. Ñieàu ñoù cung
caáp moät khaû naêng giao tieáp thuaän lôïi.
f. Caùc thanh ghi timer:
8051 chöùa 2 boä ñònh thôøi ñeám 16 bit ñöôïc duøng trong vieäc ñònh thôøi hoaëc ñeám söï kieän.
Timer 0 ôû ñòa chæ 8AH (TL0:byte thaáp) vaø 8CH (TH0:byte cao).Timer 1 ôû ñòa chæ 8BH
(TL1:byte thaáp) vaø 8DH (TH1: byte cao).
Vieäc vaän vaänhaønh timer ñöôïc set bôûi thanh ghi Timer Mode (TMOD) ôû ñòa chæ 89H vaø
thanh ghi ñieàu khieån timer (TCON) ôû ñòa chæ 88H. Chæ coù TCON ñöôïc ñòa chæ hoùa töøng bit.
g. Caùc thanh ghi port noái tieáp:
8051 chöùa moät port noái tieáp treân chip daønh cho vieäc trao ñoåi thoâng tin vôùi caùc thieát bò noái
tieáp nhö maùy tính, modem hoaëc cho vieäc giao tieáp vôùi caùc IC khaùc coù giao tieáp noái tieáp (coù boä
chuyeån ñoåi A/D, caùc thanh ghi dòch..). Moät thanh ghi goïi laø boä ñeäm döõ lieäu noái tieáp (SBUF) ôû
ñòa chæ 99H seõ giöõ caû hai döõ lieäu truyeàn vaø nhaän. Khi truyeàn döõ lieäu thì ghi leân SBUf, khi nhaän
döõ lieäu thì ñoïc töø SBUF. Caùc mode vaän haønh khaùc nhau ñöôïc laäp trình qua thanh ghi ñieàu
khieån port noái tieáp (SCON) ñöôïc ñòa chæ hoùa töøng bit ôû ñòa chæ 98H.
h. Caùc thanh ghi ngaét:

13
Ñoà aùn moân hoïc VÑK

8051 coù caáu 5 nguoàn ngaét, 2 möùc öu tieân. Caùc ngaét bò caám sau khi reset heä thoáng vaø seõ
ñöôïc cho pheùp baèng vieäc ghi vaøo thanh ghi cho pheùp ngaét (IE) ôû ñòa chæ 8AH moät giaù trò phuø
hôïp. Caû hai thanh ghi ñöôïc ñòa chæ hoùa töøng bit.
i. Caùc thanh ghi ñieàu khieån coâng suaát:
Thanh ghi ñieàu khieån coâng suaát (PCON) ôû ñòa chæ 87H chöùa nhieàu bit ñieàu khieån. Chuùng
ñöôïc toùm taét trong baûng sau:

Bit Kyù hieäu Yù nghóa


7 SMOD Bit gaáp ñoâi toác ñoä baud, neáu ñöôïc set thì toác ñoä
baud seõ taêng gaáp ñoâi trong caùc mode 1,2 vaø 3
cuûa port noái tieáp
6 Khoâng ñònh nghóa
5 Khoâng ñònh nghóa
4 Khoâng ñònh nghóa
3 GF1 Bit côø ña duïng 1
2 GF0 Bit côø ña duïng 0
1 PD Giaûm coâng suaát, ñöôïc set ñeå kích hoaït mode
giaûm coâng suaát, chæ thoaù khi reset
0 IDL Mode chôø, set ñeå kích hoaït mode chôø, chæ thoaùt
khi coù ngaét hoaëc reset heä thoáng.

Hình 2.5 : Thanh ghi ñieàu khieån coâng suaát (PCON)


2.2.6 Leänh reset.
8051 ñöôï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

100Ω
10uF
S1
Reset

8.2K

Hình 2.8: Maïch reset heä thoáng.

14
Ñoà aùn moân hoïc VÑK

Traïng thaùi cuûa taát caû caùc thanh ghi cuûa 8051 sau khi reset heä thoáng ñöôïc toùm taét trong
baûng sau:

Thanh ghi Noäi dung


Ñeám chöông trình 0000H
Tích luõy 00H
B 00H
PSW 00H
SP 07H
DPTR 0000H
Port 0-3 FFH
IP XXX00000B
IE 0XX00000B
Caùc thanh ghi ñònh thôøi 00H
SCON 00H
SBUF 00H
PCON(HMOS) 0XXXXXXB
PCON(CMOS) 0XXX0000B

Hình 2.9 : 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.
2.2.7. Hoaït ñoäng cuûa boä ñònh thôøi (timer):
a. 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 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å : ñònh
khoaûng thôøi gian, ñeám söï kieän hoaëc taïo toác ñoä baud cho port noái tieáp trong 8051.
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 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. 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.
Truy xuaát timer cuûa 8051 duøng 6 thanh ghi chöùc naêng ñaëc bieät cho trong baûng sau:

SFR MUÏC ÑÍCH ÑÒA CHÆ Ñòa chæ hoùa töøng bit

15
Ñoà aùn moân hoïc VÑK

TCON Ñieàu khieån timer 88H Coù


TMOD Cheá ñoä timer 89H Khoâng
TL0 Byte thaáp cuûa timer 0 8AH Khoâng
TL1 Byte thaáp cuûa timer 1 8BH Khoâng
TH0 Byte cao cuûa timer 0 8CH Khoâng
TH1 Byte cao cuûa timer 1 8DH Khoâng

Hình 2.10 : Thanh ghi chöùc naêng ñaëc bieät duøng timer.
b. Thanh ghi cheá ñoä timer (TMOD:
Thanh ghi TMOD chöùa hai nhoùm 4 bit duøng ñeå ñaët cheá ñoä laøm vieäc cho timer 0 vaø
timer 1.

Bit Teân Timer Moâ taû


7 GATE 1 Bit (Môû) coång, khi leân 1 timer chæ chaïy khi INT1
ôû möùc cao.
6 C/T 1 Bit choïn cheá ñoä counter/timer
1=boä ñeám söï kieän
0=boä ñònh khoaûng thôøi gian
5 M1 1 Bit 1 cuûa cheá ñoä(mode)
4 M0 1 Bit 0 cuûa cheá ñoä
00: cheá ñoä 0 : timer 13 bit
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ä

Hình 2.11:Toùm taét thanh ghi TMOD

c. Thanh ghi ñieàu khieån timer (TCON):


Thanh ghi TCON chöùa caùc bit traïng thaùi vaø caùc bit ñieàu khieån cho timer 0 vaø timer 1.

Bit Kyù hieäu Ñòa chæ Moâ taû


TCON.7 TF1 8FH Côø baùo traøn timer 1. Ñaët bôûi
phaàn
16 cöùng khi traøn, ñöôïc xoùa bôûi phaàn
meàm hoaëc phaàn cöùng khi boä xöû lyù
chæ ñeán chöông trình phuïc vuï ngaét.
Ñoà aùn moân hoïc VÑK

Hình 2.12: Toùm taét thanh ghi TCON

d. Caùc cheá ñoä timer:


* Cheá ñoä 0, cheá ñoä timer 13 bit.
Ñeå töông thích vôùi 8048 (coù tröùôùc 8051)
Ba bit cao cuûa TLX (TL0 vaø/hoaêc TL1) khoâng duøng

TLx THx TFx


(5 bit) (8 bit)

Xung nhòp timer Côø baùo traøn

* Cheá ñoä 1- cheá ñoä timer 16 bit.


Hoaït ñoäng nhö timer 16 bit ñaày ñuû. Côø baùo traøn laø bit TFx trong TCON coù theå ñoïc hoaëc
ghi baèng phaàm meàm.
MSB cuûa giaù trò trong caùc thanh ghi timer laø bit 7 cuûa THx vaø LBS laø bit 0 cuûa TLx.
Caùc thanh ghi timer (TLx/THx) coù theå ñöôïc ñoïc hoaëc ghi baát cöù luùc naøo baèng phaàm meàm.

TLx THx TFx


(8 bit) (8 bit)
Xung nhòp
timer
Côø baùo traøn

17
Ñoà aùn moân hoïc VÑK

* Cheá ñoä 2- 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.

TL1 TH1
Xung nhòp timer
TLx TFx
(8 bit) (8 bit)

Xung nhòp timer TL0 ÌCôøbTF0


aùo traøn
Xung nhòp timer

Côø baùo traøn


THx
(8 bit)
TH0 TF1
Reload
Xung nhòp timer
Côø baùo traøn

* Cheá ñoä 3- cheá ñoä taùch timer


Timer 0 taùch thaønh hai timer 8 bit (TL0 vaø TH0), TL0 coù côø baùo traøn laø TF0 vaø TH0 coù
côø baùo traøn laø TF1.
Timer 1 ngöng ôû cheá ñoä 3, nhöng coù theå ñöôïc khôûi ñoäng baèng caùch chuyeån sang cheá ñoä
khaùc. Giôùi haïn duy nhaát laø côø baùo traøn TF1 khoâng coøn bò taùc ñoäng khi timer 1 bò traøn vì noù ñaõ
ñöôïc noái tôùi TH0.
8. Hoaït ñoäng port noái tieáp.
8.1. Giôùi thieäu.
8051/8031 coù moät port noái tieáp trong chip coù theå hoaït ñoäng ôû nhieàu cheá ñoä khaùc treân
moät daõy taàn soá roäng. Chöùc naêng chuû yeáu cuûa moät port noái tieáp laø thöïc hieän chuyeån ñoåi song
song sang noái tieáp vôùi döõ lieäu xuaát vaø chuyeån ñoài noái tieáp sang song song vôùi döõ lieäu nhaäp.
Truy xuaát phaàn cöùng ñeán port noái tieáp qua caùc chaân TXD vaø RXD. Caùc chaân naøy coù
caùc chöùc naêng khaùc vôùi hai bit cuûa port 3. P3 ôû chaân 11 (TXD) vaø P3.0 ôû chaân 10 (RXD).
Port noái tieáp cho hoaït ñoäng song coâng (full duplex : thu vaø phaùt ñoàng thôøi) vaø ñeäm luùc
thu (receiver buffering) cho pheùp moät kyù töï seõ ñöôïc thu vaø ñöôïc giöõ trong khi kyù töï thöù hai
ñöôïc nhaän. Neáu CPU ñoïc kyù töï thöù nhaát tröôùc khi kyù töï thöù hai ñöôïc thu ñaày ñuû thì döõ lieäu seõ
khoâng bò maát.
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.

18
Ñoà aùn moân hoïc VÑK

TXD (P3.1) RXD (P3.0)

CLK
SUBF
Q D Thanh ghi
(Chæ ghi)
CLK
Xung nhòp toác
Ñoä baud (thu) SBUF
Xung nhòp toác (chæ ñoïc)
Ñoä baud (thu)
SBUF
(chæ ñoïc)

BUS noäi 8051/8031


Hình 2.9: Sô ñoà port noái tieáp.
Thanh ghi ñieàu khieån port noái tieáp (SCON) ôû ñòa chæ 98H laø thanh ghi coù ñòa chæ bit
chöùa caùc bit traïng thaùi vaø caùc bit ñieàu khieån. Caùc bit ñieàu khieån ñaët cheá ñoä hoaït ñoäng cho port
noái tieáp, vaø caùc bit traïng thaùi baùo caùo keát thuùc vieäc phaùt hoaëc thu kyù töï. Caùc bit traïng thaùi coù
theå ñöôïc kieåm tra baèng phaàn meàm hoaëc coù theå ñöôïc laäp trình ñeå taïo ngaét.
Taàn soá laøm vieäc cuûa port noái tieáp coøn goïi laø toác ñoä baund coù theå coá ñònh (laáy töø boä giao
ñoäng cuûa chip). Neáu söû duïng toác ñoä baud thay ñoåi, timer 1 seõ cung caáp xung nhòp toác ñoä baud
vaø phaûi ñöôïc laäp trình.
8.2 Thanh ghi ñieàu khieån port noái tieáp.
Cheá ñoä hoaït ñoäng cuûa port noái tieáp ñöôïc ñaët baèng caùch ghi vaøo thanh ghi cheá ñoä port
noái tieáp (SCON) ôû ñòa chæ 98H. Sau ñaây caùc baûng toùm taét thanh ghi SCON vaø caùc cheá ñoä cuûa
port noái tieáp :

19
Ñoà aùn moân hoïc VÑK

Bit Kyù hieäu Ñòa chæ Moâ taû

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.

SM0 SM1 Cheá ñoä Moâ taû Toác ñoä baud


0 0 0 Thanh ghi dòch Coá ñònh (Fosc/12)
0 1 1 UART 8 bit Thay ñoåi (ñaët baèng timer)
1 0 2 UART 9 bit Coá ñònh (Fosc/12 hoaëc Fosc/64)
1 1 3 UART 9 bit Thay ñoåi (ñaët baèng timer)

Baûng 2.8: Caùc cheá ñoä port noái tieáp.


Tröôùc khi söû duïng port noái tieáp, phaûi khôûi ñoäng SCON cho ñuùng cheá ñoä. Ví duï ,leänh
sau:
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.
2.2.8 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 :

20
Ñoà aùn moân hoïc VÑK

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.
d. Caùc côø ngaét:
Hai côø ngaét thu vaø phaùt (RI vaø TI) trong SCON ñoùng moät vai troø quan troïng truyeàn
thoâng noái tieáp duøng 8051/8031. Caû hai bit ñöôïc ñaët leân 1 baèng phaàn cöùng, nhöng phaûi ñöôïc
xoùa baèng phaàn meàm.
8.4 . Toác ñoä baud port noái tieáp.
Nhö ñaõ noùi, toác ñoä baud coá ñònh ôû caùc cheá ñoä 0 vaø 2. Trong cheá ñoä 0 noù luoân luoân laø
taàn soá dao ñoäng treân chip ñöôïc chia cho 12 . Thoâng thöôøng thaïch anh aán ñònh taàn soá dao ñoäng
treân chip cuûa 8051/8031 nhöng cuõng coù theå söû duïng nguoàn xung nhòp khaùc. Giaû söû vôùi taàn soá
dao ñoäng danh ñònh laø 12 MHz, tìm toác ñoä baud cheá ñoä 0 laø 1 MHz.

Dao ñoäng Xung nhòp


treân chip ÷12 toác ñoä baud

a. Cheá ñoä 0

÷64
SMOD=0
Dao ñoäng Xung nhòp
treân chip toác ñoä baud
SMOD=1
÷32

b. Cheá ñoä 2

21
Ñoà aùn moân hoïc VÑK

÷32
SMOD=0
Dao ñoäng Xung nhòp
treân chip toác ñoä baud
SMOD=1
÷16
÷16

c. Cheá ñoä 1 vaø 3.


Hình 2.10. Caùc nguoàn taïo xung nhòp cho port noái tieáp.

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 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.
2.2.9. Hoaït ñoäng ngaét.
Ngaét laø hoaït ñoäng ngöøng taïm thôøi moät chöông trình naøy ñeå tji haønh moät chöông trình
khaùc. Caùc ngaét coù moät vai troø quan troïng trong thieát keá vaø khaû naêng thöïc thi cuûa vi ñieàu khieån.
Chuùng cho pheùp heä thoán ñaùp öùng khoâng cuøng luùc tôùi moät coâng vieäc vaø giaûi quyeát moät coâng
vieäc ñoù trong khi moät chöông trình khaùc ñang thöïc thi.
Moät heä thoáng ñöôïc ñieàu khieån baèng ngaét cho aûo giaùc laø laøm nhieàu vieäc ñoàng thôøi. Dó
nhieân CPU moãi laàn khoâng theå thöïc thi moät chöông trình ñeå thöïc thi moät chöông trình khaùc, roài
quay veà chöông trình ñaàu. khi coù yeâu caàu ngaét. Chöông trình giaûi quyeát ngaét ñöôïc goïi laû
chöông trình phuïc vuï ngaét (ISR : Interrupt Sevice Reutine).
9.1 Toå chöùc ngaét.
Ôû 8051 coù 5 nguoàn ngaét:
- 2 ngaét ngoaøi
- 2 ngaét töø timer.
- 1 ngaét port noái tieáp.
Taát caû caùc ngaét seõ khoâng ñöôïc ñaët sau khi reset heä thoáng vaø cho pheùp ngaét rieâng reõ bôûi
phaàn meàm.
a. Cho pheùp vaø khoâng cho pheùp ngaét.
Moãi nguoàn ngaét ñöôïc cho pheùp hoaëc khoâng cho pheùp töøng ngaét moät qua thanh ghi chöùc
naêng ñaët bieät coá ñònh ñòa chæ bit IE (Interrupt Enable : cho pheùp ngaét) ôû ñòa chæ A8H. Cuõng nhö
caùc bit cho pheùp moãi nguoàn ngaét, coù moät bit cho pheùp hoaëc caám toaøn boä ñöôïc xoùa ñeå caám taát
caû caùc ngaét hoaëc ñöôïc ñaët leân 1 ñeå cho pheùp taát caû caùc ngaét.

22
Ñoà aùn moân hoïc VÑK

Bit Kyù hieäu Ñòa chæ bit Moâ taû (1=cho pheùp,0=caám)
IE.7 EA AFH Cho pheùp hoaëc caám toaøn boä
IE.6 EA AEH Khoâng ñöôïc ñònh nghóa
IE.5 ET5 ADH Cho pheùp ngaét töø timer 2 (8052)
IE.4 E5 ACH Cho pheùp ngaét Port noái tieáp
IE.3 ET1 ABH Cho pheùp ngaét töø timer 1
IE.2 EX1 AAH Cho pheùp ngaét ngoaøi 1
IE.1 ET0 A9H Cho pheùp ngaét töø timer 0
IE.0 EX0 A8H Cho pheùp ngaét ngoaøi 0

Toùm taét thanh ghi IE.


b. Öu tieân ngaét.
Moãi nguoàn ngaét ñuôïc laäp trình rieâng vaøo moät trong hai möùc öu tieân qua thanh ghi chöùc
naêng ñaëc bieät ñöôïc ñòa chæ bit Ip (Interrupt priority : öu tieân ngaét) ôû ñòa chæ B8H.

Bit Kyù hieäu Ñòa chæ bit Moâ taû (1=möùc cao hôn,0=möùc thaáp)
IP.7 Khoâng ñöôïc ñònh nghóa
IP.6 Khoâng ñöôïc ñònh nghóa
IP.5 PT2 BDH Öu tieân cho ngaét töø timer 2 (8052)
IP.4 PS BCH Öu tieân cho ngaét Port noái tieáp
IP.3 PT1 BBH Öu tieân cho ngaét töø timer 1
IP.2 PX1 BAH Öu tieân cho ngaét ngoaøi
IP.1 PT0 B9H Öu tieân cho ngaét töø timer 0
IP.0 PX0 B8H Öu tieân cho ngaét ngoaøi 0

Toùm taét thanh ghi IP.


Caùc ngaét öu tieân ñöôïc xoùa sau khi reset heä thoáng ñeå ñaë ttaát caû caùc ngaét ôû möùc öu tieân
thaáp hôn.
9.2 Xöû lyù ngaét.
Khi coù moät ngaén xaåy ra vaø ñöôïc CPU chaáp nhaän, chöông trình chính bò ngaét quaõng.
Nhöõng hoaït ñoäng sau xaåy ra:
- Thi haønh hoaøn chænh leänh ñang hieän haønh.
- Caùc DC vaøo ngaét xeáp.
- Traïng thaùi ngaét hieän haønh ñöôïc caát beân trong.
- Caùc ngaét ñöôïc chaën taïi möùc cuûa ngaét.
- Nap vaøp DC ñòa chæ Vector cuûa ISR.
- ISR thöïc thi.
ISR thöïc thi vaø ñaùp öùng ngaét. ISR hoaøn taát baèng leänh RET1. Ñieàu naøy laøm laáy laïi giaù
trò cuõ cuûa PC töø ngaên xeáp vaø laáy laïi traïng thaùi ngaét cuõ. Chöông trình laïi tieáp tuïc thi haønh taïi
nôi maø noù döøng.

23
Ñoà aùn moân hoïc VÑK

• Caùc Vector ngaét.


Khi chaáp nhaän ngaét, giaù trò ñöôïc naïp vaøo PC ñöôïc goïi laø Vector ngaét. Noù laø ñòa chæ baét
ñaàu cuûa ISR cho nguoàn taïo ngaét. Caùc Vector ngaét ñöôïc cho ôû baûng sau:

Ngaét Côø Ñòa chæ Vector


Reset heä thoáng RST 0000H
Beân ngoaøi 0 IE0 0003H
Timer 0 TF0 000BH
Beân ngoaøi 1 IE1 0013H
Timer 1 TF1 001BH
Port noái tieáp TI hoaëc RI 0023H
Caùc Vector ngaét.
Vector reset heä thoáng (RST ôû ñòa chæ 0000H) noù gioáng nhö moät ngaét. Noù ngaét chöông
trình chính vaø taûi vaøo PC moät giaù trò môùi.
Khi chæ ñeán moät ngaét “côø gaây ngaét töï ñoäng bò xoùa bôûi phaàn cöùng, tröø ra R1, T1 cho caùc
ngaét coång noái tieáp. Vì coù hai nguoàn coù theå coù cho ngaét naøy, khoâng thöïc teá ñeå CPU xoùa côø ngaét
naøy. Caùc bit phaûi ñöôïc kieåm tra trong ISR ñeå xaùc ñònh nguoàn ngaét vaø côø taïo ngaét seõ ñöôïc xoùa
baèng phaàn meàm.
9.3 Caùc ngaét cuûa 8051.
a. Caùc ngaét timer.
Caùc ngaét timer coù ñòa chæ Vector ngaét laø 000BH (timer 0) vaø 001BH (timer 1). Ngaét
timer xaåy ra khi caùc thanh ghi timer (TLx ITHx) traøn vaø set côø baùo traøn (TFx) leân 1. Caùc côø
timer (TFx) khoâng bò xoùa baèng phaàn meàm. Khi cho pheùp caùc ngaét, TFx töï ñoäng bò xoùa baèng
phaàn cöùng khi CPU chuyeån ñeán ngaét.
b. Caùc ngaét coång noái tieáp.
Ngaét coång noái tieáp xaåy ra khi hoaëc côø phaùt (TI) hoaëc côø ngaét thu (KI) ñöôïc ñaët leân 1.
Ngaét phaùt xaåy ra khi moät kyù töï ñaõ ñöôïc nhaän xong vaø ñang ñôïi trong SBUP ñeå ñöôïc ñoïc.
Caùc ngaét coång noái tieáp khaùc vôùi caùc ngaét timer. Côø gaây ra ngaét coång noái tieáp khoâng bò
xoùa baèng phaàn cöùng khi CPU chuyeån tôùi ngaét. Do coù hai nguoàn ngaét coång noái tieáp Ti vaø RI.
Nguoàn ngaét phaûi ñöôïc xaùc ñònh trong ISR vaø côø taïo ngaét seõ ñöôïc xoùa baèng phaàn meàm. Caùc
ngaét timer côø ngaét côø ngaét ñöôïc xoùa baèng phaàn cöùng khi CPU höôùng tôùi ISR.
c. Caùc ngaét ngoaøi.
- Caùc ngaét ngoaøi xaåy ra khi coù moät möùc thaáp hoaëc caïnh xuoáng treân chaân INT0 hoaëc INT1
cuûa vi ñieàu khieån. Ñaây laø chöùc naêng chuyeån ñoåi cuûa caùc bit Port 3.(Port 3.2 vaø Port 3.3).
Caùc côø taïo ngaét naøy laø caùc bit IE0 vaù IE1 trong TCON. Khi quyeàn ñieàu khieån ñaõ chuyeån ñeán
ISR, côø taïo ra ngaét chæ ñöôïc xoùa neáu ngaét ñöôïc tích cöïc baèng caïnh xuoáng. Neáu ngaét ñöôïc tích
cöïc theo möùc, thì nguoàn yeâu caàu ngaét beân ngoaøi seõ ñieàu khieån möùc cuûa côø thay cho phaàn
cöùng.
Söï löïa choïn ngaét tích cöïc möùc thaáp hay tích cöïc caïnh xuoáng ñöôïc laäp trình qua caùc bit
IT0 vaø IT1 trong TCON. Neáu IT1 = 0, ngaét ngoaøi 1 ñöôïc taùc ñoäng baèng muùc thaáp ôû chaân IT1.
Neáu IT1 = 1 ngaét ngoaøi 1 seõ ñöôïc taùc ñoäng baèng caïnh xuoáng. trong cheá ñoä naøy, neáu caùc maãu
lieân tieáp treân chaân INT1 chæ möùc cao trong moät chu kyø vaø chæ möùc thaáp trong chu kyø keá, côø
yeâu caàu ngaét IE1 trong TCON ñöôïc ñaët leân 1, roài bit IEÙ yeâu caàu ngaét.
Neáu ngaét ngoaøi ñöôïc taùc ñoäng baèng caïnh xuoáng thì nguoàn beân ngoaøi phaûi giöõ chaân taùc
ñoäng ôû möùc cao toái thieåu moät chu kyø vaø giöõ noù ôû möùc thaáp theâm moät chu kyø nöõa ñeå ñaûm baûo

24
Ñoà aùn moân hoïc VÑK

phaùt hieän ñöôïc caïnh xuoáng. Neáu ngaét ngoaøi ñöôïc taùc ñoäng theo möùc thì nguoàn beân ngoaøi phaûi
giöõ tín hieäu yeâu caàu taùc ñoäng cho ñeán khi ngaét ñöôïc yeâu caàu ñöôïc thaät söï taïo ra vaø khoâng taùc
ñoäng yeâu caàu ngaét tröôùc khi ISR ñöôïc hoaøn taát . Neáu khoâng moät ngaét khaùc seõ ñöôïc laëp laïi
2.2Caûm bieán:(caùc vi maïch xem phuï luïc 2& 3)
a. Giôùi thieäu sô löôïc veà maïch caûm bieán:
Ñeå caûm nhaän moãi laàn saûn phaåm ñi qua thì caûm bieán phaûi coù phaàn phaùt vaø phaàn thu. Phaàn
phaùt phaùt ra aùnh saùng hoàng ngoaïi vaø phaàn thu haáp thuï aùnh saùng hoàng ngoaïi vì aùnh saùng hoàng
ngoaïi coù ñaëc ñieåm laø ít bò nhieãu so vôùi caùc loaïi aùnh saùng khaùc. Hai boä phaän phaùt vaø thu hoaït
ñoäng vôùi cuøng taàn soá. Khi coù saûn phaåm ñi qua giöõa phaàn phaùt vaø phaàn thu, aùnh saùng hoàng
ngoaïi bò che boä phaän thu seõ hoaït ñoäng vôùi taàn soá khaùc taàn soá phaùt nhö theá taïo ra moät xung taùc
ñoäng tôùi boä phaän xöû lí. Vaäy boä phaän phaùt vaø boä phaän thu phaûi coù nguoàn taïo dao ñoäng. Boä phaän
dao ñoäng taùc ñoäng tôùi coâng taéc ñoùng ngaét cuûa nguoàn phaùt vaø nguoàn thu aùnh saùng. Coù nhieàu
linh kieän phaùt vaø thu aùnh saùng hoàng ngoaïi nhöng chuùng em choïn led hoàng ngoaïi vaø transitor
quang laø linh kieän phaùt vaø thu vì transistor quang laø linh kieän raát nhaïy vôùi aùnh saùng hoàng
ngoaïi. Boä phaän taïo dao ñoäng coù theå duøng maïch LC, coång logic, hoaëc IC dao ñoäng. Vôùi vieäc söû
duïng IC chuyeân duøng taïo dao ñoäng, boä taïo dao ñoäng seõ trôû neân ñôn giaûn hôn vôùi taàn soá phaùt
vaø thu
Vì tín hieäu ôû ngoõ ra trasitor quang raát nhoû neân caàn coù maïch khuyeách ñaïi tröôùc khi ñöa ñeán boä
taïo dao ñoäng. Chuùng em choïn IC khueách ñaïi ñeå khueách ñaïi tín hieäu leân ñuû lôùn. Vaäy sô ñoà
khoái cuûa phaàn phaùt vaø phaàn thu laø:

KHOÁI KHOÁI
TRANSITOR KHUYEÁCH ÑAÏI DAO
DAO THU ÑOÄNG
ÑOÄNG

b. Caùc linh kieän trong maïch caûm bieán:


b1. Caáu taïo, nguyeân lí hoaït ñoäng cuûa led hoàng ngoaïi:
_Led ñöôïc caáu taïo töø GaAs vôùi vuøng caám coù ñoä roäng laø 1.43eV töông öùng böùc xaï 900nm.
Ngoaøi ra khi pha taïp Si vôùi nguyeân vaät lieäu GaAlAs, ñoä roäng vuøng caám coù theå thay ñoåi. Vôùi
caùch naøy, ngöôøi ta coù theå taïo ra daûi soùng giöõa 800 - 900nm vaø do ñoù taïo ra söï ñieàu höôûng sao
cho led hoàng ngoaïi phaùt ra böôùc soùng thích hôïp nhaát cho ñieåm cöïc ñaïi cuûa ñoä nhaïy caùc boä thu.
_Hoaït ñoäng: khi moái noái p - n ñöôïc phaân cöïc thuaän thì doøng ñieän qua noái lôùn vì söï daãn ñieän laø
do haït taûi ña soá, coøn khi moái noái ñöôïc phaân cöïc nghòch thì chæ coù doøng ræ do söï di chuyeån cuûa
caùc haït taûi thieåu soá. Nhöng khi chieáu saùng vaøo moái noái, doøng ñieän nghòch taêng leân gaàn nhö tyû
leä vôùi quang thoâng trong luùc doøng thuaän khoâng taêng. Ñaëc tuyeán volt – ampere cuûa led hoàng
ngoaïi nhö sau:

25
Ñoà aùn moân hoïc VÑK

I(A)
ϕ=4
ϕ=3
ϕ=2
ϕ=1
ϕ=0

U(V)

b2. Photon transistor.


Photon Transistor cuõng töông töï nhö transistor thoâng thöôøng nhöng chæ khaùc ôû choã noù
khoâng coù cöïc bazô, thay cho taùc duïng khoáng cheá cuûa doøng vaøo cöïc bazô laø söï khoáng cheá cuûa
chuøm saùng ñoái vôùi doøng colector cuûa transitor hoaëc coù cöïc bazô, nhöng khoáng cheá tín hieäu laø
aùnh saùng.
Caáu taïo cuûa transistor quang
_ Kyù hieäu vaø caáu taïo: C Cöïc thu (colecter)

Cöïc neàn B C
(base) E N P N
Cöïc phaùt (emiter)
B
E u
Kyù hieä Caáu taïo

. Chuyeån tieáp PN emitor ñöôïc cheá taïo nhö caùc transistor thoâng thöôøng, nhöng chuyeån
tieáp PN colector, thì do mieàn bazô caàn ñöôïc chieáu saùng, cho neân noù coù nhieàu hình daïng khaùc
nhau, cuõng coù daïng hình troøn naèm giöõa taâm mieàn bazô. Khi söû duïng transistor quang maéc
maïch töông töï nhö transistor maéc chung emitor (CE). Chuyeån tieáp emitor ñöôïc phaân cöïc thuaän
coøn chuyeån tieáp colector ñöôïc phaân cöïc nghòch. Coù nghóa laø transistor quang ñöôïc phaân cöïc ôû
cheá ñoä khuyeách ñaïi.
Doøng ñieän trong transistor:
Vì noái thu ñöôïc phaân cöïc nghòch neân coù doøng ræ Ico chaïy giöõa thu – neàn vaø vì noái neàn - phaùt
ñöôïc phaân cöïc thuaän neân doøng thu laø (β + 1)Ico ñaây laø doøng toái cuûa quang transistor. Khi chieáu
aùnh saùng vaøo mieàn bazô, trong mieàn bazô coù söï phaùt xaï caëp ñieän töû loã troáng laøm xuaát hieän
doøng IL. Do aùnh saùng khieán doøng thu trôû thaønh:
Ic = (β + 1) .(Ico + IL)

26
Ñoà aùn moân hoïc VÑK

Ñaëc tuyeán cuûa transistor quang

H=9
I(A)

H=7

8 H=5

6 H=4

4
H=1
2

0
5 10 15 20 1
U(V)
Ñaëc tuyeán cuûa transistor quang cuõng gioáng nhö ñaëc tuyeán Volt- ampere cuûa transistor
thoâng thöôøng maéc EC. Ñieàu khaùc nhau ôû ñaây laø caùc tham soá khoâng phaûi laø doøng Ib maø laø
löôïng chieáu saùng
Ñaëc tuyeán Volt ampere cuûa transistor quang öùng vôùi khoaûng Uce nhoû cuõng coù theå goïi
laø mieàn baõo hoøa vì khi aáy do söï tích tuï ñieän tích coù theå coi nhö chuyeån tieáp colector ñöôïc phaân
cöïc thuaän. Cuõng töông töï nhö trong tröôøng hôïp transistor thoâng thuôøng, ñoä doác ñaëc tuyeán trong
mieàn khuyeách ñaïi.
b3. IC dao ñoäng 555
Sô ñoà chaân:

GND VCC
8 6 4 7
TRI DIS
OUT THR
RES CN
5
FLIP
FLOP

Sô ñoà khoái beân trong IC 555 2

OUTPUT

3 1

Chöùc naêng cuûa caùc chaân


Ñaây laø vi maïch ñònh thôøi chuyeân duøng, coù theå maéc thaønh daïng maïch ñôn oån hay baát oån.
Ñieän aùp cung caáp töø 3V ñeán 18V.
Doøng ñieän ra ñeán 200mA (loaïi vi maïch BJT) hay 100mA (loaïi CMOS).
Chaân 1: Noái vôùi masse.
Chaân 2: Nhaän tín hieäu kích thích (trigger).

27
Ñoà aùn moân hoïc VÑK

Chaân 3: Tín hieäu ra (output).


Chaân 4: Phuïc nguyeân veà traïng thaùi ban ñaàu (preset).
Chaân 5: Nhaän ñieän aùp ñieàu khieån (control voltag).
Chaân 6: Möùc ngöôõng ( threshold ).
Chaân 7: Taïo ñöôøng phoùng ñieän cho tuï.
Chaân 8: Caáp nguoàn Vcc.
* IC khuyeách ñaïi LM 324 ( QUAD OPERATIONAL AMPLIFIER).

14 13 12 11 10 9 8

GND
4 +3
+

1+
+2
+3 - 30V

1 2 3 4 5 6 7
LM 324 IC coù 4 taàng khueách ñaïi thuaät toaùn, IC laøm vieäc vôùi loaïi nguoàn ñôn.
Ñoä lôïi treân 100dB, tuy nhieân baêng thoâng heïp hôn LM 3900.
Chuù yù: khoâng ñeå ngaõ ra chaïm vaøo nguoàn V+ hay chaïm thaúng vaøo masse, ñieàu naøy seõ laøm hö
IC.
• IC 567 (TONE DECODER):
IC 567 Boä giaûi maõ aâm saéc.
IC chöùa moät voøng khoùa pha. Khi taàn soá phuø hôïp vôùi taàn soá trung taâm thì chaân 8 coù möùc aùp
thaáp. Do ñoù tín hieäu töø transistor qua taàng khuyeách ñaïi ñöa ñeán ngoõ vaøo cuûa IC 567. Taàn soá
hieän nay ñöôïc xaùc laäp theo maïch ñònh thôøi R vaø C hay 1,1/(RC). R laáy khoaûng 2K ñeán 20K.
567 coù theå taùch doø taàn soá ngaõ vaøo töø 0,01Hz ñeán 500KHz.

1
Tuï ngoõ ra 8 Ngoõ ra
2
Tuï loïc 3 5 7 GND
6 Tuï ñònh thôøi
thoângthaáp 4 67 5 Ñieän trôû ñònh thôøi
Ngoõvaøo
+4,75-9,0V

Ghi chuù: caùc ngaõ vaøo trong maïch loïc thaáp qua tính theo μF seõ ñöôïc xaùc ñònh bôûi n/F0. Trong
ñoù n trong khoaûng 1300 ñeán 62000. Tuï ngaõ ra laáy trò soá gaáp ñoâi tuï trong maïch loïc thaáp qua ôû
ngaõ vaøo.

28
Ñoà aùn moân hoïc VÑK

2.3 LMD18200:(xem phuï luïc 4)


2.3.1 Giôùi thieäu chung:
LMD18200 laø maïch caàu 3A, ñöôïc thieát keá cho caùc öùng duïng ñieàu khieån moâtor.Thieát bò
naøy töông thích möùc TTL vaø CMOS laø moät IC lyù töôûng trong vieäc ñieàu khieån ñoäng cô dc, doøng
ñænh ac coù theå leân tôùi 6A, doøng trung bình cung caáp leân tôùi 3A.
2.3.2 Caùc thoâng soá chính :
-Cung caáp doøng ra lieân tuïc 3A,
-Ñieän theá cung caáp leân tôùi 55V
-Ñieän trôû Rds laø 0,3 Ohm(ñieän trôû maùng vaø nguoàn cuûa FET )
-Möùc logic tích hôïp TTL & CMOS
-Nhieät ñoä caûnh baùo laø 145 ñoä
-Nhieät ñoä shutdown taïi 170 ño
-Coù caûm bieán doøng ñieän vaø nhieät ñoä
2.3.3 ÖÙng duïng:
-Ñieàu khieån ñoâng cô dc vaø moåt böôùc
- Ñieàu khieån robot
_Maùy ñieàu khieån soá
-Maùy in
2.3.4Sô ñoà khoái:
2.3.4 Max 232:(xem phuï luïc 5)
Duøng ñeå giao tieáp maùy vi tính vôùi vi ñieàu khieån qua coång noái tieáp. Töø ñoù coù theå ñieàu
khieån ñoäng cô töø maùy vi tính.

29
Ñoà aùn moân hoïc VÑK

Chöông 4 :
LÖU ÑOÀ THUAÄT TOAÙN VAØ CHÖÔNG TRÌNH

4.1>Löu ñoà thuaät toaùn :


4.1.1>Chöông trình chính :

HIGH
LOW
P3.6

t2
t1

T=65536us

30
Ñoà aùn moân hoïc VÑK

BEGIN

KHÔÛI TAÏO
1. PWM = 0%, giaù trò cuûa T0 ban ñaàu
2. PWMF = 0 ;ñaùnh daáu ñöa ra pwm
3. ÑAËT BRAKE BIT( P3.4=1 ; ñoäng cô döøng )
4.KHÔÛI TAÏO BOÄ ÑÒNH THÔØI :
T0 : 16 BIT ; taïo ngaét ñeå ñöa ra PWM
T1: 16 BIT ; ñeå taïo toác ñoä baund cho coång noái tieáp
5. CAØI ÑAËT NGAÉT :(cho pheùp caùc ngaét sau )
- NGAÉT ÑÒNH THÔØI T1 ; ñeå ñieàu cheá xung sau
nhöõng khoaõng thôøi gian caøi ñaët
- NGAÉT NGOAØI ; ñeå ñöøng khaån caáp neáu quaù
nhieät ñoä hoaêc bò quaù taûi
- NGAÉT DO T0 , ñeå taïo thôøi gian laáy maåu toác ñoä
thöïc

NO
COÙ NHAÁN NUÙT TAÊNG
HOAC GIAM ;caøi ñaët
toác ñoä tröôùc khi chaïy

YES

NO
COÙ NHAÁN NUÙT TAÊNG

YES 1

31
Ñoà aùn moân hoïc VÑK

pwm :=pwm +100 ;tang do rong cua muc 1

HIENTHICAI DAËT

YES
COÙ NHAÁN NUÙT TAÊNG

NO 2

COÙ NHAÁN NUÙT GIAM

NO
YES

pwm :=pwm -100 ;tang do rong cua möùc 1

HIENTHICAI DAËT

3 YES` 4 NO
COÙ NHAÁN NUÙT GIAM

32
Ñoà aùn moân hoïc VÑK

CHON CHIEU QUAY ; p2.3=1 quay thuan p3.3


=1 , p2.3 =0 quay nghich p3.3 = 0

START=1 ? ,coâng taéc


chaïy aán
3 NO`
YES`

CHO PHEÙP TAÁT CAÛ CAÙC NGAÉT ; ñoäng cô baét


ñaàu chaïy

5
` YES`
STOP = 0 ? ,coâng taéc
döøng aán

NO`
ÑOÄNG CÔ DÖØNG ;
p3.4=0

DUØNG R0 ÑEÅ ÑEÁM SOÁ XUNG CAÛM BIEÁN


3
`

HIEÅN THÒ TOÁC ÑOÄ THÖÏC &DAT

YES`

TOÁC ÑOÄ THÖÏC < TOÁC


ÑOÄÑAËT

TANG PWM ; LAM ÑOÏNG


6 CÔ TAÊNG TOÁC ; PWM =
` PWM +5
5
`

33
Ñoà aùn moân hoïc VÑK

6
`

5
TOÁC ÑOÄ THÖÏC=TOÁC `
ÑOÄÑAËT
YES`

YES`

TOÁC ÑOÄ THÖÏC>TOÁC


ÑOÄÑAËT

GIAM PWM ÑEÅ GIAÛM TOÁC


PWM=PWM-5
5
` 5
`

34
Ñoà aùn moân hoïc VÑK

4.1.2>Chöông trình con phuïc vuï ngaét T0 : chöùc naêng laø taïo ra xung co möùc cao thay ñoåi ñöôïc ñoä roäng
treân neàn chu kì coá ñònh laø 65536us.

T0INT

PWMF =1 ? bit ñaùnh


daáu ñaõ ñöa ra pwm
YES`

NO
`

CLR TR0 NHAÕY DEÁN


SETB PWMF ; ñaùnh daáu ñaõ ñöa ra PWM :PWMLOW
SETB P3.6 ; ñöa xung ra möùc cao
MOV TH0 ,#HIGH( PWM)
MOV TL0 ,#LOW( PWM)
SET TR0

RETI

PWMLOW

CLR TR0
CLR PWMF ; ñaùnh daáu ñö ra xung thaáp
CLR P3.6 ; ñöa xung ra möùcTHAP
MOV TH0 ,#HIGH( T-PWM)
MOV TL0 ,#LOW(T- PWM)
SET TR0

RETI

35
Ñoà aùn moân hoïc VÑK

4.1.3>Chöông trình con phuïc vuï ngaét layùy maãu : sau 0,25s seõ laùy giaù trò ñeám trong R0 naïp vaøo A ñeå so saùnh
vôùi toác ñoä ñaët.

T1ISR

MOV R1 ,R3 ,XOAÙ R3

RETI

4.1.4>Chöông trìngh con phuïc vuï ngaét ngoaøi INT0 vaø INT an toaøn :khi ñoäng cô bò quaù taûi hoaëc LM18200 bò
quaù nhieät thì seõ taùc ñoäng vaøo ngaét ngoaøi INT0 vaù INT1 , coøi hu leân vaø bitb strop ñöôïc SET

36
Ñoà aùn moân hoïc VÑK

4.1.5>Chöông trình con hieån thò : giaù trò caøi ñaët ñöôïc löu vaøo R2 , giaù trò thöïc löu vaøo R1

HIEÅN THÒ

HIEÛN THÒ GIAÙ TRÒ DAT


ÑÖA R2 VAØO A
R2=A DIV 1 0
SOÁ DÖ ÔÛ B XUAÁT QUA LED 4
TANG R6

NO
R5 = 4 ?

YES

HIEÛN THÒ GIAÙ TRÒ THÖÏC


ÑÖA R1 VAØO A
R1=A DIV 1 0
SOÁ DÖ ÔÛ B XUAÁT QUA LED 4
TANG R6

YES

NO

R6 = 4 ?

YES

RET

37

Вам также может понравиться