Tài liệu Điện năng kế điện tử giao tiếp máy tính: ... Ebook Điện năng kế điện tử giao tiếp máy tính
86 trang |
Chia sẻ: huyen82 | Lượt xem: 1556 | Lượt tải: 0
Tóm tắt tài liệu Điện năng kế điện tử giao tiếp máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Boä Giaùo Duïc vaø Ñaøo Taïo
Ñaïi Hoïc Quoác Gia Tp.Hoà Chí Minh
Tröôøng ÑH Sö Phaïm Kó Thuaät
Khoa Ñieän
Boä Moân : Ñieän Töû
NHIEÄM VUÏ LUAÄN VAÊN TOÁT NGHIEÄP
Sinh vieân thöïc hieän : TRAÀN ÑAÏI NGHÓA
Lôùp : 95 KÑÑ
MSSV : 95101099
Soá ñieän thoaïi : 8854340 ( Tp.Hoà Chí Minh ).
1/ Teân ñeà taøi :
Ñieän Naêng Keá Ñieän Töû Giao Tieáp Maùy Tính
2/ Noäi Dung Luaän Vaên Toát Nghieäp :
Tính toaùn caùc thoâng soá kó thuaät.
Thieát keá phaàn cöùng.
Giôùi thieäu phaàn meàm.
3/ Caùc Baûn Veõ:
Sô ñoà nguyeân lí.
4/ Giaùo Vieân Höôùng Daãn : Thaày QUAÙCH THANH HAÛI
5/ Ngaøy Giao Nhieäm Vuï : 13 / 12 / 1999.
6/ Ngaøy Hoaøn Thaønh Nhieäm Vuï : 28 / 2 / 2000.
Giaùo Vieân Höôùng Daãn Kí Teân :
_ _ _ _ _ _ _ _ _ _ _ _ _ Thoâng Qua Boä Moân
_ _ _ _ _ _ _ _ _ _ _ _ _ Ngaøy ….. thaùng ….. naêm 2000.
_ _ _ _ _ _ _ _ _ _ _ _ _ Chuû nhieäm Boä Moân
_ _ _ _ _ _ _ _ _ _
Quaùch Thanh Haûi _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
LÔØI GIÔÙI THIEÄU :
Laø sinh vieân thuoäc ngaønh Ñieän töû, baûn thaân ngöôøi laøm ñeà taøi töø laâu ñaõ coù mong muoán tröôùc khi ra tröôøng seõ coù cô hoäi söû duïng nhöõng kieán thöùc ñaõ hoïc ñeå taïo ra moät saûn phaåm coù ích cho xaõ hoäi cuõng nhö chính baûn thaân vaø ñoù cuõng laø dòp ñeå ñaùnh giaù laïi kieán thöùc ñaõ hoïc taäp trong suoát quaù trình reøn luyeän treân giaûng ñöôøng Ñaïi hoïc.
Luaän vaên toát nghieäp coù leõ laø cô hoäi toát nhaát maø nhaø tröôøng ñaõ taïo ra ñeå baûn thaân ngöôøi laøm coù dòp thöû thaùch chính mình tröôùc khi tieáp caän vôùi thöïc teá.
Ñöôïc söï gôïi yù cuûa thaày TRAÀN SUM, ngöôøi laøm luaän vaên ñaõ quyeát ñònh choïn ñeà taøi “Ñieän naêng keá ñieän töû giao tieáp maùy tính”. Tröôùc khi giao ñeà taøi naøy thaày TRAÀN SUM cuõng ñaõ hoûi thöû coù daùm laøm khoâng vì ñaây laø moät ñeà taøi môùi. Luùc ñoù baûn thaân ngöôøi laøm cuõng caûm thaáy hôi lo nhöng cuõng ñaõ ñoàng yù nhaän ñeà taøi vaø chæ bieát laø seõ coá gaéng heát söùc mình.
“Ñieän naêng keá ñieän töû” laø moät ñeà taøi öùng duïng kó thuaät ñieän töû trong thieát bò ño löôøng vaø hieån thò soá nhöng ñaõ naâng cao hôn moät chuùt so vôùi caùc thieát bò ño löôøng ñieän töû tröôùc ñaây laø coù khaû naêng tính toaùn soá lieäu ñaõ thu thaäp baèng phaàn meàm vaø giao tieáp ñöôïc vôùi maùy tính. Ñieàu naøy taïo nhieàu thuaän lôïi cho vieäc söû duïng vaø ñieàu khieån, vaø ñaây cuõng laø xu höôùng chung cuûa caùc thieát bò ngaøy nay.
Nhö vaäy, khaâu cô baûn cuûa ñeà taøi laø ño löôøng caùc ñaïi löôïng ñieän baèng caùc phöông phaùp truyeàn thoáng nhöng vì caùc boä phaän xöû lí phía sau laø thieát bò soá cho neân tuy laø vaãn ño ñaïc caùc ñaïi löôïng ñoù nhöng phöông phaùp ñaõ coù khaùc ñi chuùt ít nhaèm laøm töông hôïp vôùi thieát bò ñieän töû.
Khi ñaõ coù caùc ñaïi löôïng ñieän ñöôïc ño ñaïc cuï theå thì phaàn coâng vieäc tieáp theo laø do phaàn meàm chòu traùch nhieäm xöû lí thoâng qua moät thieát bò coù khaû naêng tính toaùn vaø xöû lí döõ lieäu ñoù coù theå laø moät vi xöû lí hoaëc moät vi ñieàu khieån coù söï keát noái vôùi caùc thieát bò phuï trôï beân ngoaøi.
Ñeà taøi do vaäy ñaõ coù söï lieân quan ñeán khaù nhieàu vaán ñeà lí thuyeát, ñieàu naøy ñoøi hoûi baûn thaân ngöôøi laøm phaûi caàn phaûi tìm toøi vaø vaän duïng.
Trong xu theá hieän nay laø vieäc ñieän töû hoùa caùc thieát bò phuïc vuï cho con ngöôøi nhaèm ngaøy caøng ñaùp öùng ñöôïc troïn veïn yeâu caàu cuûa ngöôøi duøng, do vaäy baûn thaân ngöôøi laøm ñeà taøi caûm thaáy caàn phaûi reøn luyeän mình nhieàu hôn nöõa khoâng chæ trong luaän vaên toát nghieäp ra tröôøng maø moät ñieàu coøn quan troïng hôn nöõa laø khi ñaõ ra tröôøng vaãn phaûi khoâng ngöøng phaán ñaáu.
KEÁT LUAÄN VAØ HÖÔÙNG PHAÙT TRIEÅN ÑEÀ TAØI :
Ñeà taøi “Ñieän naêng keá ñieän töû giao tieáp maùy tính” ñaõ ñöôïc hoaøn thaønh trong thôøi haïn ñaõ giao. Ñoái vôùi moät ñeà taøi môùi thì vieäc nghieân cöùu laàn ñaàu chaéc chaén khoâng theå traùnh khoûi söï thieáu soùt do vaäy tuy ñaõ coá gaéng nhieàu nhöng ngöôøi laøm ñeà taøi vaãn chöa thaät söï ñaùp öùng ñöôïc heát caùc yeâu caàu ñeà ra ban ñaàu, raát mong söï thoâng caûm cuûa quí Thaày, Coâ vaø caùc baïn sinh vieân.
Nhìn chung, ñeà taøi ñaõ hoaøn thaønh xong nhöõng vaán ñeà chính yeáu nhaát vaø ñieàu ñoù giuùp taïo ra söôøn chung cho vieäc nghieân cöùu phaùt trieån sau naøy.
Ñieàu caàn laøm ñoái vôùi ngöôøi keá tuïc ñeà taøi laø nghieân cöùu saâu hôn taát caû caùc vaán ñeà ñaõ neâu ra trong luaän vaên toát nghieäp nhaèm tìm ra phöông phaùp toát hôn hoaëc hoaøn chænh phöông phaùp ñaõ neâu, söï gôïi yù naøy chæ mang tính chaát chung chung maø ñieàu caàn thieát laø phaûi bieát töï suy nghó.
Maïch ñieän ñaõ trình baøy chöa phaûi laø moät maïch ñieän hoaøn haûo vì vieäc söû duïng caùc thieát bò chöa coù söï chuaån hoùa maø ñeàu phaûi taän duïng caùc thieát bò coù saün, ñaây laø moät ñieàu baét buoäc ngoaøi yù muoán. Neáu nhö coù theå thì taát caû caùc boä phaän beân trong ñieän naêng keá ñieän töû ñeàu ñöôïc cheá taïo chuyeân duøng, khi ñöôïc nhö vaäy thì chaéc chaén thieát bò hoaït ñoäng seõ chính xaùc vaø beàn bæ hôn nhieàu. Nhöng ñieàu naøy chæ coù theå trôû thaønh hieän thöïc khi moâ hình vaø lí thuyeát tính toaùn thaät chi tieát vaø chính xaùc sau ñoù caàn traûi qua moät thôøi gian daøi thöû nghieäm vaø ñieàu chænh. Sau khi ñaõ ñaït ñöôïc taát caû caùc thoâng soá yeâu caàu vaø ñöôïc ngaønh ñieän löïc chaáp nhaän thì luùc ñoù môùi ñaët haøng taïi caùc xí nghieäp ñieän töû ñeå saûn xuaát caùc boä phaän. Ñaây cuõng laø ñieàu mong moûi lôùn nhaát cuûa ngöôøi laøm ñeà taøi naøy.
Ngoaøi ra, neáu nhö phaàn meàm coù theå ñöôïc vieát toát hôn seõ thay theá cho moät soá thieát bò phaàn cöùng beân ngoaøi, nhöng luùc ñoù caàn phaûi löu yù veà khaû naêng hoaït ñoäng cuûa khoái xöû lí khoâng theå naøo ñaùp öùng ñöôïc taát caû caùc yeâu caàu töø thieát bò beân ngoaøi maø khoâng caàn söï trôï giuùp töø moät thieát bò phaàn cöùngï.
Caàn phaûi löu yù raèng, coâng vieäc quan troïng nhaát cuûa khoái ñieàu khieån laø thu thaäp tín hieäu taïi caùc ñaàu doø vaø xöû lí döõ lieäu ñeå tính toaùn ra ñaïi löôïng mong muoán laø ñieän naêng tieâu thuï, do vaäy khi vieát phaàn meàm ñeå ñaûm nhaän nhöõng coâng vieäc thay theá cho phaàn cöùng beân ngoaøi töùc laø khoái xöû lí seõ phaûi gaùnh vaùc theâm nhieäm vuï thì coù theå gaây ra söï sai soá quaù möùc cho pheùp vaø luùc ñoù chöông trình seõ trôû neân quaù phöùc taïp.
Sinh vieân thöïc hieän ñeà taøi
Traàn Ñaïi Nghóa
CHÖÔNG 1:
TOÙM LÖÔÏC
CAÙC VAÁN ÑEÀ LÍ THUYEÁT
LIEÂN QUAN ÑEÀ TAØI
Ñeà taøi : “Ñieän naêng keá ñieän töû giao tieáp maùy tính” coù lieân quan ñeán nhieàu vaán ñeà lí thuyeát. Nhöng trong phaïm vi cuûa moät Luaän Vaên Toát Nghieäp, ngöôøi laøm ñeà taøi khoâng theå trình baøy chi tieát töøng vaán ñeà ñöôïc, maø chæ ñeà caäp ñeán moät caùch toùm löôïc nhaèm laøm cô sôû cho caùc lí luaän sau naøy. Do vaäy neáu caùc baïn sinh vieân neáu coù nhu caàu tìm hieåu saâu hôn haõy neân tham khaûo trong caùc taøi lieäu chuyeân moân cuûa ngaønh.
A. VI ÑIEÀU KHIEÅN 8951
I . MOÂ TAÛ CAÁU TRUÙC PHAÀN CÖÙNG CUÛA VI ÑIEÀU KHIEÅN 8951.
1/ Giôùi thieäu hoï MCS51:
MCS51 laø moät hoï IC vi ñieàu khieån (Microcontroller ) do haõng Intel saûn xuaát. Caùc IC tieâu bieåu cho hoï MCS51 laø 8051 vaø 8031. Ñaëc bieät, vi ñieàu khieån 8951 ñöôïc saûn xuaát gaàn ñaây mang caùc ñaëc ñieåm sau:
4 Kbytes EEPROM.
128 bytes RAM.
4 ports I/O (Input/Output).
2 boä ñònh thôøi (timer) 16 bits.
Giao tieáp noái tieáp.
64 Kbytes khoâng gian boä nhôù chöông trình môû roäng.
64 Kbytes khoâng gian boä nhôù döõ lieäu môû roäng.
Moät boä xöû lí luaän lí (thao taùc treân caùc bit ñôn).
210 bits ñöôïc ñòa chæ hoùa.
Boä nhaân chia 4 ms.
2/ Sô löôïc veà caùc chaân cuûa 8951:
mC 8951 coù taát caû 40 chaân coù chöùc naêng nhö caùc ñöôøng xuaát nhaäp. Trong ñoù coù 24 chaân coù coâng duïng keùp, moãi ñöôøng coù theå hoaït ñoäng nhö ñöôøng xuaát nhaäp hoaëc nhö ñöôøng ñieàu khieån hoaëc laø thaønh phaàn cuûa bus döõ lieäu vaø bus ñòa chæ.
2.1/ Heä thoáng giao tieáp port:
a/ Port 0:
Port 0 laø moät port hai chöùc naêng treân caùc chaân 32 – 39. Trong caùc thieát keá côõ nhoû (khoâng duøng boä nhôù môû roäng) noù coù chöùc naêng nhö caùc ñöôøng I/O. Ñoái vôùi caùc thieát keá lôùn vôùi boä nhôù môû roäng, noù ñöôïc hôïp keânh giöõa bus döõ lieäu vaø byte thaáp cuûa bus ñòa chæ.
b/ Port 1:
Port 1 laø moät port I/O treân caùc chaân 1 – 8. Caùc chaân ñöôïc kí hieäu:
P1.0 ; P1.1 ; P1.2 … coù theå duøng cho giao tieáp vôùi caùc thieát bò ngoaøi neáu caàn. Port 1 khoâng coù chöùc naêng khaùc, vì vaäy chuùng chæ ñöôïc duøng cho giao tieáp vôùi caùc thieát bò ngoaøi.
c/ Port 2:
Port 2 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/ Port 3:
Port 3 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ính ñaëc bieät cuûa 8951 nhö ôû baûng sau:
Bit
Teân
Chöùc naêng chuyeån ñoåi
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RXD
TXD
INT0\
INT1\
T0
T1
WR\
RD\
Döõ lieäu nhaän cho port noái tieáp
Döõ lieäu phaùt cho port noái tieáp
Ngaét 0 beân ngoaøi
Ngaét 1 beân ngoaøi
Ngoõ vaøo cuûa Timer/counter 0
Ngoõ vaøo cuûa Timer/counter 1
Xung ghi boä nhôù döõ lieäu ngoaøi
Xung ñoïc boä nhôù döõ lieäu ngoaøi
2.2/ Caùc tín hieäu ñieàu khieån:
mC 8951 coù 4 tín hieäu ñieàu khieån:
a/ PSEN\ (Program Store Enable):
PSEN\ laø tín hieäu ra treân chaân 29. Noù laø tín hieäu ñieàu khieån cho pheùp boä nhôù chöông trình môû roäng, PSEN\ 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.
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 döõ lieäu vaø ñöôïc choát vaøo thanh ghi leänh cuûa 8951 ñeå giaûi maõ leänh. Neáu thi haønh chöông trình trong ROM noäi (8951) thì PSEN\ seõ ôû möùc thuï ñoäng (möùc cao).
b/ 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 vi xöû lí 8085, 8088, 8086.
mC 8951 duøng ALE moät caùch töông töï cho vieäc giaûi keânh caùc bus ñòa chæ vaø döõ lieäu.
Khi port 0 ñöôïc duøng trong cheá ñoä chuyeån ñoåi: vöøa laø bus döõ lieäu vöøa laø byte thaáp cuûa bus ñòa chæ, ALE laø tín hieäu ñeå choát byte thaáp ñòa chæ vaøo moät thanh ghi beân ngoaøi trong nöûa ñaàu chu kì boä nhôù. Sau ñoù, caùc ñöôøng port 0 duøng ñeå xuaát nhaäp döõ lieäu trong nöûa sau cuûa chu kì 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øm nguoàn xung nhòp cho caùc phaàn khaùc cuûa heä thoáng. Neáu xung nhòp treân 8951 laø 12 Mhz thì ALE coù taàn soá 2 Mhz. Chæ ngoaïi tröø khi thi haønh leänh MOVX, moät xung ALE seõ bò maát. Trong tröôøng hôïp laø 8051 thì chaân naøy cuõng ñöôïc laøm ngoõ vaøo cho xung laäp trình cho EPROM trong chip.
c/ 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, 8951 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ì 8031 khoâng coù boä nhôù chöông trình treân chip. Neáu EA\ ñöôïc noái möùc thaáp thì boä nhôù chöông trình beân trong 8951 seõ bò caám vaø chöông trình chæ ñöôïc thi haønh töø EPROM môû roäng.
Ngöôøi ta coøn duøng EA\ laøm chaân caáp ñieän aùp 21V khi laäp trình cho EEPROM trong 8051.
d/ RST (Reset):
Ngoõ vaøo RST treân chaân 9 laø ngoõ reset cuûa 8951. Khi tín hieäu naøy ñöôïc ñöa leân möùc cao (trong ít nhaát 2 chu kì maùy), caùc thanh ghi beân trong 8951 ñöôïc taûi nhöõng giaù trò thích hôïp ñeå khôûi ñoäng heä thoáng.
e/ Caùc ngoõ vaøo boä dao ñoäng treân chip:
Nhö ñaõ thaáy trong caùc hình treân, 8951 coù moät boä dao ñoäng treân chip. Noù thöôøng ñöôïc noái vôùi moät thaïch anh giöõa hai chaân 18 vaø 19. Caùc tuï giöõ cuõng caàn thieát nhö ñaõ veõ. Taàn soá thaïch anh thoâng thöôøng laø 12 Mhz.
f/ Caùc chaân nguoàn:
8951 hoaït ñoäng 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.
3/ Toå chöùc boä nhôù:
3.1/ Khaûo saùt toå chöùc boä nhôù 8951:
mC 8951 coù boä nhôù ñöôïc toå chöùc 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 (8951); 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 (8951) vaø RAM treân chip bao goàm nhieàu thaønh 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.
FFFF
Boä nhôù
chöông trình
ñöôïc choïn
qua PSEN\
FFFF
Boä nhôù
döõ lieäu
ñöôïc choïn
qua WR\ vaø RD\
FF
00
0000
0000
Boä nhôù treân chip Boä nhôù môû roäng
Toùm taét caùc vuøng boä nhôù cuûa 8951.
Hai ñaëc tính caàn löu yù laø:
Caùc thanh ghi vaø caùc port xuaát nhaäp ñaõ ñöôïc xeáp trong boä nhôù vaø coù theå ñöôïc truy xuaát tröïc tieáp gioáng nhö caùc ñòa chæ boä nhôù khaùc.
Ngaên xeáp beân trong RAM noäi nhoû hôn so vôùi RAM ngoaøi so vôùi boä xöû lí khaùc.
3.2/ Chi tieát veà boä nhôù RAM treân chip:
Nhö seõ thaáy trong hình sau, RAM beân trong 8951 ñöôïc phaân chia thaønh caùc bank thanh ghi (00H – 1FH), RAM ñòa chæ hoùa bit (20H – 2FH), RAM ña duïng (30H – 7FH) vaø caùc thanh ghi chöùc naêng ñaëc bieät trong khoaûng (80H – FFH).
RAM ña duïng:
Maëc duø treân hình cho thaáy 80 bytes RAM ña duïng chieám caùc ñòa chæ töø 30H – 7FH, 32 bytes döôùi cuøng töø 00H – 1FH cuõng coù theå ñöôïc duøng vôùi muïc ñích töông töï (maëc duø caùc ñòa chæ naøy ñaõ coù muïc ñích khaùc).
Ñòa chæ Ñòa chæ
byte Ñòa chæ bit byte Ñòa chæ bit
7F
RAM ña duïng
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
_
D0
PSW
30
B8
_
_
_
BC
BB
BA
B9
B8
IP
2F
7F
7E
7D
7C
7B
7A
79
78
2E
77
76
75
74
73
72
71
70
B0
B7
B6
B5
B4
B3
B2
B1
B0
P3
2D
6F
6E
6D
6C
6B
6A
69
68
2C
67
66
65
64
63
62
61
60
A8
AF
_
_
AC
AB
AA
A9
A8
IE
2B
5F
5E
5D
5C
5B
5A
59
58
2A
57
56
55
54
53
52
51
50
A0
A7
A6
A5
A4
A3
A2
A1
A0
P2
29
4F
4E
4D
4C
4B
4A
49
48
28
47
46
45
44
43
42
41
40
99
khoâng ñöôïc ñòa chæ hoùa bit
SBUF
27
3F
3E
3D
3C
3B
3A
39
38
98
9F
9E
9D
9C
9B
9A
99
98
SCON
26
37
36
35
34
33
32
31
30
25
2F
2E
2D
2C
2B
2A
29
28
90
97
96
95
94
93
92
91
90
P1
24
27
26
25
24
23
22
21
20
23
1F
1E
1D
1C
1B
1A
19
18
8D
khoâng ñöôïc ñòa chæ hoùa bit
TH1
22
17
16
15
14
13
12
11
10
8C
khoâng ñöôïc ñòa chæ hoùa bit
TH0
21
0F
0E
0D
0C
0B
0A
09
08
8B
khoâng ñöôïc ñòa chæ hoùa bit
TL1
20
07
06
05
04
03
02
01
00
8A
khoâng ñöôïc ñòa chæ hoùa bit
TL0
1F
BANK 3
89
khoâng ñöôïc ñòa chæ hoùa bit
TMOD
18
88
8F
8E
8D
8C
8B
8A
89
88
TCON
17
BANK 2
87
khoâng ñöôïc ñòa chæ hoùa bit
PCON
10
0F
BANK 1
83
khoâng ñöôïc ñòa chæ hoùa bit
DPH
08
82
khoâng ñöôïc ñòa chæ hoùa bit
DPL
07
BANK 0
( Maëc ñònh cho R0 – R7 )
81
khoâng ñöôïc ñòa chæ hoùa bit
SP
00
80
87
86
85
84
83
82
81
80
P0
RAM CAÙC THANH GHI CHÖÙC NAÊNG ÑAËC BIEÄT
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
Leänh naøy di chuyeån 1 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 R0 hay R1. Ví duï, hai leänh sau 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 chæ giaùn tieáp ñeå di chuyeån döõ lieäu “ñöôïc troû bôûi R0” vaøo thanh ghi tích luõy.
RAM ñòa chæ hoùa töøng bit:
mC 8951 chöùa 210 bits ñöôïc ñòa chæ hoùa, trong ñoù 128 bits laø ôû caùc ñòa chæ byte 20H ñeán 2FH, vaø phaàn coøn laïi laø trong caùc thanh ghi chöùc naêng ñaëc bieät.
YÙ töôûng truy xuaát töøng bit rieâng reõ baèng phaàn meàm laø moät ñaëc tính tieän lôïi cuûa vi ñieàu khieån noùi chung. Caùc bit coù theå ñöôïc ñaët, xoùa, AND, OR, … vôùi moät leänh ñôn. Trong khi ñoù, ña soá caùc vi xöû lí ñoøi hoûi moät chuoãi leänh ñoïc – söûa – ghi ñeå ñaït ñöôïc hieäu quaû töông töï. Hôn nöõa, caùc port I/O cuõng ñöôïc ñòa chæ hoùa töøng bit laøm ñôn giaûn phaàn meàm xuaát nhaäp töøng bit.
Coù 128 bits ñöôï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 nhö 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:
SET 67H
Chuù yù raèng “ñò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 ôû ñòa chæ naøy. Caùc vi xöû lí seõ phaûi thi haønh nhieäm vuï töông töï nhö sau:
MOV A, 2CH ; ñoïc caû byte
ORL A, #10000000B ; set MSB
MOV 2CH, A ; ghi laïi caû byte
Caùc bank thanh ghi:
32 bytes thaáp nhaát cuûa boä nhôù noäi laø daønh cho caùc bank thanh ghi. Boä leänh cuûa 8951 hoã trôï 8 thanh ghi (R0 – R7) vaø theo maëc ñònh (sau khi reset heä thoáng) caùc thanh ghi naøy ôû caùc ñòa chæ 00H – 07H. 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 bytes 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ì ngaén hôn vaø nhanh hôn caùc leänh töông öùng nhö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.
Bank thanh ghi tích cöïc coù theå ñöôïc chuyeån ñoåi baèng caùch thay ñoåi caùc bit choïn bank thanh ghi trong töø traïng thaùi chöông trình (PSW). Giaû söû raèng bank thanh ghi 3 ñöôïc tích cöïc, leänh sau seõ ghi noäi dung cuûa thanh ghi tích luõy vaøo ñòa chæ 18H:
MOV R0, A
YÙ töôûng duøng “caùc bank thanh ghi” cho pheùp “chuyeån höôùng” chöông trình nhanh vaø hieäu quaû (töøng phaàn rieâng reõ cuûa phaàn meàm seõ coù moät boä thanh ghi rieâng khoâng phuï thuoäc vaøo caùc phaàn khaùc).
4/ Caùc thanh ghi chöùc naêng ñaëc bieät:
Caùc thanh ghi noäi cuûa 8951 ñöôï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.
Caùc thanh ghi trong 8951 ñöôïc ñònh daïng nhö moät phaàn cuûa RAM treân chip. Vì vaäy moãi thanh ghi seõ coù moät ñòa chæ (ngoaïi tröø thanh ghi ñeám chöông trình vaø thanh ghi leänh vì caùc thanh ghi naøy hieám khi bò taùc ñoäng tröïc tieáp, neân khoâng lôïi loäc gì khi ñaët chuùng vaøo trong RAM treân chip). Ñoù laø lí do ñeå 8951 coù nhieàu thanh ghi nhö vaäy. Cuõng nhö R0 ñeán R7, coù 21 thanh ghi chöùc naêng ñaëc bieät (SFR: Special Function Register) ôû 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öø thanh ghi 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. Ngöôøi thieát keá phaûi thaän troïng khi truy xuaát bit vaø byte. Ví duï leänh sau:
SETB 0E0H
Leänh naøy seõ set bit 0 trong thanh ghi tích luõy, caùc bit khaùc khoâng ñoåi. Ta thaáy raèng E0H ñoàng thôøi laø ñòa chæ byte cuûa caû thanh ghi tích luõy vaø laø ñòa chæ bit cuûa 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û.
a/ Töø traïng thaùi chöông trình:
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
Kí 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 0 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
Côø 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 bôûi 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 quaû 00H vaø set côø nhôù trong PSWK.
Côø nhôù cuõng coù theå xem nhö moät thanh ghi 1 bit cho caùc leänh luaän lí thi haønh treân bit. Ví duï, leänh sau seõ AND bit 25H vôùi côø nhôù vaø ñaët keát quaû trôû vaøo côø nhôù:
AND C, 25H
Côø nhôù phuï:
Khi coäng caùc soá BCD, côø nhôù phuï (AC) ñöôïc set neáu keát quaû cuûa 4 bit thaáp trong khoaûng 0AH ñeán 0FH. Neáu caùc giaù trò ñöôïc coäng 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å ñieàu chænh keát quaû cho phuø hôïp.
Côø 0:
Côø 0 (F0) laø 1 bit côø ña duïng daønh cho 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 (RS0 vaø RS1) xaùc ñònh bank thanh ghi naøo ñöôï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ï, 3 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 RS0
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 kí 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 sau moät leänh coäng hoaëc tröø neáu coù 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 quaû 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 quaû lôùn hôn +127 hoaëc nhoû hôn –128 seõ set bit OV.
Ví duï, pheùp coäng sau bò traøn vaø bit OV ñöôïc set :
Hex 0F Thaäp phaân 15
+ +
7F 127
8E 142
Keát quaû laø moät soá coù daáu 8EH ñöôïc xem nhö –14, khoâng phaûi laø moät keát quaû ñuùng (142), vì vaäy bit OV ñöôïc set.
b/ Thanh ghi B:
Thanh ghi B ôû ñòa chæ F0H ñöôïc duø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 quaû 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 quaû 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 töøng bit baèng caùc ñòa chæ bit F0H ñ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 caát döõ lieäu, vaø leänh laáy döõ lieäu ra khoûi ngaên xeáp seõ ñoïc döõ lieäu vaø giaûm SP.
Ngaên xeáp cuûa 8951 ñöôï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 bytes ñaàu cuûa 8951.
Ñ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
Treân 8951 ngaên xeáp bò giôùi haïn 32 bytes vì ñòa chæ cao nhaát cuûa RAM treân chip laø 7FH. Sôû dó duøng giaù trò 5FH vì SP seõ taêng leân 60H tröôùc khi caát byte döõ lieäu ñaàu tieân.
Ngöôøi thieát keá coù theå choïn khoâng phaûi khôûi ñoäng laïi con troû ngaên xeáp maø ñeå noù laáy giaù trò maëc ñònh khi reset heä thoáng. Giaù trò maëc ñònh ñoù laø 07H vaø keát quaû laø ngaên ñaàu tieân ñeå caát döõ lieäu coù ñòa chæ laø 08H.
Neáu phaàn meàm öùng duïng khoâng khôûi ñoäng laïi SP, thì bank thanh ghi 1 (coù theå caû 2 vaø 3) seõ khoâng duøng ñöôïc vì vuøng RAM naøy ñaõ ñöôïc duøng laøm ngaên xeáp.
Ngaên xeáp ñöôïc truy xuaát tröïc tieáp baèng leänh PUSH vaø POP ñeå löu tröõ taïm thôøi vaø laáy laïi döõ lieäu, hoaëc ñöôïc truy xuaát ngaàm baèng caùc leänh goïi chöông trình con (ACALL, LCALL) vaø caùc leänh trôû veà (RET, RETI) ñeå caát vaø laáy laïi boä ñeám chöông trình.
d/ Con troû döõ lieäu:
Con troû döõ lieäu (DPTR) ñeå truy xuaát boä nhôù ngoaøi laø moät thanh ghi 16 bit ôû ñòa chæ 82H (DPL: byte thaáp) vaø 83H (DPH: 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 bits 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 8951 bao goàm Port 0 ôû ñòa chæ 80H, Port 1 ôû ñòa chæ 90H, 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.
Ví duï, neáu moät motor ñöôïc noái qua moät cuoän daây coù transistor laùi ñeán bit 7 cuûa Port 1, noù coù theå ñöôïc baät vaø taét baèng moät leänh ñôn:
SETB P1.7 ; baät motor
CLR P1.7 ; taét motor
Caùc leänh treân duøng daáu chaám ñeå xaùc ñònh moät bit trong moät byte. Trình hôïp dòch seõ thi haønh söï chuyeån ñoåi caàn thieát, vì vaäy hai leänh sau ñaây laø nhö nhau:
CLR P1.7
CLR 97H
Trong moät ví duï khaùc, xem xeùt giao tieáp ñeán moät thieát bò vôùi moät bit traïng thaùi goïi laø BUSY, ñöôïc set khi thieát bò ñang baän vaø ñöôïc xoùa khi thieát bò ñaõ saün saøng. Neáu BUSY ñöôïc noái tôùi P1.5, voøng laëp sau seõ ñöôïc duøng ñeå chôø thieát bò trôû laïi traïng thaùi saün saøng:
WAIT : JB P1.5, WAIT
Leänh naøy coù nghóa laø “neáu bit P1.5 ñöôïc set thì nhaûy tôùi nhaõn WAIT”.
Noùi caùch khaùc “nhaûy trôû laïi vaø kieåm tra laàn nöõa”.
f/ Caùc thanh ghi timer:
mC 8951 chöùa hai boä ñònh thôøi/ñeám 16 bits ñöôïc duøng cho 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 haø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æ töøng bit.
g/ Caùc thanh ghi port noái tieáp:
mC8951 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 (caùc 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 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:
mC 8951 coù caáu truùc 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 thanh ghi cho pheùp ngaét (IE) ôû ñòa chæ A8H.
Caû hai thanh ghi ñöôïc ñòa chæ hoùa töøng bit.
i/ 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
Kí 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
mode1, 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ùt 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.
5/ Boä nhôù ngoaøi:
mC 8951 coù khaû naêng môû roäng boä nhôù leân ñeán 64K boä nhôù chöông trình vaø 64K boä nhôù döõ lieäu ngoaøi. Do ñoù, coù theå duøng theâm ROM vaø RAM beân ngoaøi neáu caàn.
Khi duøng boä nhôù ngoaøi, Port 0 khoâng coøn laø moät port I/O thuaàn tuùy nöõa. Noù ñöôïc hôïp keânh giöõa bus ñòa chæ (A0 – A7) vaø bus döõ lieäu (D0 – D7) vôùi tín hieäu ALE ñeå choát byte thaáp cuûa ñòa chæ khi baét ñaàu moãi chu kì boä nhôù. Port 2 thoâng thöôøng ñöôïc duøng cho byte cao cuûa bus ñòa chæ.
Trong nöûa ñaàu cuûa moãi chu kì boä nhôù, byte thaáp cuûa ñòa chæ ñöôïc caáp trong Port 0 vaø ñöôïc choát baèng xung ALE. Moät IC choát 74HC373 (hoaëc töông ñöông) seõ giöõ byte ñòa chæ thaáp trong phaàn coøn laïi cuûa chu kì boä nhôù. Trong nöûa sau cuûa chu kì boä nhôù Port 0 ñöôïc duøng nhö bus döõ lieäu vaø ñöôïc ñoïc hoaëc ghi tuøy theo leänh.
a/ Truy xuaát boä nhôù chöông trình ngoaøi:
Boä nhôù chöông trình ngoaøi laø moät IC ROM ñöôïc cho pheùp bôûi tín hieäu PSEN\.
Hình sau moâ taû caùch noái moät EPROM vaøo 8951:
Giao tieáp giöõa 8951 vaø EPROM.
Moät chu kì maùy cuûa 8951 coù 12 chu kì xung nhòp. Neáu boä dao ñoäng treân chip ñöôïc laùi bôûi moät thaïch anh 12 Mhz thì moät chu kì maùy keùo daøi 1 ms.
Trong moät chu kì maùy, seõ coù hai xung ALE vaø hai byte ñöôïc ñoïc töø boä nhôù chöông trình (neáu leänh hieän haønh laø leänh 2 bytes thì byte thöù hai seõ ñöôïc loaïi boû). Giaûn ñoà thôøi gian cuûa moät laàn laáy le._.änh ñöôïc veõ ôû hình sau:
Giaûn ñoà thôøi gian ñoïc boä nhôù chöông trình ngoaøi.
b/ Truy xuaát boä nhôù döõ lieäu ngoaøi:
Giao tieáp giöõa 8951 vaø RAM.
Boä nhôù döõ lieäu ngoaøi laø moät boä nhôù RAM ñöôïc cho pheùp ghi/ñoïc baèng caùc tín hieäu WR\ vaø RD\ (caùc chaân P3.6 vaø P3.7 thay ñoåi chöùc naêng). Chæ coù moät caùch truy xuaát boä nhôù döõ lieäu ngoaøi laø vôùi leänh MOVX duøng con troû döõ lieäu (DPTR) 16 bits hoaëc R0 vaø R1 xem nhö thanh ghi ñòa chæ.
Keát noái bus ñòa chæ vaø bus döõ lieäu giöõa RAM vaø 8951 cuõng gioáng nhö EPROM vaø do ñoù cuõng coù theå leân ñeán 64 Kbytes boä nhôù RAM.
Ngoaøi ra, chaân RD\ cuûa 8951 ñöôïc noái tôùi chaân cho pheùp xuaát (OE\) cuûa RAM vaø chaân WR\ ñöôïc noái tôùi chaân ghi (WR\) cuûa RAM.
Giaûn ñoà thôøi gian cho leänh ñoïc döõ lieäu ngoaøi ñöôïc veõ treân hình sau ñoái vôùi leänh MOVX A, @DPTR:
Giaûn ñoà thôøi gian cuûa leänh MOVX.
Giaûn ñoà thôøi gian cho leänh ghi (MOVX @DPTR, A) cuõng töông töï chæ khaùc ñöôøng WR\ seõ thay vaøo ñöôøng RD\ vaø döõ lieäu ñöôïc xuaát ra treân chaân Port 0 (RD\ vaãn giöõ möùc cao).
c/ Giaûi maõ ñòa chæ:
Neáu coù nhieàu EPROM vaø/hoaëc nhieàu RAM ñöôïc giao tieáp vôùi 8951, thì caàn phaûi giaûi maõ ñòa chæ.
Maïch giaûi maõ cuõng töông töï nhö caùc heä vi xöû lí khaùc. Ví duï, neáu duøng nhieàu EPROM vaø RAM 8Kbytes thì bus ñòa chæ caàn phaûi ñöôïc giaûi maõ ñeå xaùc ñònh IC nhôù naøo ñöôïc choïïn.
Ngöôøi ta thöôøng duøng IC giaûi maõ 74HC138 vôùi caùc ngoõ ra ñöôïc noái tôùi caùc ngoõ vaøo choïn chip (CS) treân caùc IC nhôù. Hình sau veõ moät heä thoáng vôùi nhieàu EPROM 8K 2764 vaø RAM 8K 6264:
Giaûi maõ ñòa chæ.
d/ Xeáp choàng boä nhôù chöông trình vaø döõ lieäu beân ngoaøi:
Vì boä nhôù chöông trình laø ROM, neân naûy sinh moät vaán ñeà baát tieän khi phaùt trieån phaàn meàm cho 8051/8031. Ñoái vôùi 8951 ñaõ caûi tieán baèng caùch thay theá baèng EEPROM, hoaëc duøng moät caùch ñeå khaéc phuïc nhöôïc ñieåm treân laø xeáp choàng caùc vuøng nhôù chöông trình vaø döõ lieäu.
Moät IC RAM coù theå chöùa caû chöông trình vaø döõ lieäu baèng caùch noái ñöôøng OE\ cuûa RAM vaøo moät maïch logic AND cuûa PSEN\ vaø RD\.
Maïch treân hình sau cho pheùp moät IC RAM ñöôïc duøng laøm boä nhôù chöông trình vaø döõ lieäu:
Vaäy moät chöông trình coù theå ñöôïc taûi vaøo RAM (baèng caùch ghi noù nhö boä nhôù döõ lieäu) vaø thi haønh (baèng caùch truy xuaát noù nhö boä nhôù chöông trình).
6/ Leänh Reset:
mC8951 ñöôïc reset baèng caùch giöõ chaân RST ôû möùc cao ít nhaát trong hai chu kì maùy vaø traû noù veà möùc thaáp.
Maïch reset heä thoáng.
RST coù theå ñöôïc kích baèng tay duøng moät nuùt baám hoaëc coù theå ñöôïc kích khi caáp ñieän duøng moät maïch R-C.
Traïng thaùi cuûa taát caû caùc thanh ghi trong 8951 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
0000 H
Tích luõy
00 H
B
00 H
PSW
00 H
SP
07 H
DPTR
0000 H
Port 0 ¸ 3
FF H
IP
XXX00000 B
IE
0XX00000 B
Caùc thanh ghi ñònh thôøi
00 H
SCON
00 H
SBUF
00 H
PCON ( HMOS )
0XXXXXXX B
PCON ( CMOS )
0XXX0000 B
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ôù 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.
II/ TAÄP LEÄNH CUÛA 8951 :
Taäp leänh 8951 coù 255 leänh goàm 139 leänh 1 byte, 92 leänh 2 byte vaø 24 leänh 3 byte.
1/ Caùc cheá ñoä ñaùnh ñòa chæ:
a/ Ñòa chæ thanh ghi:
mC8951 coù boán bank thanh ghi, moãi bank coù 8 thanh ghi ñaùnh soá töø R0 ñeán R7. Taïi moãi thôøi ñieåm chæ coù moät bank thanh ghi ñöôïc tích cöïc.
Maõ leänh n n n
Ñòa chæ thanh ghi
Muoán choïn bank thanh ghi naøo ta chæ caàn gaùn caùc bít nhò phaân thích hôïp vaøo RS1 (PSW.4) vaø RS0 (PSW.3) trong thanh ghi traïng thaùi chöông trình (PSW).
Ngoaøi ra, moät soá thanh ghi ñaëc bieät nhö thanh ghi tích luõy, thanh ghi con troû döõ lieäu cuõng ñöôïc xaùc ñònh trong caùc leänh treân neân khoâng caàn bit ñòa chæ.
Trong caùc leänh naøy thanh ghi tích luõy ñöôïc kí hieäu laø “A”, con troû döõ lieäu laø “DPTR”, thanh ghi ñeám chöông trình laø “PC”, côø nhôù laø “C”, caëp thanh ghi tích luõy laø “AB”.
b/ Ñòa chæ tröïc tieáp:
Trong cheá ñoä naøy, caùc thanh ghi beân trong 8951 ñöôïc ñaùnh ñòa chæ tröïc tieáp baèng 8 bits ñòa chæ naèm trong byte thöù hai cuûa maõ leänh.
Maõ leänh Ñòa chæ tröïc tieáp
Ñòa chæ tröïc tieáp.
Duø vaäy, trình hôïp dòch cho pheùp goïi teân caùc thanh ghi chöùc naêng ñaëc bieät (coù ñòa chæ tröïc tieáp töø 80H ñeán FFH).
Ví duï, P0 cho Port 0, TMOD cho thanh ghi cheá ñoä timer, …
c/ Ñòa chæ giaùn tieáp:
R0 vaø R1 ñöôïc duøng ñeå chöùa ñòa chæ taïm oâ nhôù maø leänh taùc ñoäng ñeán. Ngöôøi ta qui öôùc duøng daáu @ tröôùc R0 hoaëc R1.
Maõ leänh i
Ñòa chæ giaùn tieáp.
d/ Ñòa chæ töùc thôøi:
Ngöôøi ta duøng daáu # tröôùc caùc toaùn haïng töùc thôøi. Caùc toaùn haïng ñoù coù theå laø moät haèng soá, moät kí soá hay moät bieåu thöùc toaùn hoïc …Trình hôïp dòch seõ töï ñoäng tính toaùn vaø thay theá döõ lieäu vaøo maõ leänh.
Maõ leänh Döõ lieäu töùc thôøi
Ñòa chæ töùc thôøi.
e/ Ñòa chæ töông ñoái:
Ñòa chæ töông ñoái ñöôïc duøng trong caùc leänh nhaûy.
mC8951 duøng giaù trò 8 bit coù daáu ñeå coäng theâm vaøo thanh ghi ñeám chöông trình (PC).
Taàm nhaûy cuûa leänh naøy trong khoaûng töø –128 ñeán 127 oâ nhôù. Tröôùc khi coäng, thanh ghi PC seõ taêng ñeán ñòa chæ theo sau leänh nhaûy roài tính toaùn ñòa chæ offset caàn thieát ñeå nhaûy ñeán ñòa chæ yeâu caàu.
Nhö vaäy, ñòa chæ môùi laø ñòa chæ töông ñoái so vôùi leänh keá tieáp chöù khoâng phaûi baûn thaân leänh nhaûy. Thöôøng leänh naøy coù lieân quan ñeán nhaõn ñöôïc ñònh nghóa tröôùc.
Maõ leänh Offset töông ñoái
Ñòa chæ töông ñoái.
f/ Ñòa chæ tuyeät ñoái :
Ñòa chæ tuyeät ñoái chæ duøng tröôùc caùc leänh ACALL vaø AJIMP.
Caùc leänh 2 byte naøy duøng ñeå reõ nhaùnh vaøo moät trang 2Kbyte cuûa boä nhôù chöông trình baèng caùch caáp 11 bit ñòa chæ thaáp (A0-A10) ñeå xaùc ñònh ñòa chæ ñích trong trang maõ. Coøn 5 bit cao cuûa ñòa chæ ñích chính laø 5 bit hieän haønh trong thanh ghi ñeám chöông trình.
Vì vaäy, ñòa chæ cuûa leänh theo sau leänh reõ nhaùnh vaø ñòa chæ ñích cuûa leänh reõ nhaùnh caàn phaûi cuøng trang maõ 2Kbyte (coù cuøng 5 bits ñòa chæ cao).
A15 A11 A10 A0
Xaùc ñònh trang maõ. Xaùc ñònh ñòa chæ trong trang maõ.
A10-A8 Maõ leänh Offset töông ñoái
Ñòa chæ tuyeät ñoái.
g/ Ñòa chæ daøi :
Ñòa chæ daøi chæ duøng cho leänh LCALL vaø LJIMP. Caùc leänh naøy chieám 3 byte vaø duøng 2 byte sau (byte 2 vaø byte 3) ñeå ñònh ñòa chæ ñích cuûa leänh (16 bit). Öu ñieåm cuûa leänh naøy laø coù theå söû duïng trong toaøn boä vuøng nhôù 64 Kbyte.
Tuy nhieân, leänh naøy chieám nhieàu byte vaø leä thuoäc vaøo vò trí vuøng nhôù.
Maõ leänh ` A15 - A8 A7 – A0
Ñòa chæ daøi.
h/ Ñòa chæ tham chieáu:
Ñòa chæ tham chieáu duøng moät thanh ghi cô baûn (hoaëc thanh ghi ñeám chöông trình PC hoaëc thanh ghi con troû döõ lieäu DPTR) vaø ñòa chæ offset (trong thanh ghi tích luõy A) ñeå taïo ñòa chæ ñöôïc taùc ñoäng cho caùc leänh JMP hoaëc MOVC.
Caùc baûng nhaûy vaø baûng tìm kieám deã daøng ñöôïc taïo ra ñeå söû duïng ñòa chæ tham chieáu.
Ñòa chæ cô baûn Offset
PC hoaëc DPTR
+
ACC
=
Ñòa chæ caàn truy xuaát
Ñòa chæ tham chieáu.
2/ Caùc nhoùm leänh cuûa 8951:
Taäp leänh cuûa 8951 ñöôïc chia laøm 5 nhoùm:
Soá hoïc
Luaän lí
Chuyeån döõ lieäu
Chuyeån ñieàu khieån
Caùc chæ daãn 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-255) ñöôïc ñaùnh ñòa chæ giaùn tieáp qua
thanh ghi R0 hoaëc R1.
#data : Haèng 8 bit chöùa trong caâu leänh.
#data16 : 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 ACALL vaø AJMP.
rel : Byte offset 8 bit coù daáu ñöôïc duøng trong leänh SJUMP 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öû lí soá hoïc:
ADD A, Rn (1 byte, 1 chu kì 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.
AAD 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.
ADDC A, Rn (1, 1) : Coäng thanh ghi vaø côø nhôù vaøo A.
ADDC 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ôù.
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 dung 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.
b/ Nhoùm leänh luaän lí :
ANL A, Rn (1, 1) : AND noäi dung thanh ghi A vôùi noäi dung thanh ghi Rn.
ANL A, data (2, 1) : AND noäi dung thanh ghi A vôùi döõ lieäu tröïc tieáp.
ANL A, @Ri (1, 1) : AND noäi dung thanh ghi A vôùi döõ lieäu giaùn tieáp trong
RAM.
ANL A, #data (2, 1) : AND noäi dung thanh ghi vôùi döõ lieäu töùc thôøi.
ANL data, A (2, 1) : AND moät döõ lieäu tröïc tieáp vôùi A.
ANL data, #data(3, 2) : AND moät döõ lieäu tröïc tieáp vôùi döõ lieäu töùc thôøi.
ANL C, bit (2, 2) : AND côø nhôù vôùi moät bit tröïc tieáp.
ANL C, /bit (2, 2) : AND côø nhôù vôùi buø cuûa moät bit tröïc tieáp.
ORL A, Rn (1, 1) : OR thanh ghi A vôùi thanh ghi Rn.
ORL A, data (2, 1) : OR thanh ghi A vôùi moät döõ lieäu tröïc tieáp.
ORL A, @Ri (1, 1) : OR thanh ghi A vôùi moät döõ lieäu giaùn tieáp.
ORL A, #data (2, 1) : OR thanh ghi A vôùi moät döõ lieäu töùc thôøi.
ORL data, A (2, 1) : OR moät döõ lieäu tröïc tieáp vôùi thanh ghi A.
ORL data, #data(3, 2) : OR moät döõ lieäu tröïc tieáp vôùi moät döõ lieäu töùc thôøi.
ORL C, bit (2, 2) : OR côø nhôù vôùi moät bit tröïc tieáp.
ORL C, /bit (2, 2) : OR côø nhôù vôùi buø cuûa moät bit tröïc tieáp.
XRL A, Rn (1, 1) : XOR thanh ghi A vôùi thanh ghi Rn.
XRL A, data (2, 1) : XOR thanh ghi A vôùi moät döõ lieäu tröïc tieáp.
XRL A, @Ri (1, 1) : XOR thanh ghi A vôùi moät döõ lieäu giaùn tieáp.
XRL A, #data (2, 1) : XOR thanh ghi A vôùi moät döõ lieäu töùc thôøi.
XRL data, A (2, 1) : XOR moät döõ lieäu tröïc tieáp vôùi thanh ghi A.
XRL data, #data(3, 2) : 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 A (1, 1) : Quay traùi noäi dung thanh ghi A 1 nibble (1/2 byte).
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, A (1, 1) : Chuyeån noäi dung thanh ghi A vaøo thanh ghi Rn.
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
tröïc 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 moät döõ lieäu töùc thôøi vaøo moät döõ lieäu
giaùn tieáp.
MOV DPTR, #data16 (3, 2): Chuyeån moät haèng 16 bit vaøo thanh ghi con troû
döõ lieäu.
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.
MOVC A, @A+DPTR (1, 2) : Chuyeån byte boä nhôù chöông trình coù ñòa chæ laø
@A + DPTR 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.
MOVX 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 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) : Laáy döõ lieäu tröïc tieáp ra khoûi ngaên xeáp vaø giaûm SP.
XCH A, Rn (1, 1) : Trao ñoåi döõ lieäu giöõa thanh ghi Rn vaø 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, @Ri (1, 1) : Trao ñoåi giöõa nibble thaáp (LSN) cuûa
cuûa thanh ghi A vaø LSN cuûa döõ lieäu giaùn tieáp.
d/ Nhoùm leänh chuyeån quyeà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.
RETI (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 ñeán A baèng 0.
JNZ rel (2, 2) : Nhaûy ñeán A khoâng baèng 0.
JC rel (2, 2) : Nhaûy ñeán 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.
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ûm 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.
B. SÔ LÖÔÏC VEÀ BOÄ NHÔÙ BAÙN DAÃN
1/ Vai Troø Boä Nhôù Baùn Daãn:
Tuy khoâng giöõ vai troø quyeát ñònh trong moät heä thoáng vi xöû lí nhöng boä nhôù laïi khoâng theå vaéng maët bôûi moät lí do:
Boä xöû lí trung taâm chæ coù chöùc naêng xöû lí döõ lieäu theo moät chöông trình ñaõ ñònh tröôùc maø chöông trình naøy khoâng theå löu tröõ ôû ñaâu khaùc ngoaøi boä nhôù duø cho boä nhôù coù naèm beân ngoaøi chip hay naèm trong chính noù.
Ngoaøi ra, trong quaù trình thöïc thi chöông trình seõ phaùt sinh caùc döõ lieäu taïm thôøi, döõ lieäu naøy cuõng caàn ñöôïc löu laïi ñeå sau ñoù ñöôïc xöû lí tieáp.
2/ Caùc Thuaät Ngöõ Cuûa Boä Nhôù:
Memory cell: Laø moät oâ nhôù hay moät teá baøo nhôù, coù nhieäm vuï löu tröõ moät bit döõ lieäu 0, hoaëc 1. OÂ nhôù coù theå ñöôïc hình thaønh töø moät Flip-Flop, hoaëc ñieän tích cuûa tuï ñieän…
Memory word : Laø moät töø nhôù, bao goàm moät nhoùm caùc oâ nhôù. Ñoä roäng cuûa moät töø döõ lieäu coù theå laø : 4 bits, 8 bits, 16 bits …
Byte : Laø moät thuaät ngöõ ñaëc bieät duøng ñeå chæ moät töø nhôù coù ñoä roäng = 8 bits.
Capacity : Laø dung löôïng cuûa moät boä nhôù ñöôïc tính baèng ñôn vò bit. Ñoù chính laø toång soá bit coù theå löu tröõ trong boä nhôù.
Döïa vaøo soá ñöôøng ñòa chæ vaø ñoä roäng cuûa data bus cuûa chip nhôù maø ta coù theå suy ra ñöôïc dung löôïng boä nhôù ñoù.
Address : Moät boä nhôù thì chöùa ñöïng trong noù raát nhieàu oâ nhôù, ñeå phaân bieät caùc oâ nhôù vôùi nhau thì moãi oâ nhôù seõ ñöôïc gaùn cho moät ñòa chæ töông öùng duy nhaát. Trong khi söû duïng boä nhôù caàn löu yù moät ñieàu laø : caùc oâ nhôù khaùc nhau coù theå löu tröõ döõ lieäu gioáng nhau nhöng moät döõ lieäu khi caàn löu vaøo boä nhôù thì chæ ñöôïc pheùp ghi leân moät oâ nhôù taïi moät ñòa chæ xaùc ñònh maø thoâi, neáu khoâng seõ daãn ñeán vieäc laõng phí boä nhôù moät caùch voâ ích.
Read Operation : Laø hoaït ñoäng ñoïc hay caùch thöùc sao cheùp döõ lieäu töø moät oâ nhôù xaùc ñònh trong boä nhôù ra beân ngoaøi.
Write Operation : Laø hoaït ñoäng ghi döõ lieäu töø ngoaøi vaøo trong boä nhôù taïi ñòa chæ oâ nhôù ñöôïc xaùc ñònh tröôùc. Döõ lieäu tröôùc ñoù cuûa oâ nhôù seõ bò maát vaø thay vaøo ñoù laø döõ lieäu vöøa môùi ghi vaøo.
Access Time: Laø thôøi gian truy xuaát moät oâ nhôù tính töø luùc ñòa chæ oâ nhôù ñöôïc ñaët vaøo cho ñeán luùc coù döõ lieäu xuaát hieän taïi caùc ngoõ ra.
Kí hieäu thôøi gian truy xuaát laø : tACC
Random-Access Memory (RAM): Laø boä nhôù truy xuaát ngaãu nhieân theo nghóa baát cöù oâ nhôù naèm taïi ñòa chæ naøo cuõng coù thôøi gian truy xuaát nhö nhau. Döõ lieäu chæ toàn taïi trong RAM khi noù coøn nguoàn nuoâi. Khi maát nguoàn, döõ lieäu seõ thay ñoåi moät caùch ngaãu nhieân vaø do ñoù khoâng coøn giöõ ñöôïc caùc giaù trò giöõ lieäu ñaõ löu vaøo tröôùc nguoàn bò maát.
Read-Only Memory (ROM): Laø boä nhôù chæ ñoïc töùc laø döõ lieäu ñaõ ñöôïc naïp vaøo ROM ngay trong luùc saûn xuaát ra noù, döõ lieäu naøy khoâng bò thay ñoåi trong suoát quaù trình söû duïng.
Neáu nhö döõ lieäu trong ROM caàn thay ñoåi thì buoäc phaûi mua moät ROM môùi khaùc thay theá taát nhieân phaûi chöùa chöông trình caàn thieát. ROM thuoäc loaïi boä nhôù chæ laäp trình ñöôïc moät laàn duy nhaát, ROM ñöôïc duøng trong caùc thieát keá caàn tæ leä ñoïc döõ lieäu raát cao.
Moät ñieåm caàn löu yù laø thoâng tin ñaõ löu tröõ trong ROM khoâng bò maát ngay caû khi khoâng caáp nguoàn nuoâi cho noù.
Static Memory: Laø boä nhôù tónh theo nghóa döõ lieäu khi ñaõ ghi vaøo thì khoâng caàn phaûi naïp laïi, nhöng döõ lieäu seõ bò maát ñi khi khoâng coøn caáp ñieän cho noù.
Dynamic Memory: Laø boä nhôù ñoäng theo nghóa döõ lieäu khi ñaõ naïp vaøo coøn caàn thieát phaûi thöôøng xuyeân naïp laïi, neáu khoâng chuùng seõ khoâng giöõ ñöôïc giaù trò nhö cuõ. Töùc laø döõ lieäu coù theå bò maát ngay caû khi coøn caáp ñieän cho noù. Coâng vieäc naïp laïi döõ lieäu ñöôïc goïi laø quaù trình laøm töôi boä nhôù (Refresh).
Data bus : Laø moät nhoùm caùc ñöôøng truyeàn duøng ñeå taûi döõ lieäu töø boä nhôù ra ngoaøi vaø ngöôïc laïi. Do vaäy, data bus coù theå truyeàn theo hai chieàu.
Address bus : Laø nhoùm ñöôøng truyeàn duøng ñeå taûi caùc bit ñòa chæ töø boä xöû lí trung taâm ñeán boä nhôù nhaèm xaùc ñònh oâ nhôù naøo ñöôïc truy xuaát. Address chæ coù moät chieàu duy nhaát.
3/ Hoaït Ñoäng Toång Quaùt Cuûa Boä Nhôù:
Moãi heä thoáng nhôù ñoøi hoûi moät soá caùc ñöôøng tín hieäu vaøo ra nhaèm thöïc thi caùc chöùc naêng sau:
Xaùc ñònh ñòa chæ cuûa oâ nhôù caàn truy xuaát trong hoaït ñoäng ñoïc/ghi.
Nhaän tín hieäu ñieàu khieån ñeå thöïc thi hoaït ñoäng ñoïc hoaëc ghi.
Khi thöïc hieän hoaït ñoäng ñoïc, noù seõ nhaän döõ lieäu ñeå löu tröõ vaøo oâ nhôù.
Khi thöïc hieän hoaït ñoäng ghi, noù seõ gôûi döõ lieäu ra boä nhôù.
Cho pheùp (hoaëc ngaên caám) vieäc truy xuaát boä nhôù.
Tham khaûo moät boä nhôù coù 32 töø nhôù 4 bits (dung löôïng = 32 X 4 bits).
Do ñoä roäng cuûa töø döõ lieäu = 4 bits, neân coù 4 ñöôøng döõ lieäu vaøo laø : I0, I1, I2, I3 vaø 4 ñöôøng döõ lieäu ra : O0, O1, O2, O3.
Khi thöïc hieän ghi döõ lieäu thì töø döõ lieäu 4 bits caàn ghi seõ ñöôïc aùp vaøo caùc ngoõ vaøo I0, I1, I2, I3.
Khi muoán ñoïc döõ lieäu ra töø boä nhôù, töø döõ lieäu seõ xuaát hieän taïi caùc ngoõ ra O0, O1, O2, O3.
Do boä nhôù chöùa 32 töø nhôù neân phaûi coù 32 vò trí löu tröõ khaùc nhau ñöôïc phaân bieät thoâng qua 32 ñòa chæ nhò phaân. Muoán vaäy, phaûi caàn 5 bits ñòa chæ ñeå coù 32 traïng thaùi khaùc nhau töông öùng vôùi 32 ñòa chæ oâ nhôù.
Ngoõ vaøo R/W\: Duøng ñeå xaùc ñònh cheá ñoä hoaït ñoäng cuûa boä nhôù laø cheá ñoä ñoïc hay ghi döõ lieäu.
Moät soá boä nhôù söû duïng hai ngoõ vaøo rieâng bieät, moät cho hoaït ñoäng ñoïc vaø moät cho hoaït ñoäng ghi. Neáu tích hôïp chung laïi thaønh moät ñöôøng R/W\ thì quaù trình ñoïc döõ lieäu xaûy ra khi R/W\ = 1, vaø quaù trình ghi döõ lieäu xaûy ra khi R/W\ = 0.
Ngoõ vaøo cho pheùp (Memory Enable) : khi moät heä thoáng coù söû duïng nhieàu boä nhôù thì caàn thieát phaûi phaân bieät boä nhôù naøo seõ ñöôïc truy xuaát taïi töøng thôøi ñieåm, vieäc naøy coù theå thöïc hieän ñöôïc baèng caùch söû duïng ngoõ vaøo cho pheùp (CS\) ñeå cho pheùp boä nhôù naøo ñöôïc truy xuaát taïi thôøi ñieåm hieän taïi ñoàng thôøi ngaên caám taát caû caùc boä nhôù coøn laïi.
4/ Söï Keát Noái Giöõa Vi Xöû Lí (mP) Vôùi Boä Nhôù:
Moät vi xöû lí ñôn ñoäc thì khoâng theå thöïc hieän ñöôïc chöùc naêng ñieàu khieån maø nhaát thieát phaûi caàn ñeán caùc thieát bò ngoaïi vi hoã trôï cho noù. Vi xöû lí thöïc hieän vieäc keát noái vôùi boä nhôù nhö theá naøo ñeå coù theå truy xuaát boä nhôù ñeå laáy maõ leänh vaø ghi döõ lieäu.
Vi xöû lí keát noái vôùi boä nhôù thoâng qua 3 bus sau:
Bus ñòa chæ (Address bus)
Bus döõ lieäu (Data bus)
Bus ñieàu khieån (Control bus).
Thoâng qua 3 bus naøy vi xöû lí coù theå thöïc hieän vieäc truy xuaát ñeán baát cöù oâ nhôù caàn thieát naøo trong toaøn heä thoáng nhôù.
Sô ñoà keát noái:
Hoaït ñoäng ghi döõ lieäu:
mP ñaët ñòa chæ cuûa oâ nhôù caàn löu döõ lieäu leân address bus.
mP ñaët döõ lieäu caàn löu tröõ leân data bus.
mP kích thích tín hieäu ñieàu khieån thích hôïp trong bus ñieàu khieån ñeå ghi döõ lieäu.
Döõ lieäu treân bus seõ truyeàn vaøo oâ nhôù ñaõ ñöôïc löïa choïn.
Hoaït ñoäng ghi döõ lieäu:
mP ñaët ñòa chæ cuûa oâ nhôù caàn ñoïc döõ lieäu leân address bus.
mP kích thích tín hieäu ñieàu khieån thích hôïp trong bus ñieàu khieån ñeå yeâu caàu boä nhôù xuaát döõ lieäu ra data bus.
IC nhôù seõ giaûi maõ ñòa chæ naøy ñeå xaùc ñònh xem oâ nhôù naøo ñöôïc löïa choïn cho hoaït ñoäng ñoïc döõ lieäu.
IC nhôù ñaët döõ lieäu cuûa oâ nhôù ñaõ choïn leân data bus ñeå truyeàn veà mP.
Read-Only Memory (ROM) : Boä nhôù chæ ñoïc
Loaïi boä nhôù naøy ñöôïc thieát keá chuû yeáu ñeå löu tröõ caùc döõ lieäu coá ñònh. Khi hoaït ñoäng bình thöôøng döõ lieäu môùi khoâng theå ghi vaøo ROM ñöôïc nhöng döõ lieäu coù theå ñoïc ra töø ROM.
Ñoái vôùi moät soá ROM, döõ lieäu ñöôïc ghi vaøo noù ngay trong quaù trình saûn xuaát. Vieäc naïp döõ lieäu vaøo cho ROM ñöôïc goïi laø laäp trình cho ROM. Moät soá ROM khoâng cho pheùp vieäc thay ñoåi döõ lieäu sau khi ñaõ ñöôïc laäp trình (chæ laäp trình moät laàn duy nhaát).
Caùc ROM sau naøy ñöôïc caûi tieán ñeå cho pheùp vieäc xoùa döõ lieäu vaø laäp trình laïi.
Chöùc naêng cuûa ROM:
ROM chuû yeáu ñöôïc duøng ñeå löu tröõ caùc thoâng tin trong suoát quaù trình hoaït ñoäng cuûa heä thoáng. Phaàn lôùn ROM ñöôïc duøng ñeå löu tröõ chöông trình trong maùy tính.
Vì ROM khoâng laøm maát döõ lieäu ngay caû khi bò maát ñieän cho neân chöông trình ñaõ naïp vaøo ROM ñöôïc baûo toaøn. Khi maùy tính ñöôïc caáp ñieän, noù seõ laäp töùc thi haønh chöông trình trong ROM.
Sô ñoà ROM coù dung löôïng 16 X 8 bits.
Ngoõ ra döõ lieäu cuûa haàu heát caùc ROM laø caùc ngoõ ra 3 traïng thaùi nhaèm cho pheùp söï keát noái nhieàu ROM ñeán cuøng moät bus döõ lieäu trong tröôøng hôïp coù söï môû roäng boä nhôù.
Ngoõ vaøo ñieàu khieån CS\ (Chip Select) ñoâi khi ñöôïc goïi laø: OE\ (Output Enable) hoaëc CE\ (Chip Enable) ñeå cho pheùp hoaëc ngaên caám caùc ngoõ ra.
Khi caàn ñoïc döõ lieäu töø ROM, chuùng ta caàn laøm hai ñieàu : ñaët moät ñòa chæ thích hôïp taïi caùc ngoõ vaøo treân bus ñòa chæ, sau ñoù taùc ñoäng ñeán ngoõ vaøo cho pheùp CS\ ñeå cho pheùp döõ lieäu trong ROM xuaât ra ngoaøi.
a/ Caáu truùc cuûa ROM 16 X 8 bits:
Caáu truùc beân trong cuûa ROM thì raát phöùc taïp, vaø ta cuõng khoâng caàn thieát phaûi bieát söï chi tieát beân trong.
Nhìn chung ROM coù caáu truùc goàm 4 phaàn chính sau:
Giaûi maõ haøng (Row-decode).
Giaûi maõ coät (Column-decode).
Maûng thanh ghi (Register- array).
Ñeäm ngoõ ra (Output-buffers).
Register-array: Maûng thanh ghi coøn goïi laø ma traän thanh ghi ñeå löu tröõ döõ lieäu ñaõ laäp trình trong ROM. Moãi thanh ghi chöùa moät soá caùc oâ nhôù töông ñöông vôùi ñoä daøi töø döõ lieäu.
Trong sô ñoà treân, moãi thanh ghi chöùa 8 bits döõ lieäu. Chuùng ñöôïc saép xeáp trong moät ma traän vuoâng, ñaây cuõng laø daïng chung cho nhieàu chip nhôù baùn daãn khaùc.
Ngoõ ra cuûa töø döõ lieäu 8 bits ñöôïc keát noái vôùi bus döõ lieäu beân trong.
Moãi thanh ghi coù 2 ngoõ vaøo cho pheùp (E), khi caû hai ngoõ vaøo naøy cuøng leân möùc 1 thì seõ cho pheùp döõ lieäu trong thanh ghi ñöôïc gôûi ra bus döõ lieäu.
Address-decoders: Maõ ñòa chæ A3, A2, A1, A0 xaùc ñònh thanh ghi naøo trong ma traän ñöôïc pheùp ñaët töø döõ lieäu 8 bits leân bus döõ lieäu.
Hai bit A1,A0 ñöôïc ñöa ñeán boä giaûi maõ 2 ñöôøng sang 4 ñöôøng ñeå choïn 1 trong 4 haøng. Töông töï, hai bit A3, A2 duøng ñeå choïn 1 trong 4 coät. Do ñoù, seõ chæ coù moät thanh ghi duy nhaát taïi moät haøng vaø moät coät ñöôïc xaùc ñònh bôûi ñòa chæ ngoõ vaøo coù quyeàn gôûi döõ lieäu leân bus.
Output-buffers : Döõ lieäu trong thanh ghi khi göûi ra seõ ñöôïc ñöa vaøo boä ñeäm döõ lieäu, vaø chôø ñeán khi tín hieäu cho pheùp CS = 1 thì boä ñeäm seõ gôûi döõ lieäu ra caùc ñöôøng döõ lieäu beân ngoaøi.
Neáu CS ôû möùc 0 thì boä ñeäm seõ ôû traïng thaùi toång trôû cao vaø caùc ñöôøng döõ lieäu ñöôïc thaû noåi.
b/ Thôøi haèng truy xuaát ROM :
Coù moät khoaûng thôøi gian treã töø luùc aùp ñòa chæ ñeán caùc ngoõ vaøo ñòa chæ cuûa ROM ñeán luùc döõ lieäu xuaát hieän taïi caùc ngoõ ra, thôøi gian naøy coøn goïi laø thôøi gian truy xuaát (tACC).
Moät thoâng soá quan troïng khaùc laø thôøi gian cho pheùp ngoõ ra xuaát döõ lieäu (tOE), laø thôøi gian treã töø khi CS\ taùc ñoäng cho ñeán khi döõ lieäu coù ôû caùc ngoõ ra.
Thôøi gian truy xuaát ñoái vôùi ROM loaïi Bipolar khoaûng töø 30 ñeán 90 ns, ñoái vôùi NMOS laø 35 ñeán 500 ns.
Thôøi gian cho pheùp xuaát döõ lieäu töø 10 ñeán 20 ns ñoái vôùi ROM loaïò Bipolar vaø töø 25 ñeán 100 ns ñoái vôùi MOS.
Giaûn ñoà thôøi gian cuûa hoaït ñoäng ñoïc ROM.
c/ Moät soá loaïi boä nhôù ROM:
Mask-Programmed ROM: Laø ROM ñöôïc laäp trình ngay trong luùc saûn xuaát. Ñoái vôùi loaïi ROM naøy ta khoâng theå laäp trình laïi ñöôïc.
PROM (Programmable ROM): Laø ROM coù theå ñöôïc laäp trình moät laàn duy nhaát bôûi ngöôøi söû duïng.
Caáu taïo:
Caùc teá baøo nhôù laø diode, transistor löôõng cöïc hoaëc transistor MOS tuøy vaøo coâng ngheä cheá taïo.
Phaàn töû baùn daãn ñöôïc noái vôùi caàu chì tích hôïp. Khi caàu chì bò ñöùt thì khoâng theå noái laïi ñöôïc, do vaäy maø ta chæ coù theå laäp trình cho ROM ñöôïc moät laàn.
Khi caàn ñoåi bit 1 sang bit 0, ngöôøi ta duøng moät xung ñieän coù bieân ñoä vaø ñoä roäng xung thích hôïp ñeå laøm ñöùt caàu chì.
EPROM (Erasable Programmable ROM):
EPROM coù theå ñöôïc laäp trình bôûi ngöôøi söû duïng vaø coù theå ñöôïc xoùa vaø laäp trình laïi nhö mong muoán.
Khi ñaõ ñöôïc laäp trình, döõ lieäu trong EPROM khoâng bò maát ñi. Vieäc laäp trình cho EPROM ñoøi hoûi moät ñieän aùp (töø 10 ñeán 25V) ñöôïc aùp ñeán ngoõ vaøo thích hôïp treân chip trong moät khoaûng thôøi gian (thöôøng laø 50 ms cho moãi ñòa chæ).
Ngöôøi ta söû duïng moät maïch naïp ñaëc bieät duøng ñeå naïp trình cho EPROM. Coâng vieäc naïp trình coù theå toán heát moät vaøi phuùt.
Moãi oâ nhôù löu tröõ trong EPROM laø moät transistor loaïi MOSFET vôùi cöïc coång laø chaát silicon khoâng coù söï keát noái veà ñieän (cöïc coång thaû noåi).
ÔÛ traïng thaùi bình thöôøng, moãi transistor bò taét vaø moãi oâ nhôù löu tröõ bit 1. Transistor coù theå ñöôïc baät leân baèng vieäc aùp moät xung laäp trình ñieän aùp cao, khi ñoù coù moät doøng electron ñöôïc phun vaøo vuøng cöïc coång thaû noåi. Caùc electron vaãn toàn taïi trong vuøng naøy ngay caû khi ñaõ chaám döùt xung vì khoâng coù ñöôøng xaû ñieän tích. Ñieàu naøy khieán cho transistor tröõ bit 0 vaø khoâng bò thay ñoåi ngay caû khi nguoàn ñaõ bò laáy ra khoûi maïch.
Trong suoát quaù trình naïp trình ta caàn söû duïng bus döõ lieäu._.ieän aùp cho thích hôïp.
Vì 3 ñieän trôû naøy chæ coù taùc duïng phaân aùp cho neân ta coù theå choïn giaù trò töông ñoái deã daøng vaø chæ quan taâm ñeán tæ leä giöõa chuùng.
Cuï theå nhö sau:
R2 = 1K , R3 = 3K , VR1 = 0.5K
Tæ leä naøy coù aûnh höôûng ñeán sai soá cuûa ñieän keá, neân choïn sao cho giaù trò max cuûa ñieän aùp ngoõ vaøo caøng gaàn giôùi haïn cuûa ADC thì caøng chính xaùc.
Thieát keá caûm bieán doøng ñieän roø:
Caáu taïo:
Ngöôøi ta duøng moät voøng xuyeán maïch töø loaïi saét Ferrit coù ñoä töø thaåm cao. Treân ñoù coù quaán hai cuoän daây coù soá voøng baèng nhau sao cho khi coù doøng ñieän ñi qua thì töø thoâng toång cuûa hai töø thoâng sinh ra bôûi hai doøng ñieän ñi vaø veà qua hai cuoän daây naøy coù trò soá f = 0. Moät cuoän daây caûm bieán quaán nhieàu voøng coù tieát dieän beù ñeå tieáp nhaän doøng caûm öùng neáu nhö coù xuaát hieän.
Khi xaûy ra söï coá roø ñieän (chaïm mass) treân ñöôøng daây cuûa hoä tieâu thuï thì do doøng ñieän ñi vaø veà treân daây pha vaø daây trung tính khoâng baèng nhau daãn ñeán doøng toång baèng cuûa hai doøng ñieän treân daây pha vaø daây trung tính ¹ 0.
Doøng ñieän naøy taïo ra töø thoâng ft trong voøng xuyeán saét töø Ferrit laøm phaùt sinh söùc ñieän ñoäng caûm öùng treân cuoän daây caûm öùng.
Phöông phaùp quaán hai daây pha vaø daây trung tính: Quaán ñoàng thôøi hai daây quanh loõi saét töø, trong ñeà taøi naøy ta thöïc hieän quaán khoaûng 5 voøng.
Cuoän daây caûm öùng cuõng ñöôïc quaán treân cuøng moät loõi Ferrit nhöng ñöôïc quaán rieâng thaønh moät cuoän vaø soá voøng thöïc teá caàn quaán khoaûng 300 voøng. Khi ñoù ta coù theå phaùt hieän ra doøng roø khoaûng 20 mA.
Trong thieát keá thöïc teá neáu nhö doøng ñieän caûm öùng quaù beù thì coù theå taêng soá voøng daây cuûa cuoän daây caûm öùng hoaëc laép moät boä khuyeách ñaïi baèng Op-amp taïi ñaàu ra cuûa cuoän daây caûm öùng.
Tín hieäu taïi ngoõ ra naøy ñöôïc ñöa vaøo moät boä phaân aùp coù caùch maéc vaø trò soá nhö boä phaân aùp cuûa caûm bieán doøng.
Thieát keá caûm bieán ñieän aùp:
Trong 3 caûm bieán caàn phaûi thieát keá ñeå ño caùc ñaïi löôïng ñieän thì caûm bieán ñieän aùp laø ñôn giaûn nhaát vì thöïc chaát noù chæ laø moät bieán aùp.
Do vaäy, ta khoâng caàn phaûi thieát keá rieâng moät bieán aùp duøng cho vieäc caûm bieán ñieän aùp maø seõ taän duïng ngay bieán aùp nguoàn.
Ñeå ngaên aûnh höôûng cuûa tuï loïc nguoàn leân daïng soùng ñieän aùp ñöa ñeán khoái ADC, ta caàn gaén moät diode coù cöïc tính nhö treân hình veõ.
Ngoõ ra cuûa bieán aùp ñöôïc ñöa ñeán moät caàu phaân aùp ñeå laáy ra möùc ñieän aùp thích hôïp tröôùc khi ñöa tôùi ADC. Do möùc ñieän aùp naøy khaù lôùn cho neân giaù trò cuûa caùc ñieän trôû phaân aùp vaø tæ leä giöõa chuùng ñöôïc choïn khaùc vôùi caàu phaân aùp cuûa hai caûm bieán treân.
Cuï theå laø:
R4 = R5 = 10K , VR2 = 22K .
Ñieän naêng keá do coù söï keát noái tröïc tieáp vôùi löôùi ñieän cho neân seõ deã bò aûnh höôûng cuûa caùc tín hieäu nhieãu phaùt sinh treân ñöôøng truyeàn cho neân nhaát thieát phaûi coù moät boä phaän loïc caùc nhieãu naøy, ñoàng thôøi khi coù hieän töôïng quaù aùp ñoät ngoät thì cuõng phaûi coù moät boä phaän taùc ñoäng kòp thôøi ñeå baûo veä cho caùc thieát bò phía sau.
Ñieàu naøy ñöôïc thöïc hieän nhôø vaøo cuoän daây loïc nguoàn LF ( Line Filter ), tuï C1 coù giaù trò 0.47uF vaø caàu chì taùc ñoäng nhanh Fuse.
Khi coù quaù aùp ñoät ngoät thì tuï C1 seõ noái taét hai daây nguoàn vaø doøng ñieän lôùn ñuû ñeå laøm cho caàu chì ñöùt.
Khi coù tín hieäu nhieãu treân ñöôøng truyeàn thì hoaëc seõ bò tuï noái taét hoaëc seõ töï trieät tieâu khi ñi qua hai cuoän daây ñöôïc quaán ngöôïc chieàu nhau cuûa cuoän loïc LF.
Maïch ñieän naøy thöôøng ñöôïc söû duïng trong thieát keá nguoàn cuûa caùc TV maøu.
Nhö ta ñaõ bieát, tín hieäu taïi caùc ñaàu doø laø tín hieäu töông töï cho neân tröôùc khi ñöôïc ñöa vaøo xöû lí baèng caùc linh kieän soá thì phaûi ñöôïc chuyeån ñoåi thaønh tín hieäu soá, ñieàu naøy ñöôïc thöïc hieän baèng ADC0809, IC naøy laø coù ñoä phaân giaûi khoâng cao nhöng buø laïi noù raát thoâng duïng vì coù nhieàu ñaëc tính hay nhö coù tôùi 8 ngoõ vaøo töông töï ñöôïc choïn baèng caùc chaân choïn löïa.
Sau ñaây seõ trình baøy veà caùc ñaëc tính quan troïng cuûa ADC tröôùc khi tìm hieåu veà caùch keát noái trong maïch ñieän.
ADC0809 laø moät IC coù chöùc naêng chuyeån ñoåi töông töï sang soá, coù moät soá ñaëc tính sau:
Ñoä phaân giaûi : 8 bit.
Thôøi gian chuyeån ñoåi : 100 ms.
Nguoàn cung caáp : +5V.
Giôùi haïn ñieän aùp ngoõ vaøo 0V ¸ 5V (khi nguoàn cung caáp laø nguoàn ñôn +5V).
Ngoõ ra töông thích vôùi möùc logic cuûa caùc IC TTL.
8 ñöôøng tín hieäu analog ngoõ vaøo ñöôïc choïn löïa baèng moät boä choïn keânh vaø moät tín hieäu duøng ñeå choát ñòa chæ cuûa keânh ñoù.
Möùc tieâu taùn coâng suaát thaáp : 15mW.
Ngoõ ra 3 traïng thaùi coù choát.
Giôùi haïn nhieät ñoä – 40oC ¸ +85oC.
Doøng tieâu thuï : 0.3mA khi hoaït ñoäng bình thöôøng.
Taàn soá hoaït ñoäng f £ 640 KHz.
Giôùi haïn aùp vaøo analog : - 0.1V ¸ VCC+0.1V (DC).
ADC0809 taïo söï giao tieáp deã daøng vôùi caùc thieát bò soá noùi chung thoâng qua 28 chaân coù chöùc naêng nhö sau:
8 ngoõ vaøo analog (IN0 ¸ IN7 ).
8 ngoõ ra döõ lieäu ( D0 ¸ D7 ).
3 ñöôøng ñòa chæ phaân keânh cho 8 ngoõ vaøo analog (A, B, C).
1 tín hieäu choát ñòa chæ vaøo boä giaûi maõ beân trong (ALE).
1 tín hieäu cho pheùp baét ñaàu quaù trình chuyeån ñoåi beân trong IC (START).
1 tín hieäu baùo keát thuùc chuyeån ñoåi (EOC).
1 tín hieäu cho pheùp ngoõ ra xuaát döõ lieäu ñaõ chuyeån ñoåi xong (OE).
2 chaân taïo ñieän aùp tham chieáu (VREF+ vaø VREF-).
2 chaân caáp nguoàn vaø mass cho IC hoaït ñoäng (VCC vaø GRN).
Baûng chöùc naêng cuûa ADC0809:
INPUTS
SELECTED
ANALOG
CHANNEL
ADDRESS
ALE
C
B
A
L
L
L
0
L
L
H
1
L
H
L
2
L
H
H
3
H
L
L
4
H
L
H
5
H
H
L
6
H
H
H
7
Trong sô ñoà treân ADC0809 coù 3 ngoõ vaøo analog ñöôïc keát noái vôùi 3 tín hieäu ra töø caùc caûm bieán.
Ba chaân choïn A, B, C ñöôïc noái vôùi PC0, PC1, PC2 cuûa Port C (8255-2).
Chaân ALE vaø chaân STR ñöôïc noái chung vôùi nhau vaø noái vôùi PC3 cuûa Port C (8255-2).
8 ñöôøng döõ lieäu ngoõ ra töø D0 D7 ñöôïc noái vôùi PB0 PB7 cuûa Port B (8255-2).
Chaân OE ñöôïc noái saün leân möùc cao ñeå luoân cho pheùp döõ lieäu ñöôïc xuaát ra ngoaøi.
Chaân VREF+ ñöôïc noái leân nguoàn +5V.
Chaân VREF- ñöôïc noái xuoáng mass.
Chaân EOC ñöôïc noái vôùi P11 cuûa 8951.
Xung caáp cho ADC 0809 ñöôïc laáy töø ngoõ ra cuûa coång 74HC14.
Tính toaùn taàn soá xung Ck caáp cho ADC0809 :
ADC0809 coù theå hoaït ñoäng ôû taàn soá 640 KHz, nhöng ñeå ñaûm baûo ta seõ thieát keá moät boä caáp xung khoaûng 500 KHz.
Sô ñoà treân, söû duïng 74HC14 neân f = 1.2 / RC.
f = 500 KHz
Choïn C = 100pF
Vaäy R = 1.2/ 500 x 103 x 100 x 10-12 = 24 KW.
Choïn R = 22 KW.
Hoaït ñoäng cuûa khoái caûm bieán caùc ñaïi löôïng ñieän thaønh phaàn ñöôïc trình baøy nhö sau :
Caùc caûm bieán coù nhieäm vuï thu nhaän caùc tín hieäu ñieän vôùi moät bieân ñoä thích hôïp cho khoái chuyeån ñoåi ADC.
Caùc tín hieäu naøy ñang ôû traïng thaùi analog ñöôïc ñöa ñeán caùc ngoõ vaøo analog cuûa ADC0809.
Vi ñieàu khieån 8951 seõ laàn löôït xuaát caùc ñòa chæ töông öùng vôùi ngoõ vaøo tín hieäu analog naøo maø noù caàn ñoïc thoâng qua 3 ñöôøng PC0, PC1, PC2 cuûa 8255 thöù 2.
Khi ñòa chæ ñaõ ñöôïc ñöa ñeán caùc chaân A, B, C cuûa ADC 0809 thì 8951 xuaát tieáp xung choát ñòa chæ naøy vaøo thanh ghi beân trong cuûa ADC 0809.
Do chaân ALE ñöôïc noái chung vôùi chaân STR cho neân ñoàng thôøi vôùi vieäc choát ñòa chæ ADC0809 seõ baét ñaàu thöïc hieän quaù trình chuyeån ñoåi töông töï sang soá ñoái vôùi keânh töông töï ñaõ ñöôïc choïn.
Khi thöïc hieän chuyeån ñoåi xong, ADC0809 seõ baùo cho 8951 bieát baèng caùch ñöa chaân EOC leân möùc 1.
Khi 8951 nhaän thaáy EOC = 1 thì laäp töùc thu nhaän döõ lieäu ñoù vaø tieáp tuïc quaù trình töông töï ñoái vôùi keânh truyeàn tieáp theo.
Treân sô ñoà, chaân OE laø chaân cho pheùp xuaát döõ lieäu ngoõ ra ñaõ ñöôïc noái saün leân möùc cao ñieàu naøy hoaøn toaøn khoâng aûnh höôûng gì ñeán döõ lieäu maø 8951 thu ñöôïc vì 8951 chæ ñoïc döõ lieäu khi nhaän thaáy chaân EOC cuûa ADC 0809 leân möùc 1 töùc laø ñaõ chuyeån ñoåi xong.
Khoái trung taâm xöû lí:
Khoái xöû lí trung taâm chính laø vi ñieàu khieån 8951. Noù coù nhieäm vuï quaûn lí taát caû caùc hoaït ñoäng cuûa thieát bò.
Chöông trình caøi ñaët seõ ñöôïc thöïc thi bôûi 8951 trong suoát quaù trình hoaït ñoäng cuûa ñieän naêng keá ñieän töû.
8951 thu thaäp caùc döõ lieäu döôùi daïng caùc bit nhò phaân do ADC0809 cung caáp sau ñoù noù seõ tính toaùn ñeå cho ra ñieän naêng tieâu thuï trong giôø cao ñieåm vaø thaáp ñieåm cuûa hoä söû duïng ñieän. Döõ lieäu sau khi ñaõ xöû lí seõ ñöôïc xuaát ra caùc LED neáu nhö coù yeâu caàu cuûa ngöôøi söû duïng.
Trong quaù trình söû duïng, coù theå xaûy ra caùc söï coá ñieän nhö ngaén maïch, quaù taûi…luùc ñoù 8951 cuõng caên cöù treân soá lieäu cuûa caùc ñaàu doø ñöa veà vaø so saùnh vôùi moät giaù trò giôùi haïn ñaõ ñöôïc naïp vaøo bôûi ngöôøi laäp trình ñeå quyeát ñònh caùch thöùc ñieàu khieån khoái ñoùng ngaét vaø khoái hieån thò - caûnh baùo hoaït ñoäng.
Khi Trung taâm ñieàu haønh taïi Coâng ty ñieän löïc caàn caùc soá lieäu töø ñieän naêng keá thì 8951 seõ nhanh choùng ñaùp öùng ñeå göûi döõ lieäu leân ñöôøng truyeàn theo moät trong hai caùch noái tieáp hoaëc song song.
Trong heä thoáng, 8951 ñoùng vai troø cuûa chuû ñaïo vì taát caû caùc hoaït ñoäng cuûa caùc boä phaän beân trong ñeàu ñaët döôùi quyeàn kieåm soaùt cuûa noù.
Tuy nhieân, neáu ñeå 8951 giaûi quyeát taát caû caùc ñoøi hoûi ñaùp öùng cuûa thieát bò ngoaøi thì vieäc vieát phaàn meàm ñieàu khieån seõ trôû neân phöùc taïp vaø laøm chaäm toác ñoä chung cuûa toaøn thieát bò.
Do vaäy trong nhöõng tröôøng hôïp caàn thieát ta phaûi thieát keá phaàn cöùng ñeå hoã trôï cho 8951, ñieàu naøy ñöôïc theå hieän roõ trong vieäc thieát keá khoái hieån thò caûnh baùo.
Sô ñoà nguyeân lí ñaõ trình baøy roõ caùch thöùc noái caùc chaân vaøo, ra cuûa 8951 vôùi caùc thieát bò ngoaøi nhö theá naøo ñeå coù theå thöïc hieän ñöôïc chöùc naêng ño ñaïc vaø hieån thò ñieän naêng tieâu thuï cuûa hoä söû duïng vaø ñieàu naøy seõ ñöôïc trình baøy roõ hôn trong phaàn giôùi thieäu phaàn meàm ñieàu khieån 8951.
Khoái löu tröõ döõ lieäu:
Khoái löu tröõ laø moät EEPROM 2864 coù dung löôïng 8 KBytes ñeå chöùa chöông trình vaø döõ lieäu.
Vieäc söû duïng boä nhôù beân ngoaøi ñeå thieát keá cho khoái löu tröõ döõ lieäu nhaèm taïo söï thuaän lôïi trong vieäc naïp chöông trình ñieàu khieån baèng caùc boä naïp vaø nhaát laø khi caàn thay ñoåi chöông trình cuõng deã daøng hôn.
EEPROM 2864 laø moät ROM ñieän coù theå ñoïc/ghi thuaän tieän gioáng nhö RAM tónh, nhöng noù ñaëc ñieåm khoâng bò maát döõ lieäu khi bò maát nguoàn do vaäy chöông trình, cuõng nhö caùc döõ lieäu ñaõ löu vaøo khoâng bò thay ñoåi. Ñieàu naøy raát quan troïng ñoái vôùi ñieän naêng keá.
Chöông trình ñieàu khieån sau khi ñaõ naïp vaøo 2864 seõ ñöôïc duøng ñeå ñieàu khieån 8951 thöïc hieän ñuùng taát caû caùc yeâu caàu ñaõ ñaët ra. Trong khi hoaït ñoäng, 8951 seõ duøng moät phaàn boä nhôù ñeå löu caùc döõ lieäu ñaõ xöû lí.
Toùm laïi vieäc söû duïng EEPROM 2864 vöøa deã daøng cho vieäc naïp trình vöøa ñaûm baûo cho vieäc an toaøn cho döõ lieäu ñaõ löu tröõ.
Khoái hieån thò – caûnh baùo:
Thay vì duøng moät chöông trình ñeå ñieàu khieån 8951 queùt caùc LED 7 ñoaïn ñeå hieån thò ra döõ lieäu mong muoán, ta coù theå thieát keá moät khoái rieâng chuyeân veà hieån thò caùc döõ lieäu ñöôïc göûi ra töø 8951.
Ñieàu naøy nhaèm moät muïc ñích duy nhaát laø laøm giaûm coâng vieäc cho 8951 ñeå noù thöïc hieän chöông trình chính moät caùch lieân tuïc hôn maø khoâng bò ngaét quaõng bôûi yeâu caàu hieån thò thoâng tin ra caùc LED. Nhôø ñoù seõ giaûm nhoû sai soá trong vieäc thu nhaän vaø xöû lí döõ lieäu, ngoaøi ra vieäc vieát moät chöông trình ñeå baét 8951 thöïc hieän xen keõ nhieàu coâng vieäc nhö vaäy seõ trôû neân phöùc taïp hôn nhieàu.
Khoái hieån thò goàm coù 6 ñeøn LED 7 ñoaïn thuoäc loaïi anode chung. Chaân anode cuûa 6 ñeøn ñöôïc noái ñeán cöïc C cuûa 6 transistor loaïi PNP, cöïc E cuûa 6 transistor naøy ñöôïc noái leân nguoàn +5V. Cöïc B cuûa chuùng noái ñeán 6 ngoõ ra taùc ñoäng möùc thaáp cuûa IC giaûi maõ 74LS138 töø Y0 ñeán Y7.
Döõ lieäu caàn hieån thò phaûi ñöôïc chuyeån thaønh maõ cuûa LED 7 ñoaïn vaø daáu chaám thaäp phaân.
Ta caàn ñeán moät IC coù khaû naêng löu taïm döõ lieäu töø 8951 göûi ra vaø noù phaûi ôû tình traïng chôø nhaän döõ lieäu tieáp theo töø 8951, ñoàng thôøi trong quaù trình chôø döõ lieäu môùi naøy noù seõ xuaát döõ lieäu tröôùc ñoù ra caùc chaân a, b, c, …p cuûa caùc led 7 ñoaïn.
Nghóa laø khi coù yeâu caàu hieån thò ra döõ lieäu, 8951 chæ caàn ghi döõ lieäu ñoù ra IC naøy roài quay trôû laïi ñeå thöïc hieän chöông trình chính, coøn vieäc hieån thò ra döõ lieäu ñoù laø hoaøn toaøn ñeå cho khoái hieån thò ñaûm nhaän.
Xeùt thaáy IC nhôù laø thích hôïp hôn caû ñeå ñaûm nhaän nhieäm vuï löu taïm döõ lieäu töø 8951 ñöa ñeán, IC nhôù naøy chæ caàn dung löôïng 6 byte laø ñuû ñeå löu 6 byte döõ lieäu töông öùng vôùi 6 LED trong moãi laàn ghi döõ lieäu cuûa 8951.
Nhöng vieäc tìm moät boä nhôù coù dung löôïng 6 byte laø moät ñieàu khoâng thöïc teá vaø cuõng khoâng baét buoäc phaûi laøm, cho neân ta seõ duøng moät boä nhôù raát phoå bieán ñoù laø RAM 6116 ñeå thöïc hieän chöùc naêng treân, tuy raèng bò hao phí veà dung löôïng nhöng raát thuaän tieän trong vieäc söû duïng.
Khi caàn hieån thò moät döõ lieäu, 8951 seõ göûi moät luùc 6 byte vaøo 6 oâ nhôù cuûa 6116, 6 byte naøy töông öùng vôùi 6 ñeøn LED 7 ñoaïn. Do vaäy, 6116 ñöôïc keát noái nhö moät vuøng nhôù 6 byte cuûa 8951.
8951 seõ truy xuaát ñeán ñòa chæ cuûa 6116 vaø ghi 6 byte döôùi daïng maõ LED 7 ñoaïn vaøo 6 oâ nhôù. Sau khi 8951 khoâng truy xuaát nöõa thì döõ lieäu naøy ñöôïc ñöa ñeán caùc ñeøn LED töông öùng vaø nhôø phöông phaùp queùt seõ ñöa döõ lieäu ñeán ñuùng LED thích hôïp.
Trong maïch ñieän coù söû duïng IC 74LS157 ñeå choïn moät trong hai bus döõ lieäu 4 bit ngoõ vaøo ñöôïc noái ñeán caùc ñöôøng ra cuûa IC.
Khi 8951 muoán ghi döõ lieäu vaøo 6116 noù seõ laøm cho chaân CS3\ xuoáng möùc 0 vaø do vaäy seõ laøm cho bus döõ lieäu vaøo thöù nhaát cuûa IC 74LS157 ñöôïc keát noái vôùi caùc ngoõ ra vaø döõ lieäu ñöôïc ghi vaøo 6116 moät caùch deã daøng.
Thôøi gian ghi döõ lieäu naøy raát ngaén do vaäy khoâng theå phaùt hieän baèng maét. Döõ lieäu khi ñaõ ghi vaøo 6116, chaân CS3\ leân möùc 1 vaø do ñoù seõ keát noái bus döõ lieäu thöù hai cuûa IC 74LS157 ñeán caùc ñöôøng ra ñeå cho pheùp boä nhôù xuaát caùc byte nhôù vöøa ñöôïc ghi ñeán caùc LED töông öùng.
IC 74LS92 ñöôïc thieát keá ñeå ñeám 6, caùc ngoõ ra ñöôïc noái ñeán caùc chaân choïn cuûa 74LS138. Moät trong soá caùc ngoõ ra cuûa IC 74LS138 seõ choïn löïa moät trong 6 LED 7 ñoaïn nhaän laáy döõ lieäu xuaát ra töø boä nhôù, taàn soá queùt ñöôïc tính toaùn sao cho caùc LED khoâng bò nhaáp nhaùy.
IC 74LS244 duøng ñeå ngaên caùch döõ lieäu treân bus heä thoáng vôùi bus döõ lieäu cuûa rieâng khoái hieån thò. Ñieàu naøy giuùp cho khoái hieån thò coù theå hoaït ñoäng song song vôùi khoái xöû lí trung taâm maø khoâng sôï bò laãn loän döõ lieäu.
Tính toaùn taàn soá cuûa boä taïo xung Ck cho IC 74LS92:
Goïi thôøi gian cho moät LED saùng laø t, moät chu kì queùt qua taát caû caùc LED laø T = 6t.
Trong moät chu kì queùt moãi LED seõ chæ saùng moät khoaûng thôøi gian = 1t vaø taét trong 5t.
Taàn soá queùt phaûi ³ 25 Hz ñeå maét ngöôøi khoâng phaùt hieän ra söï nhaáp nhaùy cuûa caùc
LED.
f queùt = 1/T = 1/6t vaäy t £ 1 / 6x25.
Goïi f laø taàn soá cuûa xung Ck : f = 1/t = 6x25 = 150
Ñeå caùc LED ít nhaáp nhaùy hôn, ta choïn f = 500Hz.
Tính toaùn caùc giaù trò R, C cuûa maïch taïo xung Ck:
f = 500 = 1.2 / RC
Choïn C = 0.1 mF vaäy R = 1.2 / 500x0.1x10-6 = 24K W .
Ta choïn R = 22 KW.
Boä phaän caûnh baùo laø moät loa nhoû 8 W, 0.25W ñöôïc gaén ñeán ngoõ ra cuûa moät IC nhaïc coù transistor khuyeách ñaïi.
Maïch ñieän ñöôïc trình baøy nhö trong sô ñoà nguyeân lí, tín hieäu ra treân chaân PC2 ñöôïc duøng laøm chaân ñieàu khieån khoái caûnh baùo phaùt ra tín hieäu.
Tín hieäu ñieàu khieån töø 8951 xuaát ra laøm Q8 daãn caáp nguoàn cho IC nhaïc, tín hieäu aâm taàn ñöôïc Q14 khuyeách ñaïi vaø ñöa ra loa.
Diode zenner duøng oån ñònh ñieän aùp cho IC nhaïc khoaûng 3V, tín hieäu nhaïc coù theå thay ñoåi tuøy theo IC.
Khoái giao tieáp döõ lieäu song song, noái tieáp:
Vieäc giao tieáp döõ lieäu noái tieáp ñöôïc thöïc hieän bôûi caùc ngoõ ra TXD vaø RXD cuûa 8951 döôùi söï ñieàu khieån cuûa phaàn meàm.
Vieäc truyeàn döõ lieäu song song ñöôïc thöïc hieän qua Port B cuûa IC 8255 thöù nhaát, döôùi söï ñieàu khieån cuûa phaàn meàm.
Ta bieát raèng 8255A coù theå thöïc hieän 1 trong 3 cheá ñoä giao tieáp vôùi beân ngoaøi, trong ñoù cheá ñoä 2 vaø 3 coù söû duïng caùc tín hieäu baét tay.
Khi xeùt ñieàu kieän thöïc teá cuûa vieäc truyeàn döõ lieäu song song cuûa ñieän naêng keá ñieän töû töông ñoái phöùc taïp cho neân ta phaûi duøng phaàn meàm ñeå ñieàu khieån vieäc truyeàn döõ lieäu song song chöù khoâng theå söû duïng cheá ñoä hoaït ñoäng naøo cuûa 8255.
Ñeå phaàn meàm deã thao taùc, ta seõ keát noái cho 8255 hoaït ñoäng ôû cheá ñoä 1 laø cheá ñoä vaøo ra cô baûn. Chöông trình ñieàu khieån seõ ñöôïc trình baøy trong phaàn sau, vieäc keát noái phaàn cöùng nhö ñaõ trình baøy trong baûn veõ nguyeân lí.
Vieäc truyeàn döõ lieäu noái tieáp leân ñöôøng truyeàn caàn phaûi qua moät khoái ñieàu cheá tín hieäu vì baûn thaân caùc bit döõ lieäu 0 vaø 1 khoâng theå truyeàn ñi xa.
Ñieàu cheá tín hieäu laø quaù trình loàng tín hieäu thoâng tin caàn truyeàn ñi vaøo moät soùng mang coù taàn soá cao hôn nhieàu laàn.
Um = Am. Cos (Wmt + jom )
Trong ñeà taøi naøy ta choïn phöông phaùp ñieàu cheá tín hieäu baèng caùch thay ñoåi bieân ñoä soùng mang.
Tín hieäu thoâng tin caàn truyeàn ñi laø caùc xung giaùn ñoaïn toàn taïi ôû hai möùc 0 vaø1 cho neân noù coù daïng m(t) = p(t).
Ñieàu cheá bieân ñoä luùc naøy goïi laø ñieàu cheá ASK (Amplitude Shift Keying). Soùng mang sau khi ñaõ thöïc hieän quaù trình ñieàu cheá coù daïng nhö sau:
Khi tín hieäu xung vaøo toàn taïi ôû möùc 1 thì ngoõ ra chính laø tín hieäu soùng mang, khi xung ôû möùc 0 thì tín hieäu ngoõ ra cuõng laø soùng mang nhöng coù bieân ñoä giaûm ñi moät nöûa.
Nhö vaäy, ñeå thieát keá moät maïch ñieàu cheá soùng mang ta tieán haønh nhö sau:
Thieát keá moät maïch taïo dao ñoäng sin coù taàn soá khoaûng 1 Khz, tín hieäu ra cuûa maïch dao ñoäng naøy chính laø tín hieäu soùng mang ñöôïc ñöa ñeán moät chuyeån maïch ñieän töû ñeå thöïc hieän coâng vieäc ñieàu cheá, coù theå söû duïng 4066 laøm nhieäm vuï naøy nhö trong sô ñoà nguyeân lí ñaõ trình baøy.
Maïch taïo soùng sin ñöôïc trình baøy nhö sau:
Ta söû duïng maïch dao ñoäng caàu Wien.
Ñeå ñôn giaûn ta choïn :
R1 = R2 = R
C1 = C2 = C
Vaäy Z1 = R + Xc
Z2 = R // Xc .Vôùi Xc = 1/2 PfC
Nhaän xeùt, ôû vuøng taàn soá thaáp do Z1 coù trôû khaùng lôùn neân ñieän aùp ra Vo thaáp, ôû vuøng taàn soá cao do Z2 coù trôû khaùng nhoû neân ñieän aùp ra Vo cuõng khoâng cao.
Ngöôøi ta chöùng minh ñöôïc raèng :
Taïi taàn soá fo = 1/2 PRC maïch choïn taàn cho ra bieân ñoä lôùn nhaát.
Luùc ñoù hmax = Vo/Vi = 1/3.
Trong maïch treân Q1, Q2 laø hai taàng khuyeách ñaïi ñaûo pha, tín hieäu ra cuøng pha vôùi tín hieäu vaøo ôû ngoõ vaøo laø maïch choïn taàn, khi goùc leäch pha laø 0o thì fo = 1/2 PRC cho tín hieäu ra vôùi bieân ñoä cöïc ñaïi neân maïch ñaõ dao ñoäng ôû taàn soá naøy:
fo = 1 Khz
Ñoä suy giaûm laø 1/3 neân yeâu caàu ñoä khuyeách ñaïi cuûa hai taàng = 3 laàn laø ñuû.
Rf laø ñieän trôû laáy hoài tieáp nghòch duøng ñeå oån ñònh dao ñoäng vaø giaûm meùo.
Khoái ñoùng ngaét nguoàn:
Ñöôïc thieát keá ñôn giaûn baèng moät relay ñoùng ngaét 4 tieáp ñieåm, thöïc hieän vieäc ñoùng ngaét treân caû hai daây pha vaø trung tính.
Relay thöïc hieän vieäc ñoùng ngaét döôùi söï ñieàu khieàn cuûa khoái xöû lí.
Khoái giao tieáp ngöôøi söû duïng:
Thoâng qua 5 phím nhaán ngöôøi söû duïng coù theå taùc ñoäng vaøo ñieän naêng keá ñieän töû. Trong ñoù chæ coù 2 phím naèm ôû beân ngoaøi laø phím ñoùng ngaét nguoàn (ON\OFF) vaø phím choïn löïa (SELECT) thoâng tin hieån thò.
Ba phím coøn laïi daønh cho nhaân vieân ñieän löïc ñieàu chænh caùc thoâng soá ban ñaàu khi laép ñaët ñieän keá.
Ngoaøi ra coøn 1 phím Reset naèm beân trong ñieän keá ñöôïc duøng cho ngöôøi thieát keá.
Vì soá löôïng phím nhaán ít cho neân ta khoâng caàn duøng phaàn meàm ñeå queùt phím maø keát noái tröïc tieáp moãi phím vôùi moät ngoõ vaøo cuûa Port A cuûa IC 8255 thöù nhaát.
Khi coù moät phím naøo ñoù ñöôïc nhaán thì seõ taïo ra moät ngaét cöùng taùc ñoäng ñeán 8951 vaø luùc ñoù 8951 seõ thöïc hieän moät chöông trình queùt doø phím ñaõ nhaán.
Khoái nguoàn cung caáp:
Khoái nguoàn ñöôïc thieát keá ñeå taïo ra naêng löôïng oån ñònh cung caáp cho toaøn thieát bò.
IC 7805 loaïi trung chæ coù theå cung caáp moät doøng ñieän toái ña1A.
Trong thöïc teá, taûi coù luùc ñoøi hoûi moät doøng ñieän cao hôn nhieàu, ngoaøi ra ta khoâng theå thieát keá cho 7805 chaïy ôû doøng Imax naøy vì luùc ñoù 7805 hoaït ñoäng khoâng oån ñònh vaø coù theå bò hö hoûng.
Ñeå khaéc phuïc nhöôïc ñieåm treân ta duøng moät soø coâng suaát ñeå gaùnh doøng phuï cho 7805 ñaùp öùng cho taûi yeâu caàu moät doøng ñieän lôùn.
Muoán vaäy, ta thieát keá cho 7805 daãn phaàn lôùn doøng cho taûi khi hoaït ñoäng bình thöôøng. Khi taûi yeâu caàu doøng lôùn hôn giaù trò ñaõ thieát keá tröôùc thì 7805 seõ phaùt tín hieäu cho soø coâng suaát gaùnh doøng phuï.
Dó nhieân doøng ñieän cung caáp cho taûi ñöôïc taêng theâm nhöng khoâng laøm cho ñieän aùp ngoõ ra thay ñoåi.
Vieäc thieát keá cuï theå ñöôïc trình baøy nhö sau:
Giaû söû taûi yeâu caàu ILmax = 3A do ñoù ñeå hoaït ñoäng ñaûm baûo ta phaûi choïn moät
transistor coù thoâng soá ICmax = (3 ¸ 5) IL
Choïn Q loaïi PNP laø 2955 coù b = 80
Vaäy IBmax = ICmax / b = IL /80 = 3/80 = 37.5 (mA)
Ñeå 7805 laøm vieäc laâu daøi ta choïn doøng qua 7805 = 1/5 Imax = 0.2 (A)
IRs = I – I B = 200 mA – 37.5 mA = 162.5 mA
Nhö vaäy, khi doøng qua 7805 ñaït khoaûng töø 200 mA trôû leân thì Q phaûi daãn doøng phuï, muoán vaäy vaøo thôøi ñieåm naøy Q caàn ñöôïc phaân cöïc thuaän moái noái BE, VBE = 0.7 V
Rs = VBE / IRs = 0.6/162.5 = 3.7 W
Tính coâng suaát cuûa Q :
PQ = ( VIN max - VO ) . ILmax = 9 x 3 = 27 W
PRs = I2 Rs = V2/Rs = 0.72/3.7 = 0.13 W
Choïn loaïi 0.5W
Moät ñieàu caàn thieát khaùc laø phaûi thieát keát moät boä nguoàn döï phoøng nhaèm ñaûm baûo cho toaøn thieát bò hoaït ñoäng oån ñònh ngay khi nguoàn bò maát.
Ñeå coù theå hoaït ñoäng bình thöôøng trong moät thôøi gian töông ñoái daøi chuùng ta söû duïng moät acqui coù ñoä tröõ ñieän töông ñoái lôùn vaø moät maïch naïp töï ñoäng khi acqui heát ñieän vaø töï ñoäng ngaét nguoàn khi ñaõ naïp ñaày ñieän nhaèm traùnh laøm hö hoûng bình acqui.
Trong maïch ñieän treân, doøng ñieän naïp vaøo acqui ñöôïc khoáng cheá bôûi söï daãn maïnh hay yeáu cuûa hai transistor Q10 vaø Q11. Hai transistor naøy laïi ñöôïc ñieàu khieån bôûi doøng chaïy vaøo cöïc B cuûa Q11. Khi doøng naïp qua acqui lôùn, noù seõ taïo suït aùp treân ñieän trôû 3.3 ohm vaø ñieän aùp naøy ñuû ñeå laøm Q3 daãn khieán cho Q4 ngöng neân ñieän aùp treân cöïc B Q11 xuaát hieän vaø kích cho hai transistor naøy daãn maïnh. Khi acqui ñaõ naïp gaàn ñaày laøm cho doøng chaïy qua R3.3 ohm nhoû neân suït aùp treân ñieän trôû naøy cuõng giaûm theo, keát quaû laø Q3 bò taét vaø Q4 daãn seõ keùo cöïc B cuûa Q11 xuoáng thaáp laøm cho Q11 taét, doøng khoâng naïp vaøo bình acqui nöõa.
PHAÀN MEÀM ÑIEÀU KHIEÅN 8951:
Vieäc vieát chöông trình ñeå ñieàu khieån 8951 phaûi döïa treân caáu truùc phaàn cöùng cuûa thieát bò vaø bieát ñaët ra caùc yeâu caàu thích hôïp, sau ñoù döïa vaøo taäp leänh cuûa 8951 ñeå vieát ra chöông trình ñaùp öùng taát caû caùc yeâu caàu ban ñaàu.
Baûn thaân ngöôøi laøm ñeà taøi raát mong muoán vieát ra moät chöông trình ñeå thöïc hieän ñieàu khieån 8951 ñaùp öùng caùc yeâu caàu ñaõ ñeà ra nhöng laïi gaëp trôû ngaïi lôùn veà thôøi gian laøm ñeà taøi khoâng nhieàu neân ñaõ khoâng theå thöïc hieän ñöôïc, ñaây cuõng laø moät ñieàu ñaùng tieác cho baûn thaân.
Nhöng trong suoát quaù trình thöïc hieän ñeà taøi, ngöôøi laøm cuõng ñaõ suy nghó nhieàu veà caùc yeâu caàu coù theå ñaët ra cho ñieän keá khi ñöôïc ñöa vaøo söû duïng vaø phöông caùch ñeå ñaùp öùng caùc yeâu caàu ñoù. Caùc phöông caùch ñoù seõ ñöôïc trình baøy trong phaàn sau mong raèng coù theå laø nhöõng yù kieán ñeå nhöõng ngöôøi coù thích thuù veà ñeà taøi naøy coù theå tham khaûo.
Xöû lí söï coá quaù taûi:
Giaû söû taûi ñang hoaït ñoäng bình thöôøng nhöng ñoät nhieân bò quaù taûi hoaëc bò ngaén maïch thì do qui ñònh doøng ñieän toái ña cho pheùp I max = 30A neân khi doøng taûi vöôït qua giaù trò naøy, laäp töùc khoái xöû lí seõ phaùt hieän ra vaø ñieàu khieån cho boä ñoùng ngaét phaûi hôû maïch ñeå ngaét nguoàn ngay laäp töùc.
Vì söï coá ñieän nhieàu khi do chính con ngöôøi gaây ra vaø thöôøng laø seõ ñöôïc khaéc phuïc ngay sau ñoù, cho neân neáu ta vieát chöông trình ñeå ngaét maïch luoân thì seõ gaây phieàn phöùc cho ngöôøi söû duïng. Ñeå coù theå kheùo leùo hôn ta seõ vieát chöông trình chôø 4s sau khi ñaõ ngaét maïch ñieän thì töï ñoäng ñoùng laïi.
Neáu söï coá ñaõ khaéc phuïc thì maïch tieáp tuïc hoaït ñoäng bình thöôøng vaø caùc LED vaãn hieån thò ra giôø cuûa ñoàng hoà soá.
Neáu söï coá chöa khaéc phuïc thì laäp töùc ngaét ñieän ngay ñoàng thôøi seõ ñieàu khieån cho loa phaùt ra tieáng bip bip (trong khoaûng thôøi gian 3s) vaø treân maët hieån thò caùc ñeøn LED seõ hieån thò ra chöõ short.
Ngöôøi söû duïng khi ñoïc ñöôïc thoâng tin naøy seõ tra moät baûng söï coá ñieän ñöôïc phaùt cho ngöôøi söû duïng khi laép ñaët ñieän keá vaø bieát maïng ñieän ñang bò quaù taûi
Sau khi xem xeùt laïi maïch ñieän, vaø nhaán vaøo nuùt ON/OFF ñeå ñoùng ñieän laïi. Neáu söï coá thöïc söï ñaõ thöïc söï ñöôïc khaéc phuïc thì maïch hoaït ñoäng laïi bình thöôøng, tieáng bip bip bò laøm taét (neáu nhö chöa tôùi 3 phuùt) vaø maët hieån thò seõ laïi xuaát thôøi gian, ñieän keá hoaït ñoäng laïi bình thöôøng
Tröôøng hôïp naëng hôn töùc laø söï coá vaãn chöa ñöôïc khaéc phuïc xong thì laïi phaùt ra tieáng bip bip trong 3 phuùt, treân maët hieån thò luùc naøy hieän ra chöõ CALL treân caùc LED.
Ngöôøi söû duïng khi nhìn thaáy thoâng tin naøy vaø tra baûng söï coá seõ bieát ñöôïc caàn phaûi goïi nhaân vieân ñieän löïc ñeán. Khi maïch ñieän ñaõ ñöôïc söûa chöõa xong, tieáp tuïc nhaán vaøo nuùt ON\OFF maïch ñieän laïi hoaït ñoäng bình thöôøng neáu nhö maïch ñaõ thöïc söï ñöôïc khaéc phuïc xong, neáu khoâng ñieän keá laïi phaùt ra tieáng bip bip. Vaø maïch chæ trôû laïi hoaït ñoäng bình thöôøng khi söï coá ñaõ khaéc phuïc hoaøn toaøn.
Khoái xöû lí seõ löu tröõ thoâng tin söï coá ñeå sau naøy truyeàn veà trung taâm giuùp cho ñieän löïc coù theå phaùt hieän vaø söûa chöõa ñieän cho caùc hoä thöôøng xuyeân xaûy ra söï coá.
B. Xöû lí söï coá ñieän giöït hoaëc roø ræ ñieän:
Trong quaù trình söû duïng ñieän, thieát bò ñieän coù theå bò roø ræ hoaëc ngöôøi söû duïng bò ñieän giöït. Trong caû hai tröôøng hôïp naøy ñeàu daãn ñeán doøng ñieän ñi vaø veà treân daây pha vaø trung tính khoâng baèng nhau.
Quaù trình xöû lí söï coá khaù gioáng nhö xöû lí ngaén maïch ngoaøi ra do hieän töôïng roø ñieän coù theå vaãn ñöôïc duy trì neáu nhö doøng ñieän roø khoâng quaù lôùn vaø taïm thôøi chaáp nhaän trong moät thôøi gian töông ñoái ngaén neân vieäc xöû lí coù khaùc chuùt ít.
Khi phaùt hieän ra coù doøng roø vöôït trò soá ñaõ thieát keá (20mA), ñieän keá laäp töùc ngaét ñieän sau 4s seõ töï ñoäng ñoùng trôû laïi, khi söï coá ñaõ töï khaéc phuïc (doøng roø nhoû hôn giaù trò cho pheùp) thì ñieän keá hoaït ñoäng bình thöôøng, ngöôïc laïi ñieän keá tieáp tuïc ngaét ñieän vaø phaùt ra tieáng bip bip trong khoaûng 3 phuùt ñeå gaây söï chuù yù vaø treân maët hieån thò luùc naøy hieän ra chöõ leak.
Muoán coù ñieän laïi thì caàn nhaán vaøo nuùt ON/OFF, neáu doøng roø ñaõ nhoû hôn giaù trò giôùi haïn thì maïch trôû laïi hoaït ñoäng bình thöôøng nhöng neáu vaãn coøn vöôït giaù trò giôùi haïn thì laïi ngaét ñieän.
Noùi chung caùc thao taùc hoaït ñoäng cuõng nhö trong tröôøng hôïp quaù taûi, chæ khaùc laø maïch coù theå vaãn cho pheùp caáp ñieän taïm thôøi khi doøng roø khoâng quaù lôùn nhöng chæ laø taïm thôøi sau ñoù khoái xöû lí seõ doø laïi doøng ñieän naøy vaø neáu nhö vaãn lôùn hôn giaù trò cho pheùp thì laïi ngaét ñieän ñeå yeâu caàu ñöôïc khaéc phuïc. Thôøi gian doø laïi tuøy thuoäc vaøo phaàn meàm.
QUAÙ TRÌNH TRUYEÀN DÖÕ LIEÄU:
Khi trung taâm coù yeâu caàu thu thaäp döõ lieäu töø caùc ñieän naêng keá noù seõ phaùt ra maõ soá series cuûa ñieän keá ñoù vaø trong töøng thôøi ñieåm chæ duy nhaát coù moät ñieän naêng keá ñöôïc keát noái vôùi ñöôøng truyeàn.
Döõ lieäu töø ñieän keá tröôùc khi ñöôïc phaùt leân ñöôøng truyeàn tôùi trung taâm caàn phaûi qua moät boä ñieàu cheá tín hieäu vôùi taàn soá thích hôïp.
Trung taâm ñöôïc quyeàn truy xuaát ñieän keá vaøo baát kì thôøi ñieåm naøo vaø chæ ñöôïc pheùp thu nhaän döõ lieäu maø khoâng ñöôïc quyeàn thay ñoåi thoâng tin cuûa ñieän keá, ñieàn naøy nhaèm baûo veä quyeàn lôïi cuûa ngöôøi tieâu duøng.
LÖU ÑOÀ CHÖÔNG TRÌNH CHÍNH:
BAÉT ÑAÀU
Ñoïc giaù trò U taûi
Ngaét nguoàn.
Hieån thò vaø
caûnh baùo.
GT > X
Löu GT vaøo X
GT ³ U max
Kích timer ñeám
Ñoïc giaù trò I taûi
Ñoïc giaù trò doøng roø
GT ³ 15mA
So saùnh GT vôùi X
Ñònh nghóa ngaét INT0\ , INT1\
Ñònh nghóa timer T0, T1.
Khôûi taïo 8255(1) vaø 8255(2).
Xuaát giôø hieän taïi ra 6 LED.
Xoùa hai oâ nhôù X, Y.
Timer
ñang ñeám
Ñ
Ñ
Ñ
Ñ
S
Ñ
GT ³ I max
So saùnh GT vôùi Y
GT > Y
Löu GT vaøo Y
Stop timer
Ñoïc giaù trò
timer
Tính cosj
Ttính coâng suaát ñieän naêng tieâu thuï
Coäng doàn giaù trò vaøo
vuøng nhôù
Ñ
Ñ
S
S
Ñ
TRÖÔØNG ÑHSPKT
SÔ ÑOÀ NGUYEÂN LÍ
KHOA ÑIEÄN
ÑEÀ TAØI : ÑIEÄN NAÊNG KEÁ ÑIEÄN TÖÛ GIAO TIEÁP MAÙY TÍNH
95KÑÑ
Sinh vieân thöïc hieän : Traàn Ñaïi Nghóa
._.
Các file đính kèm theo tài liệu này:
- DO33.DOC