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

1.

1 / Giới thiệu các thông số AT89C51 :


1/ Giới thiệu:
Ñaëc ñieåm vaø chöùc naêng hoaït ñoäng cuûa caùc IC
hoï MSC-51 hoaøn toaøn töông töï nhau, ôû ñaây ta giôùi
thieäu AT89C51.
AT89C51 là phiên bản 8051 có ROM trên chip là bộ nhớ Flash.Phiên
bản này rất thích hợp cho các ứng dụng nhanh vi bộ nhớ Flash có thể xóa
được trong vài giây.
- 4 KB EPROM bên trong
- 128 Bytes RAM nội
- 4 Port xuất nhập I/O 8 bgit
- Giao tiếp nối tiếp
- Cho phép xử lý bit.
- 210 vị trí nhớ có thể định vị bit.
- 4 chu kỳ máy (4 µs đối với thạch anh 12MHz) cho hoạt động nhân
hoặc chia.
- Có các chế độ nghỉ (Low-power Idle) và chế độ nguồn giảm
(Power-down). Ngoải ra, một số IC khác của họ MCS-51 có thêm bộ
định thời thứ 3 và 256 byte RAM nội.
AT89C51 có thể giao tiếp với bộ nhớ ngoài dung lượng lên đến
64KB, 89C51 có 2 ngắt ngoài và 2 ngắt timer mức độ ưu tiên được quy
định cụ thể,8951 cũng có 2 bộ đếm 16 bit,kênh giao tiếp nối 2 chiều.Với
bộ xử lí đại số Boole cho phép xử lí từng bit của RAM va thiết bị ngoại
vi,mỗi lệnh của kéo dài 1 đến 2 micro giây.

2/ caáu truùc beân trong cuûa IC 89C51.


+ Thaønh phaàn chính cuûa vi ñieàu khieån 89C51 la boä
xöû lyù trung taâm hay con goïi laø CPU. CPU bao goàm:
- Thanh ghi tích luyõ A
- Thanh ghi tích luyõ B, duøng cho pheùp nhaân vaø
chia
- Ñôn vò logic hoïc ALU
- Töø traïng thaùi chöông trình PSW
- 4 bank 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öû lyù trung taâm nhaän tröïc tieáp xung töø
boä dao ñoäng
+ Chöông trình ñang chaïy coù theå cho döøng laïi nhôø
moät khoái ñieàu khieån ôû 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.
+ 2 boä ñònh thôøi 16 bit hoaït ñoäng nhö moät boä
ñeám.
+ Caùc coång port 0, port 1, port 2, port 3 ñöôïc söû duïng
vaøo muïc ñích ñieàu khieån, ôû coång port 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 daãn ngaét 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 qua coång noái tieáp coù
theå ñaët trong daûi roäng vaø ñöôïc aán ñònh baèng
moät boä ñònh thôøi.
+ Trong vi dieàu khieån 8051 coøn coù hai thaønh phaàn
quan troïng khaùc laø boä nhôù vaø caùc thanh ghi
+ Boä nhôù coøn coù Ram vaø Rom duøng ñeå löu döõ
lieäu vaø maõ leänh.
+ Caùc thanh ghi söû duïng ñeå löu döõ thoâng tin trong
quaù trình xöû lyù. Khi CPU laøm vieäc, noù laøm thay
ñoâæ noäi dung cuûa caùc thanh ghi

3/ Sô ñoà chaân 89C51:


AT89C51 có tất cả 40 chân có chức
năng như các đường xuất nhập. Trong đó có
24 chân có tác dụng kép (có nghĩa 1 chân có 2
chức năng), mỗi đường có thể hoạt động
như đường xuất nhập hoặc như đường điều
khiển hoặc là thành phần của các bus dữ liệu
và bus địa chỉ.
U 1

39 40
38 P 0 .0 /A D 0 V CC
37 P 0 .1 /A D 1 21
36 P 0 .2 /A D 2 P 2 .0 / A 8 22
35 P 0 .3 /A D 3 P 2 .1 / A 9 23
34 P 0 .4 /A D 4 P 2 .2 /A 1 0 24
33 P 0 .5 /A D 5 P 2 .3 /A 1 1 25
32 P 0 .6 /A D 6 P 2 .4 /A 1 2 26
P 0 .7 /A D 7 P 2 .5 /A 1 3 27
1 P 2 .6 /A 1 4 28
2 P 1 .0 P 2 .7 /A 1 5
3 P 1 .1 10
4 P 1 .2 P 3 .0 / R X D 11
5 P 1 .3 P 3 .1 /T X D 12
6 P 1 .4 P 3 .2 / IN T 0 13
7 P 1 .5 P 3 .3 / IN T 1 14
8 P 1 .6 P 3 . 4 /T 0 15
P 1 .7 P 3 . 5 /T 1 16
19 P 3 .6 /W R 17
18 X TA L 1 P 3 .7 /R D
X TA L 2 30
31 A L E /P R O G 29
9 E A /V P P P S E N 20
RS T GND

