Thông tin tài liệu:
Mở rộng bộ nhớ là một khả năng quan trọng đối với vi điều khiển nhằm tránh gặp bế tắc trong vấn đề thiết kế. Họ MCs-51 có thể mở rộng 64Kbs và bộ nhớ mã lệnh 64Kbs dữ liệu. Các IC giao tiếp ngoại vi cũng có thể thêm vào để tăng năng xuất nhập. Nó trở thành một phần của bộ dữ liệu ngoại và được giải mã ÍO như bộ nhớ. Khi bộ nhớ ngoài được sử dụng, pỏt 0 không được dùng làm cổng xuất nhập....
Nội dung trích xuất từ tài liệu:
Ứng dụng KIT 8051 dùng để chuyển đổi A/D-D/A, chương 8
Chương 8: BOÄ NHÔÙ NGOAØI
Môû roäng boä nhôù laø moät khaû naêng quan troïng ñoái vôùi vi
ñieàu khieån nhaèm traùnh gaëp beá taéc trong vaán ñeà thieát keá. Hoï
MCs-51 coù theå môû roäng 64Kbs vaø boä nhôù maõ leänh 64Kbs döõ
lieäu. Caùc IC giao tieáp ngoaïi vi cuõng coù theå theâm vaøo ñeå taêng
naêng xuaát nhaäp. Noù trôû thaønh moät phaàn cuûa boä döõ lieäu ngoaïi vaø
ñöôïc giaûi maõ I/O nhö boä nhôù.
Khi boä nhôù ngoaøi ñöôïc söû duïng, port 0 khoâng ñöôïc duøng
laøm coång xuaát nhaäp. Noù trôû thaønh bus duøng ñeå phaân keânh ñòa
chæ vaø döõ lieäu, ALE choát noù nhö laø bytes thaáp cuûa bus ñòa chæ khi
baét ñaàu moãi chu kyø truy xuaát boä nhôù ngoaøi. Port 2 thöôøng duøng
laøm byte cao cuûa bus ñòa chæ.
Chu kyø boä nhôù
A0 A15 Ñòa chæ
D0 D7 Döõ lieäu
(a) Khoâng phaân keânh (24 chaân)
Chu kyø boä nhôù
AD8 AD15 Ñòa chæ
AD0 AD7 Ñòa chæ Döõ lieäu
(b) Phaân keânh (16 chaân)
Hình 4.5 Phaân keânh bus ñòa chæ vaø bus döõ lieäu
Hình treân moâ taû vieäc phaân keânh vaø khoâng phaân keânh bus
ñòa chæ vaø bus döõ lieäu. Neáu khoâng phaân keânh, vôùi 16 chaân ñòa
chæ vaø 8 chaân döõ lieäu ta coù 24 chaân cho bus ñòa chæ vaø bus döõ
lieäu. Trong khi ñoù neáu phaân keânh, 8 chaân döõ lieäu ñöôïc duøng
chung vôùi 8 chaân thuoäc byte thaáp cuûa bus ñòa chæ neân chæ coù 16
chaân cho bus ñòa chæ vaø bus döõ lieäu. Ñieàu naøy coù yù nghóa lôùn
trong vieäc cheá taïo IC.
Thöù töï phaân keânh nhö sau : ôû nöõa chu kyø ñaàu, byte thaáp
cuûa ñòa chæ xuaát ra port 0 vaø ñöôïc choát baèng ALE. Byte naøy ñöôïc
choát ôû boä choát trong suoát chu kyø boä nhôù. Trong nöõa chu kyø tieáp
theo port 0 laø bus döõ lieäu, coù theå xuaát nhaäp tuøy yù.
Truy xuaát boä nhôù maõ leänh ngoaøi (External Code memory):
Boä nhôù maõ ngoaøi ñöôïc ñoïc baèng tín hieäu PSEN (hình 4.6).
Trong moät chu kyø maùy ALE taùc ñoäng 2 laàn vaø 2 bytes ñöôïc ñoïc
töø boä nhôù chöông trình. Giaûn ñoà thôøi gian cuûa hoaït ñoäng naøy
ñöôïc goïi laø chu kyø laáy leänh (hình 4.7).
Truy xuaát boä nhôù döõ lieäu ngoaøi (External Code memory):
Ñaây laø boä nhôù chöùa döõ lieäu, thöôøng laø RAM vaø ñöôïc truy
xuaát bôûi tín hieäu RD vaø WR. Döõ lieäu naøy chæ ñöôïc truy xuaát
baèng leänh MOVX thoâng qua thanh ghi con troû döõ lieäu DPTR,
hoaëc R0, R1.
RAM giao tieáp vôùi 8051 gioáng nhö EPROM. Ngoaïi tröø
chaân RD ñöôïc noái vôùi chaân OE vaø chaân WR ñöôïc noái vôùi chaân
W. Coøn laïi caùc bus döõ lieäu vaø ñòa chæ noái nhö EPROM. Vôùi 16
ñöôøng ñòa chæ ta coù theå coù ñeán 64Kbs cho vuøng nhôù döõ lieäu.
Giaûn ñoà thôøi gian cuûa vieâc ñoïc vuøng nhoù döõ lieäu ngoaøi khi
thi haønh leänh “MOV A,@DPRT” ñöôïc cho ôû hình 4.8. Löu yù chæ
coù chaân RD ñöôïc duøng cho pheùp RAM.
Giaûn ñoà thôøi gian cuûa vieäc ghi cuõng töông töï töø ñöôøng WR
xuoáng möùc thaáp vaø döõ lieäu xuaát ra port 0.
Port 2 coù theå khoâng duøng laøm byte cao cuûa bus ñòa chæ
trong heä thoáng khoâng söû duïng vuøng nhôù maõ ngoaøi maø söû duïng
vuøng nhôù döõ lieäu ngoaøi nhoû. Taùm bit ñòa chæ coù theå truy xuaát
ñöôïc moät vuøng nhôù 256 bytes, ñöôïc goïi laø moät trang boä nhôù.
Neáu vuøng nhôù naøy lôùn hôn 256 bytes ta coù theå duøng theâm moät
vaøi chaân cuûa port 2 ñeå choïn trang.
Khi truy xuaát moät trang (256 bytes) cuûa vuøng döõ lieäu ngoaøi
ta coù theå duøng R0 hoaëc R1 ñeå laøm con troû ñòa chæ troû ñeán byte döõ
lieäu caàn truy xuaát. Ví duï nhöõng leänh ñoïc noäi dung cuûa RAM
ngoaøi coù ñòa chæ 0050H vaøo thanh tích luõy.
MOV R0, #50H ;
MOV A, @R0 ;
Giaûi maõ ñòa chæ:
Neáu 8051 söû duïng caû EPROM vaø RAM ngoaøi ñoøi hoûi phaûi
giaûi maõ ñòa chæ. Vieäc giaûi maõ ñòa chæ raát quen thuoäc ñoái vôùi haàu
heát vi xöû lyù. Ví duï neáu duøng EPROM 8K vaø RAM 8K, bus ñòa
chæ giaûi maõ ñeå choïn IC giôùi haïn trong 8Kbytes: 0000H ñeán
1FFFH, vaø 2000H ñeán 3FFFH, v.v…
Thoâng thöôøng ta duøng IC giaûi maõ 74138 vôùi ngoõ vaøo laø 3
bits cao nhaát cuûa bus ñòa chæ. Do ñoù moãi ngoõ töông öùng vôùi
8Kbs. Caùc ngoõ ra naøy ñöa vaøo caùc chaân CS cuûa caùc IC nhôù. Löu
yù söï phaân chia tín hieäu cho pheùp xuaát cuûa EPROM vaø RAM
khaùc nhau (RD cho RAM vaø PSEN cho EPROM). 8051 coù theå coù
ñeán 64Kbytes cho moãi vuøng ROM vaø RAM.
Hình 4.8: Giaûn ñoà thôøi gian khi ñoïc döõ lieäu töø boä nhôù ngoaøi
Söï choàng laép cuûa vuøng maõ leänh vaø döõ lieäu ngoaøi:
Vì boä nhôù maõ leänh chæ ñöôïc ñoïc neân seõ baát tieän trong vieäc
phaùt trieån phaàn meàm. Laøm theá naøo ñeå söûa loãi cuûa chöông trình
naèm trong kit khi boä nhôù maõ leänh chæ coù theå ñoïc. Bieän phaùp
thöôøng ñöôïc söû duïng ôû ñaây laø choàng laép hai vuøng maõ leänh vaø döõ
lieäu leân nhau. Tín hieäu PSEN duøng ñeå ñoïc maõ leänh vaø tín hieäu
RD duøng ñeå ñoïc döõ lieäu trong cuøng moät boä nhôù. RAM chöùa caû
chöông trình vaø döõ lieäu. Hai tín hieäu RD vaø PSEN ñöôïc ñöa vaøo
coång AND. Ngoõ ra cuûa coång AND noái vôùi chaân OE cuûa RAM.
Maïch ôû hình 4.9 cho pheùp ghi döõ lieäu vaøo RAM. Vì vaäy chöông
trình coù theå ñöôïc load vaøo RAM (baèng caùch ghi döõ lieäu vaøo
RAM) vaø thi haønh (baèng caùch truy xuaát nhö boä nhôù maõ leänh).
RAM
W
WR
OE
RD
PSEN
Hình 4.9 Maïch taïo neân söï choàng laép hai vuøng nhôù
VII – HOAÏT ÑOÄNG RESET
8051 ñöôïc reset khi giöõ chaân RST ôû möùc cao ít nhaát trong
hai chu kyø maùy vaø sau ñoù traû veà möùc thaáp. RST coù theå ñöôïc noái
vôùi switch hoaëc maïng tuï, ...