A T89C 51

a. Các Port :
- Port 0: Có hai chức năng từ chân 31 đến chân 39 trong các thiết
kế nhỏ. ( không dùng bộ nhớ mở rộng ) .Có hai chức năng như các
đường I/O . Đối với các thiết kế cỡ lớn ( với bộ nhớ mở rộng ) nó
được kế hợp kênh giữa các Bus.
- Port 1: laø port I/O treân caùc chaân töø chaân soá 1
ñeán chaân soá 8. coù theå duøng caùc thieát bò
ngoaøi neáu caàn. Port 1 khoâng coù chöùc naêng
khaùc vì theá chuùng ta chæ ñöôïc duøng trong caùc
thieát bò ngoaøi.
- Port 2: laø port coâng duïng keùp treân caùc chaân
22 ñeán 28 ñöôïc duøng nhö caùc ñöôøng xuaát
nhaäp hoaëc byte cao cuûa bus ñòa chæ ñoái vôùi
caùc thieát keá môû roäng.
- Port 3: laø port coâng duïng keùp treân caùc chaân
10 ñeán chaân 17. Caùc chaân cû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:

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 T0 Ngoõ vaøo cuûa
timer/courter 0
P3.5 T1 Ngoõ vaøo cuûa
timer/courter 1
P3.6 WR Xung ghi boä nhôù döõ
lieäu ngoaøi
P3.7 RD Xung ñoïc boä nhôù döõ
lieäu ngoaøi

b .Nhóm chân nguồn,dao động và điều khiển


- VCC - Chân 40 được nối lên nguồn 5V.
- GND - Chân 20 nối đất
- XTAL1-chân 19 và XTAL2-chân 18 : Bộ dao động được tích
hợp bên trong 8951, khi sử dụng 8951 người thiết kế chỉ cần kết nối
thêm thạch anh và các tụ như hình vẽ trong sơ đồ XTAL1-chân 19 và
XTAL2-chân 18. Tần số thạch anh thường sử dụng cho AT89C51 là
12Mhz.

+ Chaân PSEN: laø chaân 29, coù 4 tín hieäu ñieàu


khieån, laø tín hieäu ñeå cho pheùp boä nhôù chöông
trình môû roäng vaø thöôøng ñöôïc noái leân chaân OE
cuûa moät Eprom ñeå cho pheùp ñoïc caùc byte maõ
leänh.
PSEN ôû 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õ thuï ñoäng (möùc cao).
+ Chaân ALE: (choát) 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öû
lyù 8585,8088,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ø
byte thaáp cuûa ñòa chæ, ALE laø tín hieäu ñeå choát
ñòa chæ vaøo 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 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 chíp vaø coù theå ñöôïc laøm
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 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.

+ Chaân EA: (truy xuaát ngoaøi):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 chi ñöôï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 chíp.
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ø thi haønh
chöông trình 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.

+ Chaân RST(reset): Khi tín hieäu naøy ñöôïc ñöa leân


möùc cao(ít nhaát phaûi 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.
4/ Các thanh ghi bộ định thời (Timer):
- AT89C51 có hai thanh ghi bộ định thời/đếm 16 bit được dung cho định
thời hoặc đếm sự kiên.
a. Thanh ghi cheá ñoä ñònh thôøi (TMOD):

- Khoâng ñöôïc ñònh ñòa chæ bit.


- Ñöôïc duøng ñeå ñònh cheá ñoä hoaït ñoäng cho caùc
timer.
- Chöùc naêng töøng bit:
+ M1, M0: choïn cheá ñoä hoaït ñoäng.

M1 M0 CHẾ ĐỘ (MODE)
0 0 0
0 1 1
1 0 2
1 1 3

+ T/C : bit choïn chöùc naêng ñeám hoaëc ñònh thôøi


cho timer.
+ Gate: bit ñieàu khieån coång cho boä ñònh thôøi.

b. Thanh ghi ñieàu khieån ñònh thôøi (TCON):

- Chöùa caùc bit ñieàu khieån vaø traïng thaùi cuûa timer
0 vaø 1 ôû 4 bit cao, 4 bit thaáp ñöôïc duøng cho chöùc
naêng ngaét (interrupt).
- Chöùc naêng töøng bit:
+ TF x: côø traøn cuûa timer x (x laø 0 hay 1)
+ TRx = 0: khoâng cho pheùp timer chaïy.
+ TRx = 1: cho pheùp timer chaïy.

5/ Caùc thanh ghi port noái tieáp (Serial port) :


* Thanh ghi SBUF (Serial Buffer):
- ôû ñòa chæ 99H laø boä ñeäm nhaäp/xuaát noái
tieáp. Khi xuaát döõ lieäu thì ghi leân SBUF, khi nhaäp döõ
lieäu thì ñoïc töø SBUF.
- Caùc cheá ñoä hoaït ñoäng khaùc nhau cuûa port
noäi tieáp ñöôïc laäp trình thoâng qua thanh ghi ñieàu
khieån port noái tieáp SCON (Serial Control) ôû ñòa chæ
98H. Ñaây laø thanh ghi ñöôïc ñònh ñòa chæ töøng bit.

* Thanh ghi ñieàu khieån port noái tieáp SCON

- Ñòa chæ 99H.


- Ñònh ñòa chæ bit.
- Chöùc naêng caùc bit:

+ SM0, SM1: choïn cheá ñoä hoaït ñoäng cuûa port noái
tieáp

Chế độ
SM0 SM1 Mô tả
(Mode)
0 0 0 Thanh ghi dịch.
0 1 1 UART 8 bit tốc độ thay đổi
1 0 2 UART 9 bit tốc độ cố định.
1 1 3 UART 9 bit tốc độ thay đổi.

+ SM2: choïn cheá ñoä hoaït ñoäng cuûa port noái tieáp.
SM2 = 1: cho pheùp truyeàn thoâng ña xöû lyù ôû caùc
cheá ñoä 2 vaø 3; bit RI seõ
khoâng ñöôïc tích cöïc neáu bit thöù 9 nhaän ñöôïc laø 0.
+ REN: bit cho pheùp thu.
REN = 1: cho pheùp thu.
REN = 0: khoâng cho pheùp thu.
+ TB8: bit phaùt thöù 9 (ôû cheá ñoä 2 vaø 3), coù theå
ñaët vaø xoùa baèng phaàn meàm.
+ RB8: bit thu thöù 9 (ôû cheá ñoä 2 vaø 3), coù theå
ñaët vaø xoùa baèng phaàn meàm.

6/ Caùc thanh ghi ngaét (Interrupt):


- 8031/8051 coù 5 nguoàn ngaét:
+ 2 ngaét ngoaøi: ngaét ngoaøi 0: qua chaân 0INT (P3.2)
Ngaét ngoaøi 1: qua chaân 1INT (P3.3)
+ 3 ngaét trong: ngaét timer 0
Ngaét timer 1
Ngaét port noái tieáp.

* Caùc thanh ghi lieân quan ñeán ngaét :


a. Thanh ghi cho pheùp ngaét IE (Interrupt Enable)

- Ñöôïc ñònh ñòa chæ bit.


- Chöùc naêng töøng bit:
EA: cho pheùp toaøn boä .
ET2: cho pheùp ngaét timer 2 (neáu coù) .
ES: cho pheùp ngaét port noái tieáp .
ET1: cho pheùp ngaét timer 1 .
EX1: cho pheùp ngaét ngoaøi 1
ET0: cho pheùp ngaét timer 0 .
EX0: cho pheùp ngaét ngoaøi 0 .
- Ñeå cho pheùp 1 nguoàn ngaét, caàn phaûi coù:
+ EA = 1
+ Bit cho pheùp ngaét töông öùng baèng 1.

b/ Thanh ghi öu tieân ngaét IP (Interrupt Priority)

- Ñöôïc ñònh ñòa chæ bit.


- Bit = 1: möùc öu tieân cao
- Bit = 0: möùc öu tieân thaáp
- Maëc nhieân sau khi reset, taát caû caùc ngaét ôû möùc
öu tieân thaáp.
- Neáu 2 ngaét vôùi möùc öu tieân khaùc nhau xuaát
hieän ñoàng thôøi, ngaét coù möùc öu tieân cao seõ ñöôïc
phuïc vuï tröôùc. Ñoàng thôøi, ngaét coù möùc öu tieân cao
cuõng coù theå taïm döøng chöông trình phuïc vuï ngaét
cuûa ngaét coù möùc öu tieân thaáp.
- Neáu caùc ngaét coù cuøng möùc öu tieân xuaát hieän
ñoàng thôøi, vieäc xaùc ñònh ngaét naøo ñöôïc phuïc vuï
tröôùc seõ theo thöù töï: ngắt ngoaøi 0, ngắt timer 0, ngắt
ngoaøi 1,ngắt timer 1,ngắt port noái tieáp,ngắt timer 2 (ñoái
vôùi 8032/8052).

c/ Thanh ghi TCON

- Ñònh ñòa chæ bit.


- Chöùc naêng caùc bit lieân quan ñeán ngaét (interrupt):
+ IEx: côø ngaét ngoaøi x (IEx = 1 → taïo ngaét ngoaøi x)
+ ITx: bit xaùc ñònh loaïi taùc ñoäng ngaét ngoaøi x :
ITx = 0 : taùc ñoäng möùc 0
ITx = 1 : taùc ñoäng caïnh xuoáng (thöôøng duøng)

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