You are on page 1of 45

Ñoà aùn Vi maïch Trang 2

PHAÀN I: Giôùi thieäu veà Heä vi xöû lyù

I. Sô löôïc veà Heä thoáng Vi xöû lyù:


Heä thoáng Vi xöû lyù bao goàm: boä xöû lyù trung taâm (CPU:
Central Processing Unit), boä nhôù vaø boä giao tieáp thieát bò ngoaïi vi.
Caùc khoái naøy lieân laïc vôùi nhau thoâng qua caùc bus ñòa chæ, bus
döõ lieäu vaø bus ñieàu khieån.

Bus ñieàu
khieån
Bus döõ
lieäu
Boä xöû lyù Boä nhôù Boä giao
Caùc thieát
trung taâm (Memory) tieáp

CPU ROM-RAM vaøo ra
vaøo ra
(I/O)
Bus ñòa
chæ
Sô ñoà khoái cuûa moät heä Vi xöû lyù

Chöùc naêng cuûa töøng khoái:


1. Khoái xöû lyù trung taâm (CPU:Central Processing Unit):
Laø khoái quan troïng nhaát vaø ñöôïc xem laø boä naõo cuûa caû
heä thoáng. Caùc heä Vi xöû lyù, caùc maùy tính söû duïng caùc boä Vi
xöû lyù laøm ñôn vò trung taâm xöû lyù döõ lieäu (CPU). CPU ñieàu khieån
taát caû caùc linh kieän coøn laïi trong heä thoáng thoâng qua maõ leänh.
CPU coù raát nhieàu chöùc naêng nhö thöïc hieän giao tieáp vôùi beân
ngoaøi, thöïc hieän caùc pheùp toaùn soá hoïc-logic, vaän chuyeån soá
lieäu, xuaát keát quaû, ñieàu khieån giao tieáp vôùi caùc thieát bò khaùc.

2. Boä nhôù (Memory):


Coù vai troø quan troïng trong moät heä vi xöû lyù, laø nôi löu tröõ
chöông trình ñieàu khieån, caùc döõ lieäu, keát quaû trung gian trong
quùa trình tính toaùn, xöû lyù. Ñöôïc chia thaønh hai loaïi:
- ROM (Read Only Memory): chöùa chöông trình ñieàu khieån cuûa
heä thoáng, caùc döõ lieäu naïp trong ROM khoâng bò xoùa ñi khi heä Vi
xöû lyù hoaït ñoäng vaø khoâng bò maát ñi khi heä thoáng bò maát
nguoàn ñieän cung caáp.
Ñoà aùn Vi maïch Trang 3
- RAM (Random Access Memory): khi heä Vi xöû lyù hoaït ñoäng thì
chöông trình heä thoáng seõ thieát laäp trong RAM nhöõng vuøng nhôù
caàn thieát cho hoaït ñoäng cuûa heä thoáng ñeå chöùa moät phaàn
chöông trình öùng duïng vaø caùc keát quaû cuûa chöông trình.

3. Khoái giao tieáp vaøo-ra (I/O Interface):


Ñaây laø chieác caàu noái giöõa CPU vôùi theá giôùi beân ngoaøi.
Moät heä thoáng Vi xöû lyù muoán ñöa döõ lieäu ra ñeå ñieàu khieån caùc
thieát bò beân ngoaøi hoaëc muoán nhaän caùc döõ lieäu töø beân ngoaøi
vaøo ñeå xöû lyù thì phaûi thoâng qua boä giao tieáp vaøo ra. Caùc boä
giao tieáp coøn ñöôïc goïi laø caùc boä xöû lyù ngoaïi vi (PPU: Peripheral
Processing Unit).

4. Heä thoáng Bus:


Heä thoáng caùc Bus (nhoùm nhieàu daây hay tín hieäu coù cuøng
chöùc naêng lieân laïc) ñaûm baûo cho söï lieân laïc ñöôïc thoâng suoát
giöõa CPU, caùc boä nhôù vaø boä giao tieáp ngoaïi vi.
Coù ba loaïi bus:
- Bus ñòa chæ (address bus): duøng ñeå xaùc ñònh vò trí, doø tìm
thoâng tin treân boä nhôù, boä giao tieáp ngoaïi vi, chæ coù moät chieàu
laø truyeàn töø CPU ra.
- Bus döõ lieäu (data bus): ñöôïc noái song song töø CPU ra caùc boä
nhôù vaø boä giao tieáp ngoaïi vi. Bus naøy laø hai chieàu nhöng taïi moät
thôøi ñieåm chæ laø thu hoaëc phaùt thoâng tin.
- Bus ñieàu khieån (control bus): laø bus chæ ñònh cho nhieàu
ñoäng taùc khaùc nhau. CPU duøng ñeå ñieàu khieån traïng thaùi caùc
linh kieän beân ngoaøi. Moãi ñöôøng trong Control bus chæ laø hoaëc ra
hoaëc vaøo ñoái vôùi CPU.

II. Giôùi thieäu veà Vi xöû lyù:


Vi xöû lyù laø moät vi maïch ñieän töû coù maät ñoä tích hôïp cao,
trong ñoù bao goàm caùc vi maïch soá coù khaû naêng nhaän, xöû lyù vaø
xuaát döõ lieäu. Vi xöû lyù coù chöùc naêng hoaït ñoäng nhö laø moät ñôn
vò xöû lyù trung taâm (CPU - Central Processing Unit) trong maùy tính soá.
Hoaït ñoäng chính cuûa Vi xöû lyù laø xöû lyù döõ lieäu, quaù trình naøy
ñöôïc ñieàu khieån theo moät chöông trình goàm taäp hôïp caùc leänh töø
beân ngoaøi maø ngöôøi söû duïng coù theå thay ñoåi tuøy theo yeâu
caàu cuûa coâng vieäc. Moät Vi xöû lyù coù khaû naêng hieåu vaø thöïc
Ñoà aùn Vi maïch Trang 4
hieän raát nhieàu yeâu caàu ñieàu khieån khaùc nhau moät caùch chính
xaùc trong thôøi gian raát ngaén. Vi xöû lyù phaûi naèm trong moät Heä
thoáng Vi xöû lyù thì noù môùi phaùt huy ñöôïc taùc duïng, coù nghóa laø
Vi xöû lyù phaûi ñöôïc keát noái vôùi caùc maïch ñieän beân ngoaøi vaø
caùc thieát bò giao tieáp khaùc.
Chöùc naêng chính cuûa Vi xöû lyù laø xöû lyù döõ lieäu. Ñeå thöïc
hieän ñöôïc coâng vieäc naøy, Vi xöû lyù phaûi coù caùc maïch logic cho
vieäc xöû lyù, ñieàu khieån döõ lieäu vaø caùc maïch logic ñieàu khieån
khaùc. Caùc maïch logic seõ chuyeån döõ lieäu töø nôi naøy ñeán nôi
khaùc vaø thöïc hieän caùc pheùp toaùn treân döõ lieäu coøn maïch ñieàu
khieån seõ quyeát ñònh maïch ñieän naøo cho vieäc xöû lyù döõ lieäu.
Caùc coâng vieäc maø Vi xöû lyù thöïc hieän ñöôïc ñieàu khieån baèng
moät hay nhieàu leänh. Taäp hôïp caùc leänh ñeå thöïc hieän xong moät
yeâu caàu ñaët ra ñöôïc goïi laø moät chöông trình.
Quaù trình thöïc hieän moät leänh cuûa Vi xöû lyù laø ñaàu tieân Vi
xöû lyù seõ ñoùn leänh töø boä nhôù, sau ñoù caùc maïch logic ñieàu
khieån seõ giaûi maõ leänh nhaèm xaùc ñònh xem leänh naøy yeâu caàu
Vi xöû lyù thöïc hieän coâng vieäc gì, cuoái cuøng Vi xöû lyù seõ thöïc
hieän ñuùng coâng vieäc cuûa caùc leänh ñaõ yeâu caàu.
III. Caáu truùc vaø hoaït ñoäng cuûa Vi xöû lyù:
1. Caáu truùc cô baûn cuûa moät Vi xöû lyù:
Moät Vi xöû lyù veà cô baûn goàm coù ba khoái chöùc naêng: Ñôn vò
thöïc thi, boä ñieàu khieån tuaàn töï vaø bus giao tieáp.

Data Register ALU Instruction


Decoder
Address Program Counter
Register

Control Logic

Sô ñoà khoái caáu truùc cô baûn cuûa moät Vi xöû lyù.

2. Caùc ñaëc ñieåm beân trong cuûa Vi xöû lyù:


a. Chieàu daøi töø döõ lieäu:
Ñaëc ñieåm quan troïng nhaát cuûa Vi xöû lyù laø chieàu daøi töø döõ
lieäu. Vi xöû lyù ñaàu tieân coù chieàu daøi töø döõ lieäu laø 4 bit, caùc Vi
xöû lyù sau naøy coù chieàu daøi töø döõ lieäu laø 8 bit, 16 bit,
32 bit vaø 64 bit. Ñoä daøi cuûa töø döõ lieäu noùi leân toác ñoä laøm
Ñoà aùn Vi maïch Trang 5
vieäc vaø khaû naêng truy xuaát boä nhôù cuûa Vi xöû lyù. Neáu Vi xöû
lyù coù chieàu daøi töø döõ lieäu lôùn thì toác ñoä xöû lyù coâng vieäc
nhanh vaø khaû naêng truy xuaát boä nhôù lôùn, ñöôïc duøng trong caùc
coâng vieäc xöû lyù döõ lieäu, ñieàu khieån phöùc taïp. Neáu Vi xöû lyù
coù chieàu daøi töø döõ lieäu nhoû hôn thì seõ coù toác ñoä xöû lyù coâng
vieäc chaäm hôn vaø khaû naêng truy xuaát boä nhôù cuõng bò haïn cheá
hôn, ñöôïc duøng trong caùc coâng vieäc ñieàu khieån vaø xöû lyù ñôn
giaûn. Caùc Vi xöû lyù 8 bit nhö: 8080A, 8085A cuûa Intel; MC6800,
MC6802 cuûa Motorola; Z80 cuûa Zilog; TMS9985 cuûa Texas Instrument;
...
Caùc Vi xöû lyù 16 bit nhö 8086, 8088 cuûa Intel; MC68000 cuûa Motorola;
Z8000 cuûa Zilog; ...

b. Ñoä daøi töø ñòa chæ:


Dung löôïng boä nhôù maø Vi xöû lyù coù theå truy xuaát laø moät
phaàn trong caáu truùc cuûa Vi xöû lyù. Ñeå truy xuaát ñöôïc boä nhôù thì
Vi xöû lyù phaûi bieát ñöôïc ñòa chæ cuûa töøng oâ nhôù cuï theå, ñòa
chæ cuûa oâ nhôù ñöôïc xaùc ñònh baèng töø ñòa chæ. Ñoä daøi cuûa töø
ñòa chæ cho bieát soá löôïng oâ nhôù maø Vi xöû lyù coù theå lieân heä
tröïc tieáp, ñoä daøi cuûa caùc thanh ghi raát caàn thieát cho vieäc ñònh
ñòa chæ cuõng phaûi coù khaû naêng töông öùng.

c. Toác ñoä laøm vieäc:


Taàn soá xung clock cung caáp cho Vi xöû lyù laøm vieäc quyeát ñònh
toác ñoä laøm vieäc cuûa Vi xöû lyù, toác ñoä naøy ñöôïc cho bôûi nhaø
cheá taïo. Toác ñoä xung clock caøng cao thì Vi xöû lyù laøm vieäc vôùi
toác ñoä caøng lôùn vaø khaû naêng xöû lyù leänh caøng nhanh.
d. Caùc thanh ghi:
Trong caáu truùc cuûaVi xöû lyù, caùc thanh ghi giöõ moät vai troø
quan troïng, chuùng ñöôïc duøng ñeå xöû lyù döõ lieäu. Coù nhieàu loaïi
thanh ghi trong Vi xöû lyù vôùi caùc chöùc naêng khaùc nhau, soá löôïng
thanh ghi ñoùng vai troø raát quan troïng ñoái vôùi Vi xöû lyù vaø ngöôøi
laäp trình. Neáu Vi xöû lyù coù soá löôïng thanh ghi caøng nhieàu thì
ngöôøi laäp trình coù theå vieát caùc chöông trình ñieàu khieån Vi xöû lyù
ñôn giaûn hôn bôûi vieäc söû duïng caùc thanh ghi ñöôïc linh ñoäng vaø
ña daïng, ñieàu naøy laøm taêng toác ñoä vaø khaû naêng xöû lyù chöông
trình cuûa Vi xöû lyù.

e. Taäp leänh:
Ñoà aùn Vi maïch Trang 6
Baát kì moät Vi xöû lyù naøo muoán hoaït ñoäng ñöôïc thì phaûi coù
taäp leänh. Do caáu taïo phaàn cöùng khaùc nhau neân moãi Vi xöû lyù
coù taäp leänh khaùc nhau. Taäp leänh cuûa Vi xöû lyù laø moät trong
nhöõng yeáu toá cô baûn ñeå ñaùnh giaù toác ñoä laøm vieäc cuûa Vi xöû
lyù. Neáu Vi xöû lyù coù nhieàu maïch ñieän logic beân trong ñeå thöïc
hieän thì soá löôïng leänh ñieàu khieån cuûa Vi xöû lyù caøng nhieàu, khi
ñoù Vi xöû lyù caøng lôùn vaø ñoä phöùc taïp caøng lôùn. Taäp leänh cuûa
Vi xöû lyù caøng nhieàu thì raát coù ích cho ngöôøi laäp trình khi vieát
chöông trình ñieàu khieån cho Vi xöû lyù.

3. Vi xöû lyù 8 bit:


Moãi loaïi Vi xöû lyù seõ coù caáu truùc khaùc nhau nhöng thöôøng
coù caùc khoái chính nhö sau:
- Khoái ñôn vò soá hoïc/logic (ALU - Arithmetic Logic Unit).
- Caùc thanh ghi (Registers).
- Khoái ñieàu khieån logic (Control Logic).
Chöùc naêng vaø nguyeân lyù hoaït ñoäng cuûa caùc khoái nhö sau:
a. Khoái Ñôn vò soá hoïc-logic (ALU - Arithmetic Logic Unit):
Ñaây laø khoái quan troïng nhaát cuûa Vi xöû lyù, khoái naøy chöùa
External
caùc maïchinput & logic coù chöùc naêng chính laø laøm thay ñoåi döõ
ñieän 16 bit
output
lieäu. ALU coù hai ngoõAddress
vaøo laø IN, ñoù chính laø caùc ngoõ vaøo döõ
control lines
lieäu cho ALU xöû lyù vaøBus moät ngoõ ra OUT laø ngoõ ra keát quaû döõ
lieäu ñaõ ñöôïc ALU xöû lyù. Döõ lieäu tröôùc khi ñöa vaøo ALU ñöôïc
chöùa ôû thanh ghiMemory
ñeäm laø TEMP1 vaøAccumulat
Address TEMP2. Thoâng thöôøng, ALU
Status
luoân laáy döõ lieäu töøRegister
moät thanh ghi ñaëc or Register
bieät coù teân goïi laø Boä
High | (A)
tích luõy (Accumulator). Ngoõ ra OUT choRegister
pheùp ALU
Low B coù theå Cgôûi döõ
Register
lieäu ñaõ ñöôïc xöû lyù leân bus döõ lieäu beân trong Vi xöû lyù, do ñoù
SP Register D Register E
thieát bò naøo keát noái vôùi bus ñeàu coù theå nhaän döõ lieäu naøy,
PC ñaõ ñöôïc xöû
thöôøng thì ALU gôûi döõ lieäu Register H Boä
lyù tôùi Register L Khoái
tích luõy.
ALU coù theå thöïc hieän caùc pheùp tính vaø xöû lyù sau:
Add Subtract And Or Exclusive Or
Shift right Shift left Increment Decrement Complement
8-bit internal data
bus 8 bit
Data
Instructio TEMP1 TEMP2 Bus
n
Contro Register
l
logic IN IN

Instructio ALU
n
Decoder OUT
Ñoà aùn Vi maïch Trang 7

Sô ñoà khoái cuûa moät Vi xöû lyù 8 bit.

b. Caùc thanh ghi (Registers):


Caùc thanh ghi cô baûn luoân coù trong moät Vi xöû lyù laø A, PC, SP,
F, caùc thanh ghi thoâng duïng laø B, C, D, E, thanh ghi leänh, thanh ghi
ñòa chæ.
Thanh ghi A (Accumulator): hay boä tích luõy, ñaây laø thanh ghi
quan troïng cuûa Vi xöû lyù, noù coù chöùc naêng laø löu tröõ döõ lieäu
khi tính toaùn. Haàu heát caùc pheùp tính logic vaø soá hoïc ñeàu dieãn ra
giöõa thanh ghi naøy vaø ALU. Noù coù chöùc naêng quan troïng khaùc laø
truyeàn döõ lieäu töø oâ nhôù hay töø caùc thanh ghi beân trong ra caùc
thieát bò ngoaïi vi.
Thanh ghi PC (Program Counter): hay boä ñeám chöông trình, laø
thanh ghi cô baûn cuûa Vi xöû lyù. Chöùc naêng cuûa thanh ghi PC laø
quaûn lyù leänh ñang thöïc hieän vaø leänh seõ ñöôïc thöïc hieän tieáp
theo. Tröôùc khi Vi xöû lyù thöïc hieän moät chöông trình thì thanh ghi PC
phaûi ñöôïc naïp moät con soá, ñoù chính laø ñòa chæ cuûa oâ nhôù
chöùa leänh ñaàu tieân cuûa chöông trình. Sau thöïc hieän vieäc ñoùn
leänh töø boä nhôù, Vi xöû lyù seõ töï ñoäng taêng noäi dung PC ñeå
Ñoà aùn Vi maïch Trang 8
chuaån bò ñoùn leänh keá, PC chæ taêng khi Vi xöû lyù baét ñaàu thöïc
hieän leänh ñoùn tröôùc ñoù.
Thanh ghi traïng thaùi (Status Register): coøn ñöôïc goïi laø thanh ghi
côø (Flag Register), duøng ñeå löu tröõ keát quaû cuûa moät soá leänh
kieåm tra coù aûnh höôûng ñeán thanh ghi naøy. Caùc bit thöôøng coù
trong thanh ghi côø laø:
- Bit Carry “C”: khi keát quaû traøn thì C = 1, ngöôïc laïi C = 0.
- Bit Zero “Z” : keát quaû baèng 0 thì Z = 1, ngöôïc laïi Z = 0.
- Bit Negative “N”: khi bit MSB cuûa thanh ghi laø 1 thì N = 1, ngöôïc
laïi N = 0.
- Bit Intermediate Carry “I”: gioáng nhö bit Carry nhöng chæ coù taùc
duïng vôùi pheùp coäng hay tröø treân 4 bit thaáp.
- Bit Interupt Flag “IF”: IF = 1 khi ngöôøi laäp trình cho pheùp ngaét,
ngöôïc laïi IF = 0.
- Bit Overflow “O”: O = 1 khi bit Carry cuûa pheùp toaùn coäng vôùi
bit daáu cuûa döõ lieäu.
- Bit Parity “P”: P = 1 khi keát quaû pheùp toaùn laø soá chaün,
ngöôïc laïi P = 0.
Thanh ghi con troû ngaên xeáp SP (Stack Pointer): chöùc naêng cuûa
thanh ghi con troû ngaên xeáp laø quaûn lyù boä nhôù ngaên xeáp khi coù
döõ lieäu ñöôïc löu tröõ taïm thôøi vaøo ngaên xeáp. Cuõng gioáng nhö
PC, SP cuõng töï ñoäng chæ ñeán oâ nhôù keá. Caùc döõ lieäu chöùa trong
ngaên xeáp ñöôïc toå chöùc theo nguyeân taéc vaøo sau ra tröôùc (LIFO:
Last In First Out). Trong haàu heát caùc Vi xöû lyù, SP töï giaûm sau khi
thöïc hieän leänh caát giöõ döõ lieäu vaøo ngaên xeáp vaø ngöôïc laïi SP
seõ töï taêng leân ñeå chæ ñeán oâ nhôù tieáp theo trong ngaên xeáp sau
khi Vi xöû lyù thöïc hieän leänh laáy döõ lieäu ra khoûi ngaên xeáp. Vì theá
giaù trò cho SP khi thieát laäp thöôøng laø ñòa chæ cuoái cuøng cuûa boä
nhôù. Quaù trình naøy do ngöôøi laäp trình thieát laäp ñöôïc goïi laø khôûi
taïo con troû ngaên xeáp. Neáu khoâng ñöôïc khôûi taïo, con troû ngaên
xeáp seõ chæ ñeán moät oâ nhôù ngaãu nhieân. Khi ñoù döõ lieäu caát
vaøo ngaên xeáp coù theå ghi ñeø leân döõ lieäu khaùc laøm chöông trình
xöû lyù sai.
Thanh ghi ñòa chæ (Address Register): khi Vi xöû lyù caàn truy xuaát
boä nhôù, thanh ghi ñòa chæ phaûi taïo ra ñuùng ñòa chæ maø Vi xöû lyù
mong muoán. Ngoõ ra cuûa thanh ghi ñòa chæ ñöôïc ñaët leân bus ñòa
chæ, bus ñòa chæ duøng ñeå löïa choïn moät oâ nhôù hay moät port I/O
caàn truy xuaát.
Ñoà aùn Vi maïch Trang 9
Thanh ghi leänh (Instruction Register): duøng ñeå chöùa leänh Vi xöû
lyù ñang thöïc hieän. Thanh ghi naøy do Vi xöû lyù söû duïng, ngöôøi laäp
trình khoâng söû duïng.
Thanh ghi chöùa döõ lieäu taïm thôøi (Temporary Register): duøng
ñeå ALU thöïc hieän caùc pheùp toaùn xöû lyù döõ lieäu, ngöôøi laäp trình
khoâng söû duïng thanh ghi naøy.

c. Khoái giaûi maõ leänh vaø khoái ñieàu khieån logic:


Chöùc naêng cuûa khoái giaûi maõ leänh laø nhaän leänh töø thanh
ghi leänh sau ñoù tieán haønh giaûi maõ leänh roài ñöa tín hieäu ñieàu
khieån ñeán khoái ñieàu khieån logic.
d. Caùc ñöôøng bus:
Caùc khoái beân trong Vi xöû lyù lieân heä vôùi nhau thoâng qua taäp
hôïp caùc ñöôøng daây ñeå truyeàn döõ lieäu goïi laø bus heä thoáng.
Chuùng ñöôïc chia ra laøm ba loaïi:
- Bus ñòa chæ: coù nhieäm vuï ñònh ra ñòa chæ cuûa thieát bò caàn
truy xuaát neân mang tính moät chieàu, chæ coù Vi xöû lyù môùi ñöa döõ
lieäu leân bus ñòa chæ.
- Bus döõ lieäu: duøng ñeå keát noái caùc thanh ghi beân trong Vi xöû
lyù vaø ALU, taát caû döõ lieäu di chuyeån beân trong Vi xöû lyù töø khoái
naøy ñeán khoái khaùc ñeàu thoâng qua bus döõ lieäu, do ñoù bus döõ
lieäu mang tính hai chieàu. Khi Vi xöû lyù caàn truy xuaát döõ lieäu töø
boä nhôù hay caùc thieát bò I/O beân ngoaøi thì bus döõ lieäu beân trong
phaûi ñöôïc noái vôùi bus döõ lieäu beân ngoaøi.
- Bus ñieàu khieån: goàm caùc tín hieäu ñieàu khieån ñeå ñaûm baûo
söï hoaït ñoäng ñoàng boä giöõa caùc khoái, moãi tín hieäu ñieàu khieån
coù moät chieàu nhaát ñònh. Khi hoaït ñoäng, Vi xöû lyù ñöa caùc tín
hieäu ñieàu khieån tôùi caùc khoái khaùc trong heä thoáng, ñoàng thôøi Vi
xöû lyù cuõng nhaän tín hieäu töø caùc khoái khaùc gôûi veà. Ñieàu naøy
khoâng coù nghóa bus ñieàu khieån laø hai chieàu vì Vi xöû lyù gôûi tín
hieäu ñi hay nhaän tín hieäu veà treân caùc ñöôøng tín hieäu khaùc nhau
beân trong bus ñieàu khieån.

4. Taäp leänh (Instructions) cuûa Vi xöû lyù:


Moãi loaïi Vi xöû lyù coù taäp leänh rieâng, soá löôïng leänh cuõng
tuøy thuoäc vaøo töøng loaïi Vi xöû lyù. Taäp leänh cuûa Vi xöû lyù coù
theå ñöôïc chia laøm caùc nhoùm cô baûn sau:
- Nhoùm leänh truyeàn döõ lieäu.
Ñoà aùn Vi maïch Trang 10

- Nhoùm leänh soá hoïc vaø logic


- Nhoùm leänh trao ñoåi, truyeàn khoái döõ lieäu vaø tìm kieám.
- Nhoùm leänh xoay vaø dòch.
- Nhoùm leänh ñieàu khieån
- Nhoùm leänh veà bit.
- Nhoùm leänh nhaûy.
- Nhoùm leänh goïi, trôû veà.
- Nhoùm leänh xuaát, nhaäp.
Moãi leänh cuûa Vi xöû lyù laø döõ lieäu ôû daïng soá nhò phaân. Khi
Vi xöû lyù nhaän ñöôïc moät leänh thì töø döõ lieäu nhò phaân naøy yeâu
caàu Vi xöû lyù thöïc hieän coâng vieäc maø leänh yeâu caàu. Chieàu daøi
cuûa moät leänh baèng vôùi chieàu daøi töø döõ lieäu cuûa Vi xöû lyù.
Moãi leänh maø Vi xöû lyù thöïc hieän goàm hai yeáu toá:
- Maõ coâng taùc: cho bieát thao taùc maø Vi xöû lyù phaûi thöïc
hieän.
- Toaùn haïng: ñöôïc vieát theo sau maõ coâng taùc, cho bieát vò trí
döõ lieäu caàn phaûi xöû lyù.
Coù nhieàu caùch ñeå chæ vò trí cuûa soá lieäu:
- Ñònh ñòa chæ tröïc tieáp baèng thanh ghi: toaùn haïng laø kyù
hieäu cuûa caùc thanh ghi vaø döõ lieäu caàn xöû lyù chính laø
noäi dung chöùa trong thanh ghi ñoù.
- Ñònh ñòa chæ giaùn tieáp baèng thanh ghi: toaùn haïng khoâng
phaûi laø ñòa chæ cuûa soá lieäu maø chæ laø daáu hieäu cho
bieát nôi chöùa döõ lieäu.
- Ñònh ñòa chæ tröïc tieáp: toaùn haïng laø ñòa chæ cuûa döõ lieäu
caàn ñöôïc xöû lyù.
- Ñònh ñòa chæ töùc thôøi: toaùn haïng chính laø döõ lieäu caàn
ñöôïc xöû lyù.
- Ñònh ñòa chæ ngaàm ñònh: vò trí hoaëc giaù trò cuûa döõ lieäu
caàn ñöôïc xöû lyù ñöôïc hieåu ngaàm nhôø maõ coâng taùc.
Ñoà aùn Vi maïch Trang 11

PHAÀN II: Vi xöû lyù 8085A

I. Giôùi thieäu:
Vi xöû lyù 8085A ñöôïc haõng Intel cheá taïo vaøo naêm 1974. Ñaây
laø moät Vi xöû lyù 8 bit, coù chieàu daøi töø döõ lieäu laø 8 bit, chieàu
daøi töø ñòa chæ laø 16 bit.
1. Ñaëc tính:
- Nguoàn cung caáp : 5V ± 10%.
- Doøng ñieän cöïc ñaïi: Imax = 170mA.
- Taàn soá xung clock chuaån 6MHz.
- Maïch taïo xung clock ñöôïc tích hôïp, coù theå duøng thaïch anh,
RC hay RC beân ngoaøi.
- Coù 5 yeâu caàu ngaét: Trong ñoù coù moät yeâu caàu ngaét
khoâng che ñöôïc (NMI - Non Maskable Interrupt) vaø moät töông
thích vôùi 8080A.
- Coù coång Input/Output noái tieáp.
- Phaàn meàm töông thích 100% vôùi 8080A.

2. Sô ñoà chaân vaø sô ñoà logic:

X1 Vcc Ready A15 - A8


X2 HOLD Hold
HLDA AD7 - AD0
Reset Out
CLK Out
SOD
Reset In Intr
SID
Ready RST 7.5
Trap
IO/M\ RST 6.5
RST 7.5 ALE
S1 RST 5.5
RST 6.5
RD\ S0
RST 5.5
INTR WR\ S1
ALE Trap
8085
INTA\
S0 Reset In RD\
AD0
WR\
8085 A15 X1
AD1
AD2 A14 X2
A HLDA
INTA
AD3
AD4
A A13
A12
SID
Vcc
Reset Out

AD5 A11 Vss SOD


AD6 A10 CLK Out
AD7 A9
Vss A8

Sô ñoà chaân
Ñoà aùn Vi maïch Trang 12

A8..A15 - Address bus (output)


Byte cao cuûa ñòa chæ oâ nhôù 16 bit hoaëc ñòa chæ coång 8 bit,
coù caáu taïo ngoõ ra 3 traïng thaùi. Traïng thaùi Hi-Z ôû cheá ñoä HOLD,
HALT vaø trong luùc RESET.
AD0..AD7 - Address/Data bus (input/output)
Bus ñòa chæ/döõ lieäu, laøm vieäc theo phöông phaùp ña loä thôøi
gian: ÔÛ chu kyø ñoàng hoà ñaàu tieân laø byte thaáp cuûa ñòa chæ oâ
nhôù hoaëc khoái xuaát nhaäp, ôû hai chu kyø tieáp theo laø döõ lieäu,
caáu taïo ngoõ ra 3 traïng thaùi. Traïng thaùi Hi-Z ôû cheá ñoä HOLD, HALT
vaø trong luùc RESET.
ALE - Address Latch Enable (output)
ÔÛ chu kyø ñaàu tieân cuûa xung ñoàng hoà, ALE = [1] cho bieát
AD0..AD7 laø bus ñòa chæ.

T1 T2 T3 T1 T2 T3

xung
clock
A15-A8 Address A15-A8 Address A15-A8

AD7-AD0 A7-A0 Data D7-D0 A7-A0 Data D7-D0

ALE

RD\

WR\

Chu kyø Chu kyø


ñoïc vieát
Phöông phaùp ña loä thôøi gian
RESET IN

S0 S1 HLDA HOLD

8085A
RESET
RDY CLK INTA ALE RD WR IO/M\ OUT AD7 - AD0
A15 - A8

C
hoát
Tín hieäu
Bus
ngaét
döõ Bus ñòa
Bus ñieàu khieån
lieäu chæ
Ñoà aùn Vi maïch Trang 13

Vi xöû lyù vaø choát ñòa chæ


RD\ - Read control (output)
Taùc ñoäng möùc thaáp cho bieát döõ lieäu ñang ñöôïc ñoïc töø boä
nhôù hoaëc coång. Caáu taïo ngoõ ra 3 traïng thaùi. Traïng thaùi Hi-Z ôû
cheá ñoä HOLD, HALT vaø trong luùc RESET.

WR\ - Write control (output)


Taùc ñoäng möùc thaáp cho bieát döõ lieäu ñang ñöôïc vieát vaøo
boä nhôù hoaëc coång. Caáu taïo ngoõ ra 3 traïng thaùi. Traïng thaùi Hi-Z
ôû cheá ñoä HOLD, HALT vaø trong luùc RESET.

READY (input)
Möùc cao trong chu kyø ñoïc hoaëc vieát cho bieát boä nhôù hoaëc
thieát bò ngoaïi vi ñaõ saün saøng gôûi hoaëc nhaän döõ lieäu, Vi xöû lyù
seõ ñôïi neáu ngoõ naøy ôû möùc thaáp.

S0, S1, IO/M\ - status (output)


Ba ngoõ ra cho bieát traïng thaùi hoaït ñoäng cuûa Vi xöû lyù.

IO/M\ S1 S0 Traïng thaùi


0 0 1 Vieát vaøo boä
nhôù
0 1 0 Ñoïc vaøo boä
nhôù
1 0 1 Vieát ra coång
1 1 0 Ñoïc töø coång
0 1 1 Nhaän leänh
1 1 1 Nhaän leänh
1 1 1 Nhaän yeâu
* traïng thaùi Hi-
caàu ngaét Z
* 0 0 HALT x khoâng xaùc
* x x HOLD ñònh
* x x RESET
Ñoà aùn Vi maïch Trang 14

HLDA - Hold Acknowledge (output)


Tín hieäu ra cho bieát Vi xöû lyù chaáp nhaän quyeàn söû duïng bus
ñòa chæ vaø bus döõ lieäu ôû chu kyø keá tieáp, ngoõ naøy trôû veà möùc
thaáp khi khoâng coøn yeâu caàu HOLD.

INTR - Interrupt Request (input)


Ñöôïc duøng cho caùc yeâu caàu ngaét coâng duïng chung, Vi xöû
lyù seõ nhaän ra sau khi thöïc hieän xong moät chæ thò, ngaét naøy coù
theå ñöôïc che baèng phaàn meàm vaø khoâng coù hieäu löïc trong luùc
RESET hoaëc trong khi Vi xöû lyù ñang thi haønh moät chöông trình phuïc
vuï ngaét.

INTA - Interrupt Acknowledge (output)


Ngoõ ra möùc thaáp cho bieát Vi xöû lyù chaáp thuaän yeâu caàu
ngaét.

RST 5.5, RST 6.5, RST 7.5 - Restart Interrupt (input)


Ba yeâu caàu ngaét coù möùc ñoä öu tieân cao hôn INTR, ñöôïc
ñieàu khieån bôûi leänh SIM.

TRAP (input)
Yeâu caàu ngaét coù möùc ñoä öu tieân cao nhaát vaø khoâng che
ñöôïc baèng phaàn meàm.

Teân Möùc öu Ñòa chæ Tín hieäu taùc


tieân ngaét (1) ñoäng
TRAP 1 24h Caïnh leân vaø
möùc cao
RST 2 3Ch Caïnh leân
7.5
RST 3 34h Möùc cao
6.5
RST 4 2Ch Möùc cao
5.5
INTR 5 (2) Möùc cao
Ñoà aùn Vi maïch Trang 15

(1) Vi xöû lyù caát PC vaøo ngaên xeáp tröôùc khi nhaûy ñeán
ñòa chæ ngaét.
(2) Phuï thuoäc vaøo ñòa chæ goïi ngaét.

1 1
1
INT0 D0
INT1 D1
INT2 Ñeäm D2
INT3 ba D3
INT4
7414 traïng D4
INT5 8 thaùi D5
INT6 D6
INT7 D7

1
1

INTR\ INTA
AD0 ... AD7
Vi xöû lyù
A8 ... A15

Caùc ngaét ñöôïc goïi baèng leänh RST

INTERRUP RESTART Ñòa chæ


T boä nhôù
D7 D6 D5 D4 D3 D2 D1
INT D0 (Hex)
0 1 1 0 0 1 1 1 0 0 0 0
0
1 1 1 0 0 1 1 1 0 0 0 8
1
2 1 1 0 1 1 1 1 0 0 1 0
0
3 1 1 0 1 1 1 1 0 0 1 8
1
4 1 1 1 0 1 1 1 0 0 2 0
0
5 1 1 1 0 1 1 1 0 0 2 8
1
6 1 1 1 1 1 1 1 0 0 3 0
0
Ñoà aùn Vi maïch Trang 16

7 1 1 1 1 1 1 1 0 0 3 8
1

RESET IN\ (input)


Möùc thaáp ñaët laïi boä ñeám chöông trình veà 0000H, xoùa FF cho
pheùp ngaét vaø HLDA. Bus ñòa chæ, bus döõ lieäu vaø bus ñieàu khieån
ôû traïng thaùi Hi-Z trong luùc RESET.

RESET OUT (output)


Baùo cho bieát CPU ñang ôû traïng thaùi RESET, duøng ñeå ñaët laïi
toaøn boä heä thoáng, ngoõ ra töông thích TTL.

X1, X2 (input)
Ngoõ ñaët thaïch anh, RC hoaëc LC ñeå taïo xung ñoàng hoà, X 1
coøn laø ngoõ vaøo cuûa tín hieäu ñoàng hoà töø maïch beân ngoaøi.

CLK - Clock (output)


Ngoõ ra xung ñoàng hoà coù taàn soá baèng phaân nöûa tín hieäu
taïi X1.

SID - Serial Input Data line (input)


Ngoõ vaøo döõ lieäu noái tieáp naïp vaøo bit 7 cuûa boä tích luõy khi
coù leänh RIM.

SOD - Serial Output Data line (output)


Ngoõ ra döõ lieäu noái tieáp ñöôïc xaùc ñònh bôûi leänh SIM.
Vcc Nguoàn nuoâi +5V.
Vss Mass.

Caáu taïo 8085A:


Caáu taïo beân trong cuûa Vi xöû lyù 8085A coù ñaày ñuû taát caû
caùc khoái cuûa moät Vi xöû lyù 8 bit ñaõ ñöôïc giôùi thieäu, nhöng coù
moät soá ñieåm khaùc bieät ñöôïc theå hieän qua sô ñoà khoái sau:
Ñoà aùn Vi maïch Trang 17
INTR INTA\ RST 7.5 RST 6.5 RST 5.5 SID
TRAP SOD

INTERRUPT CONTROL SERIAL I/O CONTROL

8 BIT INTERNAL DATA BU S

ACCUMULATOR (8) TEMP


B C
REG(8)
REG (8) REG (8)

INSTRUCTION D E
FLAG (8) REGISTER (8) REG (8) REG (8)
FLIP FLOP
H L
REG (8) REG (8)

STACK POINTER
ALU INSTRUCTION PROGRAM COUNTER
DECODER AND
MACHINE CYCLE INCREMENTER/
ENCODING DECREMENTER

X1 TIMING AND CONTROL ADDRESS DATA/ADDRESS


X2 CONTROL STATUS DMA BUFFER BUFFER
RESET

CLOCK OUT RD\ WR\ ALE S0 S1 IO/M\ HOLD RESET A15..A8 AD7..AD0
IN ADDRESS BUS DATA/ADDRESS
READY HLDA RESET OUT
BUS

Caáu truùc Vi xöû lyù 8085A

Caáu taïo Vi xöû lyù 8085A goàm 3 phaàn: Ñôn vò soá hoïc-logic,
caùc thanh ghi vaø ñôn vò ñieàu khieån. Caùc thanh ghi trong 8085A
ñöôïc chia ra nhö sau:
Boä ñeám chöông trình (PC) vaø con troû ngaên xeáp (SP): laø
hai thanh ghi coù ñoä daøi 16 bit neân Vi xöû lyù coù theå truy xuaát ñöôïc
moät löôïng oâ nhôù laø 216 = 65536 byte hay 64Kbyte.
Boä tích luõy (Accummulator): Coù kyù hieäu laø A, ñoä daøi 8 bit.
Ñaây laø thanh ghi quan troïng nhaát trong Vi xöû lyù, haàu heát caùc
quaù trình tính toaùn ñeàu xaûy ra treân thanh ghi naøy.
Thanh ghi traïng thaùi (Status Register): Coù teân khaùc laø
thanh ghi côø (Flag), kyù hieäu laø F, thanh ghi naøy coù ñoä daøi 8 bit
trong ñoù coù 5 bit traïng thaùi duøng ñeå phaûn aùnh traïng thaùi cuûa
Vi xöû lyù khi thöïc hieän xong moät leänh.
Ñoà aùn Vi maïch Trang 18

S Z x AC x P x Cy
S - Sign (bit daáu)
S = 1 Khi keát quaû laø soá aâm.
S = 0 Khi keát quaû laø soá döông.
Z - Zero (bit zero)
Z = 1 Khi keát quaû baèng 0.
Z = 0 Khi keát quaû khaùc 0.
AC - Auxiliary Carry (bit soá nhôù phuï)
AC = 1 Khi pheùp tính bò traøn treân bit 3.
AC = 0 Khi pheùp tính khoâng traøn treân bit 3.
P - Parity (bit chaün leû)
P = 1 Khi keát quaû laø soá chaün.
P = 0 Khi keát quaû laø soá leû.
Soá chaün laø soá coù toång soá bit [1] laø chaün, vaø ngöôïc laïi soá leû
laø soá coù toång soá bit [1] laø leû.

Cy - Carry (bit soá nhôù)


Cy = 1 Khi keát quaû coù soá nhôù.
Cy = 0 Khi keát quaû khoâng soá nhôù.
Caùc thanh ghi coâng duïng chung: Goàm 6 thanh ghi coù ñoä
daøi 8 bit ñöôïc kyù hieäu laàn löôït laø B, C, D, E, H vaø L. Caùc thanh ghi
naøy coù theå keát hôïp thaønh töøng caëp 16 bit: BC, DE, HL vaø AF,
trong ñoù A, B, D vaø H laø caùc thanh ghi cao vaø F, C, E vaø L laø caùc
thanh ghi thaáp.

II. TAÄP LEÄNH 8085A:


Taäp leänh cuûa 8085A ñöôïc chia thaønh caùc nhoùm nhö sau:
- Nhoùm leänh truyeàn döõ lieäu
- Nhoùm leänh soá hoïc - logic
- Nhoùm leänh so saùnh
- Nhoùm leänh nhaûy
- Nhoùm leänh veà ngaên xeáp
- Nhoùm leänh veà xuaát nhaäp
- Nhoùm leänh ñieàu khieån
Ñoà aùn Vi maïch Trang 19

1. Nhoùm leänh truyeàn döõ lieäu:


MOV ds, sr Truyeàn döõ lieäu töø thanh ghi sr ñeán thanh ghi ds.
MOV ds, M Truyeàn döõ lieäu töø oâ nhôù coù ñòa chæ chöùa
trong caëp thanh ghi HL vaøo thanh ghi ds.
MOV M, sr Truyeàn döõ lieäu töø thanh ghi sr vaøo oâ nhôù coù
ñòa chæ chöùa trong caëp thanh ghi HL.
MVI ds, data Truyeàn töùc thôøi döõ lieäu 8 bit vaøo thanh ghi ds.
MVI M, data Truyeàn töùc thôøi döõ lieäu 8 bit vaøo oâ nhôù coù
ñòa chæ chöùa trong caëp thanh ghi HL.
LXI rp, dw Naïp töùc thôøi döõ lieäu 16 bit vaøo caëp thanh ghi rp.
LDA addr Naïp tröïc tieáp noäi dung oâ nhôù coù ñòa chæ laø
addr vaøo thanh ghi A.
LDAX rp Naïp giaùn tieáp noäi dung oâ nhôù coù ñòa chæ
chöùa trong caëp thanh ghi rp vaøo thanh ghi A.
LHLD addr Naïp tröïc tieáp noäi dung oâ nhôù coù ñòa chæ laø
addr vaøo thanh ghi L, noäi dung oâ nhôù coù ñòa
chæ addr+1 vaøo thanh ghi H.
STA addr Löu tröõ tröïc tieáp noäi dung thanh ghi A vaøo oâ
nhôù coù ñòa chæ addr.
STAX rp Löu tröõ giaùn tieáp noäi dung thanh ghi A vaøo oâ
nhôù coù ñòa chæ chöùa trong caëp thanh ghi rp.
SHLD addr Löu tröõ tröïc tieáp noäi dung thanh ghi L vaøo oâ
nhôù coù ñòa chæ addr, noäi dung thanh ghi H vaøo
oâ nhôù coù ñòa chæ addr+1.
XCHG Hoaùn chuyeån noäi dung giöõa caëp thanh ghi HL
vôùi caëp thanh ghi DE.

2. Nhoùm leänh soá hoïc - logic:


ADD sr Coäng khoâng löu yù soá nhôù noäi dung thanh ghi A
vôùi noäi dung thanh ghi sr.
ADD M Coäng khoâng löu yù soá nhôù noäi dung thanh ghi A
vôùi noäi dung oâ nhôù coù ñòa chæ chöùa trong caëp
thanh ghi HL.
ADI data Coäng khoâng löu yù soá nhôù noäi dung thanh ghi A
vôùi döõ lieäu.
Ñoà aùn Vi maïch Trang 20

ADC sr Coäng coù löu yù soá nhôù noäi dung thanh ghi A vôùi
noäi dung thanh ghi sr.
ADC M Coäng coù löu yù soá nhôù noäi dung thanh ghi A vôùi
noäi dung oâ nhôù coù ñòa chæ chöùa trong caëp
thanh ghi HL.
ACI data Coäng coù löu yù soá nhôù noäi dung thanh ghi A vôùi
döõ lieäu.
SUB sr Tröø khoâng löu yù soá thieáu noäi dung thanh ghi A
vôùi noäi dung thanh ghi sr.
SUB M Tröø khoâng löu yù soá thieáu noäi dung thanh ghi A
vôùi noäi dung oâ nhôù coù ñòa chæ chöùa trong caëp
thanh ghi HL.
SUI data Tröø khoâng löu yù soá thieáu noäi dung thanh ghi A
vôùi döõ lieäu.
SBB sr Tröø coù löu yù soá thieáu noäi dung thanh ghi A vôùi
noäi dung thanh ghi sr.
SBB M Tröø coù löu yù soá thieáu noäi dung thanh ghi A vôùi
noäi dung oâ nhôù coù ñòa chæ chöùa trong caëp
thanh ghi HL.
SBI data Tröø coù löu yù soá thieáu noäi dung thanh ghi A vôùi
döõ lieäu.
ANA sr AND giöõa noäi dung thanh ghi A vôùi noäi dung thanh
ghi sr.
ANA M AND giöõa noäi dung thanh ghi A vôùi noäi dung oâ
nhôù coù ñòa chæ chöùa trong caëp thanh ghi HL.
ANI data AND giöõa noäi dung thanh ghi A vôùi döõ lieäu.
ORA sr OR giöõa noäi dung thanh ghi A vôùi noäi dung thanh
ghi sr.
ORA M OR giöõa noäi dung thanh ghi A vôùi noäi dung oâ
nhôù coù ñòa chæ chöùa trong caëp thanh ghi HL.
ORI data OR giöõa noäi dung thanh ghi A vôùi döõ lieäu.
XRA sr EXOR giöõa noäi dung thanh ghi A vôùi noäi dung
thanh ghi sr.
XRA M EXOR giöõa noäi dung thanh ghi A vôùi noäi dung oâ
nhôù coù ñòa chæ chöùa trong caëp thanh ghi HL.
XRI data EXOR giöõa noäi dung thanh ghi A vôùi döõ lieäu.
Ñoà aùn Vi maïch Trang 21

INR reg Taêng noäi dung thanh ghi reg.


INR M Taêng noäi dung oâ nhôù coù ñòa chæ chöùa trong
caëp thanh ghi HL.
DCR reg Giaûm noäi dung thanh ghi reg.
DCR M Giaûm noäi dung oâ nhôù coù ñòa chæ chöùa trong
caëp thanh ghi HL.
INX rp Taêng noäi dung caëp thanh ghi rp.
DCX rp Giaûm noäi dung caëp thanh ghi rp.
RRC Ñaåy noäi dung thanh ghi A veà phía phaûi.
RLC Ñaåy noäi dung thanh ghi A veà phía traùi.
RAR Ñaåy noäi dung thanh ghi A veà phía phaûi ngang qua
cy.
RAL Ñaåy noäi dung thanh ghi A veà phía traùi ngang qua
cy.
DAD rp Coäng noäi dung caëp thanh ghi HL vôùi noäi dung
caëp thanh ghi rp.
DAA Ñieàu chænh noäi dung boä tích luõy A.
CMA Nghòch ñaûo noäi dung boä tích luõy A.
STC Ñaët bit cy laø [1].
CMC Nghòch ñaûo bit cy.

3. Nhoùm leänh so saùnh:


CMP sr So saùnh noäi dung thanh ghi A vôùi noäi dung thanh
ghi sr.
CMP M So saùnh noäi dung thanh ghi A vôùi noäi dung oâ
nhôù coù ñòa chæ chöùa trong caëp thanh ghi HL.
CPI data So saùnh noäi dung thanh ghi A vôùi döõ lieäu.

4. Nhoùm leänh nhaûy:


JMP addr Nhaûy ñeán ñòa chæ addr khoâng ñieàu kieän.
Jcondition addr Nhaûy ñeán ñòa chæ addr neáu thoûa ñieàu kieän:
- JNZ Z = 0
- JZ Z = 1
Ñoà aùn Vi maïch Trang 22

- JNC Cy = 0
- JC Cy = 1
- JPO P = 0
- JPE P = 1
- JP S = 0
- JM S = 1
CALL addr Goïi chöông trình con taïi ñòa chæ addr.
Ccondition addr Goïi chöông trình con taïi ñòa chæ addr neáu thoûa
ñieàu kieän:
- CNZ Z = 0
- CZ Z = 1
- CNC Cy = 0
- CC Cy = 1
- CPO P = 0
- CPE P = 1
- CP S = 0
- CM S = 1
RET Trôû veà töø chöông trình con khoâng ñieàu kieän.
Rcondition Trôû veà töø chöông trình con neáu thoûa ñieàu kieän:
- RNZ Z = 0
- RZ Z = 1
- RNC Cy = 0
- RC Cy = 1
- RPO P = 0
- RPE P = 1
- RP S = 0
- RM S = 1
RST c Goïi chöông trình phuïc vuï ngaét soá hieäu c.
PCHL Naïp boä ñeám chöông trình PC töø caëp thanh ghi HL.

5. Nhoùm leänh veà ngaên xeáp:


Ñoà aùn Vi maïch Trang 23

PUSH rp Chuyeån döõ lieäu cuûa caëp thanh ghi rp vaøo ngaên
xeáp.
POP rp Laáy döõ lieäu töø ngaên xeáp chuyeån vaøo caëp
thanh ghi rp.
XTHL Hoaùn chuyeån döõ lieäu giöõa ngaên xeáp vôùi caëp
thanh ghi HL.
SPHL Chuyeån noäi dung caëp thanh ghi HL vaøo thanh ghi
SP.

6. Nhoùm leänh xuaát nhaäp:


IN port Nhaäp döõ lieäu töø coång port vaøo thanh ghi A.
OUT port Xuaát döõ lieäu töø thanh ghi A ra coång port.

7. Nhoùm leänh ñieàu khieån:


NOP Leänh troáng.
HLT Leänh döøng chöông trình cho ñeán khi coù leänh
ngaét hoaëc RESET.
EI Cho pheùp yeâu caàu ngaét.
DI Khoâng cho pheùp yeâu caàu ngaét.

8. Nhoùm leänh ñaëc bieät:


SIM Leänh naøy söû duïng caùc bit trong thanh ghi A ñeå
thöïc hieän caùc coâng vieäc sau:

SO SOE x R 7.5 MSE M M M


D 7.5 6.5 5.5
M 7.5 - M 6.5 - M5.5 = [0]: Cho pheùp yeâu caàu ngaét.
= [1]: Ngaên yeâu caàu ngaét.
MSE = [0]: Caùc bit töø 0 ñeán 2 cuûa thanh ghi A
coù taùc duïng.
= [1]: Caùc bit töø 0 ñeán 2 cuûa thanh ghi A
khoâng taùc duïng.
RST 7.5 = [0]: Khoâng aûnh höôûng.
= [1]: Reset Flip Flop RST 7.5
Ñoà aùn Vi maïch Trang 24

SOE = [0]: Bit thöù 7 cuûa thanh ghi A khoâng göûi


ra ngoõ SOD.
= [1]: Bit thöù 7 cuûa thanh ghi A ñöôïc göûi ra
ngoõ SOD.
SOD : Chöùa döõ lieäu caàn göûi ñeán ngoõ ra
noái tieáp SOD.
RIM Keát quaû cuûa leänh RIM sau khi thöïc hieän ñöôïc
traû laïi trong thanh ghi A cho bieát caùc traïng thaùi
sau:

SID I I I 6.5 IE M M M
7.5 6.5 7.5 6.5 5.5
M 7.5 - M 6.5 - M 5.5 = [0]: Yeâu caàu ngaét bò ngaên.
= [1]: Yeâu caàu ngaét ñöôïc pheùp.
IE = [0]: Vi xöû lyù khoâng chaáp nhaän yeâu caàu
ngaét.
= [1]: Vi xöû lyù chaáp nhaän yeâu caàu ngaét.
I 7.5 -I 6.5 - I 5.5 = [0]: Cho bieát khoâng coù yeâu caàu ngaét.
= [1]: Cho bieát yeâu caàu ngaét ñang chôø.
SID : Chöùa döõ lieäu cuûa ngoõ vaøo noái
tieáp SID.
Ñoà aùn Vi maïch Trang 25

PHAÀN III: Thieát keá Heä Vi xöû lyù 8085.

I. Phöông aùn thieát keá:


Yeâu caàu ñaët ra laø thieát keá heä Vi xöû lyù 8085 coù 40 phím,
hieån thò taùm LED 7 ñoaïn.
- Veà boä nhôù: choïn EPROM 2764 chöùa chöông trình heä thoáng,
SRAM 6264 chöùa döõ lieäu taïm thôøi vaø caùc bieán heä thoáng. Ñoàng
thôøi cuõng thieát keá theâm ñeá caém daønh cho EPROM 2764 môû
roäng khi caàn, khe caém naøy coù theå caém ñöôïc SRAM 6264 vaø coù
theå chuyeån ñoåi chöùc naêng RAM/ROM baèng moät jumper.
- Veà giao tieáp noäi boä: söû duïng moät vi maïch 8255A ñeå queùt
ñeøn vaø queùt phím. Vi maïch naøy laøm vieäc theo kieåu boä nhôù,
moãi port töông öùng vôùi moät vò trí oâ nhôù. Döõ lieäu queùt ñeøn vaø
phím laø taùc ñoäng möùc thaáp neân söû duïng caùc LED hieån thò laø
loaïi Cathode chung.
- Veà giao tieáp vôùi caùc thieát bò ngoaøi: söû duïng hai vi maïch
8255A, lyù do söû duïng tôùi hai vi maïch laø ñeå môû roäng soá coång
giao tieáp khi caàn thieát (leân tôùi 6 coång).
- Veà giaûi ña hôïp: ñeå taùch giöõa döõ lieäu vaø ñòa chæ treân caùc
chaân AD0-AD7 cuûa 8085A coù theå duøng 74LS373 hoaëc 74LS573 laø vi
maïch choát, chöùc naêng cuûa hai loaïi laø nhö nhau. Trong thieát keá
söû duïng 74LS573, 74LS573 coù caùc ñöôøng döõ lieäu vaøo vaø ra naèm
ôû hai beân vi maïch, vì theá vieäc thieát keá maïch in deã daøng hôn.
- Veà giaûi maõ ñòa chæ: söû duïng 74LS138 laø vi maïch giaûi maõ 3
ñöôøng ra 8 ñöôøng. Trong thieát keá söû duïng hai vi maïch 74LS138,
moät cho giao tieáp noäi boä, moät cho giao tieáp vôùi caùc thieát bò
ngoaøi. Ñoàng thôøi cuõng söû duïng theâm moät vi maïch 74LS32 trong
vieäc giaûi maõ ñòa chæ.
- Veà chöông trình heä thoáng: baøn phím coù 40 phím, trong ñoù 10
phím duøng cho caùc phím soá töø 0 ñeán 9, 26 phím duøng cho caùc
phím chöõ caùi töø A ñeán Z, toång coäng laø 36 phím. Coøn laïi 4 phím
duøng laøm caùc phím chöùc naêng: phím +, -, PC, ESCAPE. Chöông trình
Monitor coù nhieäm vuï queùt ñeøn vaø ñoïc phím nhaán, cho pheùp
nhaäp chöông trình vaøo vaø thi haønh chöông trình ñoù, nhaän bieát
phím chöùc naêng vaø thöïc hieän caùc coâng vieäc töông öùng.

II. Phaàn cöùng:


Ñoà aùn Vi maïch Trang 26

1. Khaûo saùt caùc vi maïch ñöôïc söû duïng trong thieát keá:
a. Boä nhôù EPROM 2764:
EPROM 2764 laø boä nhôù chæ ñoïc ñöôïc cheá taïo theo coâng
ngheä NMOS, duøng moät nguoàn ñôn +5V, dung löôïng boä nhôù laø
65536 bit, ñöôïc toå chöùc thaønh 8192x8 bit (8KByte). 2764 laø loaïi
EPROM coù theå xoùa baèng tia cöïc tím vaø coù theå ghi laïi ñöôïc nhieàu
laàn. Coù hai kieåu hoïat ñoäng: bình thöôøng vaø chôø. ÔÛ traïng thaùi
chôø, coâng suaát tieâu thuï laø 132mW so vôùi 525mW khi ôû traïng
thaùi ñoïc döõ lieäu, thôøi gian truy xuaát laø 200ns.

Vpp Vcc
A12 PGM\ A0-A12
N.C
A7
A8
A6
A9 D0-D7
A5
A11
A4
A3
OE\
A10 CE\ 2764
A2
A1
2764 CE\
O7
OE\
A0 O6 VPP
O0 O5
O1 O4
O2 O3

Sô ñoà chaân vaø sô ñoà logic

Mode \ Pin CE\ OE\ PGM\ VPP Output


Read L L H Vcc Dout
Stand-by H x x Vcc Hi-Z
Program L x L Vpp Din
Program L L H Vpp Dout
Verify
Program H x x Vpp Hi-Z
Inhibit
Baûng traïng thaùi

b. Boä nhôù SRAM 6264:


SRAM 6264 laø boä nhôù ñöôïc cheá taïo theo coâng ngheä CMOS,
coù dung löôïng
65536 bit ñöôïc toå chöùc thaønh 8192x8 bit (8KByte), ñieän aùp cung
caáp laø +5V, thôøi gian truy caäp khoaûng 150ns. Ngoõ vaøo/ra döõ lieäu
ñöôïc duøng chung, caùc ngoõ vaøo/ra naøy töông thích TTL. Coâng suaát
tieâu taùn
N.C ôû traïng thaùiV chôø raát thaáp chæ khoaûng 0,1mW so vôùi
A
cc

12 WE\
khi hoaït Añoäng bình thöôøng
7
CE laø 200mW. A -A
2
A6 A8 0 12
A5 A9
A4 A11
A3 OE\ DQ0-
CE1\
A2
A1 6264
A10
CE1\ 6264
A0 DQ7 CE2
DQ6
DQ0
DQ5
OE\
DQ1
DQ2 DQ4 WE\
Ñoà aùn Vi maïch Trang 27

Sô ñoà chaân vaø sô ñoà logic

Mode \ Pin WR\ CE1\ CE2 OE\ Output


x H x x
Not Select Hi-Z
x x L x
Output H L H H Hi-Z
Disable
Read H L H L Dout
Write L L H H Din

Baûng traïng thaùi

c. Vi maïch giao tieáp ngoaïi vi 8255A:


Vi maïch 8255A laø vi maïch giao tieáp ngoaïi vi laäp trình ñöôïc. Noù
ñöôïc duøng ñeå keát noái giao tieáp song song giöõa Vi xöû lyù vaø thieát
bò ñieàu khieån beân ngoaøi.

PA3 PA4
D0-D7 PA0-PA7
PA2 PA5
PA1 PA6
PA0 PA7
RD\ WR\
CS\ RESET
PB0-PB7
GND
A1
D0
RD\
D1
A0 D2 WR\
RESET
8255
PC7 D3
PC6 D4
8255 PC0-PC3
A
PC5 D5
PC4 D6 A0
PC0 A D7
A1
PC1
A1 A0 RD\ WR\ CS\
Vcc Hoaït ñoäng
PC2
PC3 L L L
PB7
H L CS\ PC4-PC7
Port A  Bus döõ lieäu
PB6
PB0 L H L H
PB5 L Port B Bus döõ lieäu
PB1 PB4
H L L H L Port C Bus döõ lieäu
L L HSô ñoà
L chaân
L vaøBus
sô döõ
ñoà lieäu
logic  Port A
L H H L L Bus döõ lieäu  Port B
H L H L L Bus döõ lieäu  Port C
H H H L L Bus döõ lieäu  Töø ñieàu
khieån
x x x x H Bus döõ lieäu ôû traïng
thaùi Hi-Z
H H L H L Caám
Ñoà aùn Vi maïch Trang 28

Baûng traïng thaùi

Cô cheá hoaït ñoäng cuûa 8255A:


Khi chaân RESET ôû möùc 1, 8255A seõ ñöôïc khôûi ñoäng, noù seõ
thaû noåi taát caû 24 chaân lieân quan tôùi caùc cöûa vaøo/ra. Traïng
thaùi naøy keùo daøi tôùi khi chöông trình öùng duïng vieát töø ñieàu
khieån vaøo thanh ghi ñieàu khieån ñeå xaùc ñònh cheá ñoä laøm vieäc
cuûa 8255A. Ba cheá ñoä hoaït ñoäng cô baûn cuûa 8255A laø:
- Cheá ñoä 0: vaøo/ra thoâng thöôøng.
- Cheá ñoä 1: choát vaøo/ra.
- Cheá ñoä
D7D2:Dbus
D Dhai
D chieàu.
DD
6 5 4 3 2 1 0

Töø ñieàu khieån duøng ñeå ñònh nghóa cheá ñoä laøm vieäc cho
8255A. Nhoùm
BPort C
(thaáp)1 =
nhaäp0 =
Caáu truùc töø ñieàu khieån cuûa 8255A:
xuaátPort B1
= nhaäp0 =
xuaátChoïn
cheá ñoä0 =
cheá ñoä 01
= cheá ñoä
1
Nhoùm
APort C
(cao)1 =
nhaäp0 =
xuaátPort A1
= nhaäp0 =
xuaátChoïn
cheá ñoä00
= cheá ñoä
001 = cheá
ñoä 11x =
cheá ñoä 2
Côø laäp
cheá ñoä1 =
tích cöïc
Ñoà aùn Vi maïch Trang 29

Cheá ñoä 0:
Töø ñieàu khieån

1 0 0 D D 0 D D0
4 3 1

Cheá ñoä 0 xaùc laäp hai port 8 bit (A vaø B) vaø hai port 4 bit (nöûa
cao vaø nöûa thaáp cuûa port C). Baát kyø port naøo cuõng coù theå
nhaäp hoaëc xuaát döõ lieäu tuøy theo caùc bit D4, D3, D1 vaø D0. Döõ
lieäu ñöôïc choát khi nhaäp (coøn khi xuaát thì khoâng).
Cheá ñoä 1:
Töø ñieàu khieån

1 0 1 D D 1 D D0
4 3 1

Cheá ñoä naøy caû hai port A vaø B laøm vieäc ôû cheá ñoä
xuaát/nhaäp coù choát. Port A vaø B hoaït ñoäng ñoäc laäp nhau, moãi
port coù 4 bit ñieàu khieån/döõ lieäu ñöôïc hình thaønh töø 4 bit cao vaø 4
bit thaáp cuûa port C.
Nhoùm A ñöôïc caáu hình ôû cheá ñoä 1:
* Port A laø port nhaäp döõ lieäu:
Töø ñieàu khieån
1 0 1 1 D x x x PA0-PA7
3
INTE
A PC4 STBA\

PC5 IBFA
PC6,7
1 = nhaäp
0 = xuaát PC3 INTRA

RD\
PC6,7 I/O
Ñoà aùn Vi maïch Trang 30

- STBA\ (PC4): möùc 0 taïi ngoõ vaøo naøy seõ laøm cho döõ lieäu
ñöôïc choát vaøo port A. Thieát bò ngoaïi vi duøng tín hieäu naøy ñeå baùo
cho 8255A bieát döõ lieäu vaøo ñaõ saün saøng.
- IBFA (PC5): ngoõ ra naøy leân möùc 1 ñeå baùo raèng boä ñeäm ñaõ
ñaày. Khi chaân naøy ôû möùc 0 thì thieát bò ngoaïi vi coù theå gôûi döõ
lieäu môùi tôùi 8255A.
- INTRA (PC3): tín hieäu ôû ngoõ ra naøy ñöôïc duøng nhö moät yeâu
caàu ngaét. Ngoõ ra naøy leân möùc 1 khi STBA ôû möùc 0, IBFA vaø côø
hieäu INTRA ôû möùc 1. Tín hieäu INTEA töï ñoäng ñöôïc xoùa khi CPU
nhaäp töø 8255A. Côø hieäu cho pheùp ngaét (INTE) ñöôïc ñieàu khieån
baèng caùch ñaët hoaëc xoùa bit PC4.
- Caùc bit PC6 vaø PC7 laø caùc bit xuaát nhaäp bình thöôøng phuï
thuoäc vaøo bit D3 trong töø ñieàu khieån.
* Port A laø port xuaát döõ lieäu:
Töø ñieàu khieån

1 0 1 0 D x x x PA0-PA7
3
INTE
A PC6 ACKA\

PC7 OBFA\
PC4, 5
1 = nhaäp
0 = xuaát PC3 INTRA

WR\
PC4, 5 I/O

- OBFA\ (PC7): ngoõ ra naøy seõ xuoáng möùc 0 khi boä ñeäm xuaát
ñaày ñeå baùo cho thieát bò ngoaïi vi bieát port A ñang xuaát ra döõ lieäu
môùi.
- ACKA\ (PC6): ngoõ vaøo naøy ñöôïc thieát bò ngoaïi vi ñaët möùc 0
ñeå baùo cho 8255A bieát döõ lieäu port A ñöôïc chaáp nhaän.
- INTRA (PC3): ngoõ ra naøy coù cuøng muïc ñích nhö trong tröôøng
hôïp nhaäp. Côø cho pheùp ngaét ñöôïc ñieàu khieån baèng caùch ñaët
hoaëc xoùa bit PC6.
Ñoà aùn Vi maïch Trang 31

- Caùc bit PC4 vaø PC5 laø caùc bit xuaát nhaäp bình thöôøng phuï
thuoäc vaøo bit D3 trong töø ñieàu khieån.

Nhoùm B ñöôïc caáu hình ôû cheá ñoä 1:


* Port B laø port nhaäp döõ lieäu:
Töø ñieàu khieån

1 x x x x 1 1 x PB0-PB7

INTE
B PC2 STBB\

PC1 IBFB

PC0 INTRB

RD\
PC4,5 I/O

- STBB\ (PC2), IBFB (PC1) vaø INTRB (PC0) coù chöùc naêng töông töï nhö
trong tröôøng hôïp port A nhaäp. Côø hieäu cho pheùp ngaét (INTE) ñöôïc
ñieàu khieån baèng caùch ñaët hoaëc xoùa bit PC2.

* Port B laø port xuaát döõ lieäu:


Töø ñieàu khieån

1 x x x x 1 0 x
PB0-PB7

INTE
B PC2 ACKB\

PC1 OBFB\

PC0 INTRB

WR\
PC4, 5 I/O
PC3 INTRA\

Cheá ñoä 2:
PC
Cheá ñoä naøy laø cheá ñoä xuaát/nhaäp hai chieàu 7
ñöôïc ACK \
choát.
A

Trong cheá ñoä naøy, port A ñöôïc duøng cho xuaát vaø nhaäp,
PC6 5 bit
OBFcuûa
A
\
INTE
port C ñöôïc duøng ñeå chæ traïng thaùi vaø ñieàu 1khieån port A.
PA0-PA7
Töø ñieàu khieån
PC4 STBA\
1 1 x x x D D D0
RD\ PC5 IBFA
2 1
INTE
2
WR\
PC2, 1,0 I/O
Ñoà aùn Vi maïch Trang 32

Cheá ñoä
nhoùm B
0 = cheá ñoä 0
1 = Port
cheá B
ñoä 1
1 = nhaäp
0 = xuaát
PC0-2
1 = nhaäp
0 = xuaát

- OBFA\ (PC6): boä ñeäm ngoõ ra ñaõ ñaày.


- ACKA\ (PC7): tín hieäu baùo chaáp nhaän döõ lieäu.
- IBFA (PC5): boä ñeäm ngoõ vaøo ñaày.
- STBA\ (PC4): döõ lieäu ñang saün saøng ôû ngoõ vaøo.
- INTRA (PC3): tín hieäu yeâu caàu ngaét, ñöôïc söû duïng cho
xuaát/nhaäp.
Khi nhoùm A ôû cheá ñoä 2 thì nhoùm B chæ coù theå ôû cheá ñoä 0
hoaëc 1. Tuy nhieân, neáu nhoùm B ôû cheá ñoä 0 thì chæ coù 3 bit PC 0-
PC2 ñöôïc söû duïng cho xuaát/nhaäp vì nhoùm A ñaõ möôïn bit PC 3 ñeå
söû duïng nhö moät yeâu caàu ngaét. Thoâng thöôøng, neáu nhoùm A ôû
cheá ñoä 2 thì caùc bit PC0-PC2 seõ ñöôïc noái vôùi caùc chaân traïng thaùi
vaø ñieàu khieån cuûa thieát bò noái vôùi port A. Port B cuõng coù theå
ñöôïc duøng cho muïc ñích naøy.
Vieäc ñaët/xoùa bit ñoái vôùi port C: ta coù khaû naêng laäp vaø xoùa
töøng bit. Neáu bit 7 cuûa töø ñieàu khieån laø 0, 8255A seõ hieåu laø
leänh laäp/xoùa bit port C coù nghóa, cho pheùp laäp/xoùa baát kyø bit
naøo cuûa port C. Khaû naêng laäp/xoùa töøng bit rieâng leû laø raát
thuaän tieän cho öùng duïng khi caùc bit rieâng reõ ñöôïc duøng ñeå ñieàu
khieån taùch bieät caùc chöùc naêng beân ngoaøi.
Töø ñieàu khieån ñaët/xoùa bit

D x x x D D D D0
7 3 2 1
Ñaët/xoùa bit
1 = ñaët (set)
0Choïn
= xoùabit
0 1 2(reset)
3 4 5 6 7
0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1
Ñoà aùn Vi maïch Trang 33

Côø
ñaët/xoùa bit
0 = tích cöïc

d. Vi maïch choát 74573:

OE\ Vcc
D0 Q0 D0-D7
D1 Q1 7 Q0-Q7
D2
D3 7 Q2
Q3 457
D4 457 Q4
OC\ 3
D5 Q5
D6 3 Q6 E
D7 Q7
GND E
Sô ñoà chaân vaø sô ñoà logic

OUTPUT ENABLE D OUTPUT


CONTROL G
L H H H
L H L L
L L x Q0
H x x HI-Z

Baûng traïng thaùi


e. Vi maïch giaûi maõ 3 ñöôøng  8 ñöôøng 74138:

A
B
A Vcc C
B Y0 7
C Y0 ...Y7
G2A 7 Y1
Y2 G
413
G2B
G1
413 Y3 2A\ 8
Y4 G2B
Y7 8 Y5
GND
Sô ñoà chaân vaø sô ñoà logic
Y6
INPUTS OUTPUTS
ENABLE SELECT
G1 G2 C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
x H x x x H H H H H H H H
L x x x x H H H H H H H H
H L L L L L H H H H H H H
H L L L H H L H H H H H H
H L L H L H H L H H H H H
H L L H H H H H L H H H H
H L H L L H H H H L H H H
H L H L H H H H H H L H H
H L H H L H H H H H H L H
H L H H H H H H H H H H L
Ñoà aùn Vi maïch Trang 34

G2 = G2A + G2B
Baûng traïng thaùi

f. Vi maïch 7432:

A
Vcc Y
1A
1B 4B
B
1Y 4A
2A
2B
74 4Y
3B
2Y
GND
32 3A
3Y

Sô ñoà chaân vaø sô ñoà logic


A B Y
L L L
L H H
H L H
H H H

Baûng traïng thaùi

2. Keát noái:
a. Boä nhôù:
Vi xöû lyù Caùc
8085Añöôøng ñòanaêng
coù khaû chæ truy HEX
xuaát tôùi 64KB boä nhôù. Tuy
A15 A 14 A13 A12-A0
nhieân, trong thieát keá chæ söû duïng 16K boä nhôù: 8K cho ROM vaø 8K
0 0 0 0 0000H
cho RAM, ñoàng thôøi cuõng daønh moät vò trí 8K cho ROM/RAM môû
0 0 0 1 1FFFH
roäng. Caùc boä0 giao0tieáp1noäi boä
0 (baøn
2000 phím,
H
hieån thò) cuõng ñöôïc
ñònh ñòa chæ nhö 0 laø0 vuøng
1 nhôù.1 Baûn3FFFñoàH boä nhôù ñöôïc chia thaønh
0
4 vuøng nhôù khaùc 1nhau.0 Söû duïng
0 vi4000
maïch
H 74LS138 coù theå choïn
0 1 0 1 5FFF
ñeå laøm vieäc vôùi töøng vuøng nhôù khaùcHnhau tuøy thuoäc vaøo caùc
0 1 1 0 6000H
ñòa chæ cung caáp cho caùc ngoõ vaøo cuûa boä giaûi maõ.
0 1 1 1 7FFFH
1 0 0 0 8000H
1 0 0 1 9FFFH
1 0 1 0 A000H
1 0 1 1 BFFFH
1 1 0 0 C000H
1 1 0 1 DFFFH
1 1 1 0 E000H
1 1 1 1 FFFFH
Ñoà aùn Vi maïch Trang 35

Trong thieát keá söû duïng ñòa chæ töø 0000H -1FFFH cho ROM heä
thoáng, ñòa chæ töø 4000H -5FFFH cho RAM, ñòa chæ töø 2000H - 3FFFH cho
RAM/ROM môû roäng, ñòa chæ töø 8000H - 8003H cho giao tieáp baøn phím
vaø hieån thò.

A13 A Y0 Tôùi CE\ cuûa EPROM


A14 B Y1 Tôùi CE\ cuûa ROM/RAM môû
C roäng
A15 Y2
Tôùi CS\ cuûa RAM
Vcc Y3
CPU 74138
G1
Y4 Tôùi CS\ cuûa 8255A giao
Y5
IO/M\ G2A
Y6
G2B
Y7
Sô ñoà keát noái boä nhôù
b. Baøn phím:
Baøn phím ñöôïc thieát keá laø loaïi baøn phím ma traän, söû duïng
phaàn meàm ñeå queùt phím roài giaûi maõ phím. Ma traän phím bao
goàm 8 coät vaø 5 haøng. Trong thieát keá söû duïng vi maïch 8255A ñeå
giao tieáp baøn phím, trong ñoù PB0-PB7 laø caùc ngoõ ra döõ lieäu duøng
ñeå queùt coät, PA0-PA4 laø caùc ngoõ vaøo döõ lieäu ñoïc haøng. 8255A
hoaït ñoäng ôû cheá ñoä 0 vôùi port A laø port ñoïc, port B laø port xuaát.
W X Y Z ES PC - +

O P Q R S T U V

G H I J K L M N

8 9 A B C D E F

0 1 2 3 4 5 6 7
Ñoà aùn Vi maïch Trang 36

Sô ñoà baøn phím

PB7
D7...D0 PB6
PB5
A0
PB4
A1
PB3
PB2

8255A
PB 1

PB0 Vcc

RD\
WR\
PA4

CS\ PA3
PA2
PA1
PA0
Sô ñoà keát noái baøn phím
Nguyeân lyù hoaït ñoäng:
Ñeå kieåm tra xem coù phím naøo ñöôïc nhaán hay khoâng, CPU seõ
gôûi döõ lieäu 00H ra
port B roài nhaän döõ lieäu töø port A, neáu khoâng coù phím naøo ñöôïc
nhaán thì keát quaû laø 1FH, neáu coù baát kyø phím naøo ñöôïc nhaán thì
moät trong 5 ñöôøng ñoïc vaøo cuûa port A seõ xuoáng möùc 0 vì theá
döõ lieäu ñoïc vaøo seõ khaùc 1FH, luùc naøy chæ bieát ñöôïc vò trí haøng
cuûa phím. Ñeå xaùc ñònh vò trí coät cuûa phím thì CPU phaûi laàn löôït
xuaát döõ lieäu ra töøng coät. Döõ lieäu xuaát ra port B ôû laàn queùt
ñaàu tieân laø 0EFH, coù nghóa laø chæ coät ñaàu tieân ñöôïc xuoáng
möùc 0 trong khi caùc coät khaùc ôû möùc 1. Luùc naøy CPU seõ ñoïc döõ
lieäu vaøo töø port A ñeå so saùnh vôùi 1FH. Neáu döõ lieäu ñoïc vaøo
baèng vôùi 1FH thì coù nghóa laø phím ñöôïc aán khoâng naèm ôû coät
thöù nhaát, CPU tieáp tuïc xuaát döõ lieäu ra port B ñeå queùt coät thöù
Ñoà aùn Vi maïch Trang 37

hai, giaù trò cuûa döõ lieäu luùc naøy laø 0DFH öùng vôùi tröôøng hôïp
coät thöù hai ñöôïc xuoáng möùc 0 trong khi caùc coät khaùc ôû möùc 1.
CPU ñoïc döõ lieäu töø port A ñeå kieåm tra xem phím coù naèm treân
coät naøy khoâng, neáu vaãn chöa phaùt hieän ñöôïc thì CPU tieáp tuïc
queùt coät keá tieáp cho tôùi khi phaùt hieän phím ñöôïc nhaán. Khi phaùt
hieän ñöôïc moät coät naøo ñoù chöùa phím ñöôïc nhaán thì vò trí naøy
chính laø maõ coät cuûa phím. Keát hôïp giöõa maõ haøng vaø maõ coät,
CPU seõ xaùc ñònh ñöôïc chính xaùc vò trí cuûa phím nhaán.

c. Hieån thò:
Boä hieån thò duøng taùm LED 7 ñoaïn, moãi LED duøng ñeå hieån
thò moät chöõ soá HEX, chöõ soá ñöôïc taïo thaønh bôûi caùc ñoaïn ñoäc
laäp ñöôïc kyù hieäu laø a, b, c, d, e, f, vaø g. Trong thieát keá söû duïng
caùc LED Cathod chung neân ñeå hieån thò ñöôïc thì chaân Cathode
chung phaûi ñöôïc noái xuoáng möùc thaáp, trong khi caùc ñoaïn phaûi
ñöôïc cung caáp döõ lieäu phuø hôïp ôû möùc cao. 8255A söû duïng port B
laøm port xuaát döõ lieäu queùt ñeå choïn ñeøn ñöôïc hieån thò, port C laø
port xuaát döõ lieäu hieån thò.

LED 7 LED 0
PC0 a a
PC1
b b
c c

...
PC2
d d
PC3 e e
PC4 f f
PC5 g g
dp dp
PC6
K K
PC7

8255A PB 7 T8 T1
. .
. .
. .
PB0

Sô ñoà keát noái boä hieån thò

Nguyeân lyù hoaït ñoäng:


Boä hieån thò theo phöông phaùp queùt cho pheùp caùc LED trong
boä hieån thò söû duïng chung port xuaát döõ lieäu. Döõ lieäu chöùa trong
caùc oâ nhôù ôû daïng nhò phaân, do ñoù tröôùc khi ñöa vaøo caùc LED
Ñoà aùn Vi maïch Trang 38

chuùng phaûi ñöôïc chuyeån sang maõ 7 ñoaïn, vieäc naøy ñöôïc thöïc
hieän bôûi chöông trình ñoåi maõ ñeøn.

0 1 2 3 4 5 6 7 8 9 A B C D E F
3F 06 5 4F 66 6 7 07 7F 67 77 7 39 5E 79 71
B D D C
Maõ 7 ñoaïn cuûa caùc soá HEX
Vieäc queùt ñeøn ñöôïc thöïc hieän nhö sau: CPU xuaát döõ lieäu
cuûa ñeøn thöù nhaát ra port C, keá ñoù CPU xuaát döõ lieäu queùt ra port
B ñeå choïn ñeøn thöù nhaát, luùc ñoù caùc ñeøn khaùc ñeàu taét do
khoâng ñöôïc choïn. Sau moät khoaûng thôøi gian trì hoaõn ñeå hieån thò,
döõ lieäu 00H ñöôïc ñöa ra port C ñeå taét ñeøn. Döõ lieäu cuûa ñeøn thöù
hai tieáp tuïc ñöôïc ñöa ra port C vaø döõ lieäu choïn ñeøn thöù hai ñöôïc
ñöa ra port B ñeå cho pheùp ñeøn thöù hai hieån thò ... Sau khi queùt
ñeán ñeøn cuoái cuøng thì quaù trình laïi ñöôïc laëp lai töø ñeøn thöù
nhaát. Toác ñoä queùt phaûi ñuû lôùn ñeå taát caùc caùc soá xuaát hieän
treân caùc ñeøn ñöôïc caûm nhaän ñoàng thôøi.

d. Giao tieáp ngoaïi vi:


CPU giao tieáp vôùi theá giôùi beân ngoaøi qua caùc thieát bò giao
tieáp ngoaïi vi. Trong thieát keá söû duïng 2 vi maïch 8255A neân coù
ñöôïc 6 port giao tieáp. Caùc 8255A naøy hoaït ñoäng theo cheá ñoä I/O.
Vi xöû lyù 8085A coù theå ñònh soá ñòa chæ I/O toái ña laø 256 port, caùc
ñòa chæ ñöôïc choïn cho caùc 8255A laø:
Ñòa chæ Port
(Hexa)
10H Port A cuûa 8255A-I
11H Port B cuûa 8255A-I
12H Port C cuûa 8255A-I
13H Port ñieàu khieån cuûa
8255A-I
20H Port A cuûa 8255A-II
21H Port B cuûa 8255A-II
22H Port C cuûa 8255A-II
23H Port ñieàu khieån cuûa
8255A-II
Söû duïng vi maïch 74LS138 keát hôïp vôùi moät soá coång OR ñeå
giaûi maõ ñòa chæ cho caùc vi maïch giao tieáp 8255A.
Caùc ñöôøng ñòa chæ HEXA
A7 A6 A5 A4 A3 A2 A1 A0
0 0 0 1 0 0 x x 10H-13H
0 0 1 0 0 0 x x 20H-23H

Ñòa chæ hoaït ñoäng cuûa caùc vi maïch 8255A.


Ñoà aùn Vi maïch Trang 39

Duøng 74LS138 vôùi caùc ngoõ vaøo A, B vaø C laø caùc ñöôøng ñòa
chæ A4, A5, vaø A6. Caùc ñöôøng ñòa chæ A0, A1 vaøo tröïc tieáp caùc
8255A. Nhö vaäy, neáu khoâng söû duïng caùc ñöôøng ñòa chæ A2, A3 vaø
A7 thì caùc ñòa chæ 14H, 18H, 90H vaø ñòa chæ 10H ñöôïc xem laø nhö
nhau, töông töï nhö vaäy cho caùc ñòa chæ khaùc.
Ñeå ñònh ñòa chæ chính xaùc tuyeät ñoái thì phaûi söû duïng caùc
coång OR vaø caùc ñöôøng ñòa chæ A2, A3 vaø A7.

IO/M\ G1 Y7
G2A\ Y6
G2B\ Y5
Y4 Tôùi
CS\
A 74138 3
Y
A4 8255A-II
B Y2
A5
C Y1
A6
Y0
Tôùi
A2 A2 + A3 CS\
A2 + A3 +
A3 8255A-I
A7

A7

Sô ñoà keát noái giaûi maõ ñòa chæ cho giao tieáp ngoaïi vi

e. Jumper RAM/ROM:
Chaân 27 laø Vpp ñoái vôùi EPROM vaø laø WR\ ñoái vôùi RAM, ta coù
theå thay ñoåi chöùc naêng RAM/ROM baèng caùch ñaët moät jumper noái
chaân naøy leân Vcc neáu laø EPROM vaø noái vôùi WR\ cuûa CPU neáu laø
RAM. Chaân 1 laø NC neáu laø EPROM vaø laø chaân CS1 neáu laø RAM, vì
theá chaân naøy luoân ñöôïc noái leân Vcc.

Vcc
6264/
2764
1
27
WR\
RAM/ROM
jumper Sô ñoà keát noái
Ñoà aùn Vi maïch Trang 40

III. Phaàn meàm:


1. Chöông trình queùt phím:
Chöông trình seõ queùt baøn phím ñeå kieåm tra xem coù phím naøo
ñöôïc aán hay khoâng. Neáu phaùt hieän coù phím ñöôïc aán thì chöông
trình seõ nhaän ra phím ñoù baèng caùch xaùc ñònh maõ haøng vaø maõ
coät cuûa phím ñoù roài tra baûng ñeå laáy maõ cuûa phím.

2. Chöông trình queùt ñeøn:


Döõ lieäu caàn hieån thò ñöôïc chöùa trong boä nhôù döôùi daïng nhò
phaân. Ñeå hieån thò ñöôïc treân LED 7 ñoaïn thì caùc döõ lieäu naøy
phaûi ñöôïc ñoåi sang maõ 7 ñoaïn, chöông trình seõ giuùp CPU thöïc
hieän coâng vieäc naøy ñoàng thôøi cuõng coøn thöïc hieän chöùc naêng
queùt ñeøn ñeå hieån thò döõ lieäu laàn löôït treân töøng ñeøn vì theá
maïch hieån thò ñöôïc ñôn giaûn.
3. Chöông trình minh hoïa:

; CHUONG TRINH LAY MA PHIM AN


GET:
LDA (KEYIN)
ANI 1Fh
CPI 1Fh
RZ ; khong co phim an
MVI B, 00h
LPROW:
RRC
JNC ROWFD ; co phim duoc an
INR B ; hang ke tiep
JMP LPROW
ROWFD:
PUSH B ; luu vi tri hang
MVI B, 00h
MVI A, 0FEh ; bat dau tu cot 0
LPCOL:
MOV D, A
STA (DRIVE)
LDA (KEYIN)
ANI 1Fh
CPI 1Fh
JNZ COLFD
MOV A, D
RLC
RNC ; du 8 cot
INR B
JMP LPCOL
COLFD: ; B = vi tri cot
POP AF ; lay lai vi tri hang
Ñoà aùn Vi maïch Trang 41
STC
CMC ; cy = 0
RAL
RAL
RAL ; hang = hang * 8
ADD B ; ma phim = hang*8 +cot
PUSH AF
LPFD:
CALL DLDIS1 ; tri hoan co hien thi
MVI A, 00h
STA (DRIVE)
LDA (KEYIN)
ANI 1Fh
CPI 1Fh
JNZ LPFD ; doi nha phim
CALL DLDIS ; tri hoan co hien thi
POP AF
LXI H, KEYTBL ; lay bang tra ma phim
CALL ADDAX
MOV A, M ; tra ma phim
STA (KEY) ; luu ma phim
MVI A, 01h
STA (KEYFLG) ; bao co phim duoc an
RET

; BANG TRA MA PHIM


KEYTBL:
DEFB 00h ; 0
DEFB 01h ; 1
DEFB 02h ; 2
DEFB 03h ; 3
DEFB 04h ; 4
DEFB 05h ; 5
DEFB 06h ; 6
DEFB 07h ; 7
DEFB 08h ; 8
DEFB 09h ; 9
DEFB 0Ah ; A
DEFB 0Bh ; B
DEFB 0Ch ; C
DEFB 0Dh ; D
DEFB 0Eh ; E
DEFB 0Fh ; F
DEFB 10h ; G
DEFB 11h ; H
DEFB 12h ; I
DEFB 13h ; J
DEFB 14h ; K
DEFB 15h ; L
DEFB 16h ; M
DEFB 17h ; N
DEFB 18h ; O
DEFB 19h ; P
Ñoà aùn Vi maïch Trang 42
DEFB 1Ah ; Q
DEFB 1Bh ; R
DEFB 1Ch ; S
DEFB 1Dh ; T
DEFB 1Eh ; U
DEFB 1Fh ; V
DEFB 20h ; W
DEFB 21h ; X
DEFB 22h ; Y
DEFB 23h ; Z
; phim chuc nang
DEFB 80h ; ESC
DEFB 81h ; PC
DEFB 82h ; '-'
DEFB 83h ; '+'

; CHUONG TRINH HIEN THI DU LIEU RA LED 7 DOAN


PUT:
MVI A, 0FEh ; tu den so 0
LHLD (DISPTR) ; con tro den vung dem hien thi
MUX:
PUSH AF
MOV A, M
STA (SEGDRV)
POP AF
STA (DRIVE)
PUSH AF
PUSH H
CALL DLPUT ; tri hoan de nhin thay
MVI A, 00h
STA (SEGDRV)
STA (DRIVE)
LDA (KEYIN)
ANI 1Fh
CPI 1Fh
JZ LP002 ; khong co phim an
CALL GET ; doc ma phim
LP002:
LXI H, LP1
PUSH H
LHLD (MNPTR) ; thi hanh chuong trinh co dia chi
PCHL ; duoc MNPTR chi den
LP1:
POP H
POP AF
RLC
JNC PUT ; het 8 den, bat dau lai tu den 0
INX H
JMP MUX ; den ke tiep

; GIAI MA SO HEX RA LED 7 DOAN


DISCOD:
PUSH B
Ñoà aùn Vi maïch Trang 43
PUSH D
PUSH H
MVI B, 04h
LXI H, HEXBUF ; vung dem hien thi
LP01:
MOV A, M
ANI 0F0h
RRC
RRC
RRC
RRC
MOV D, A
MOV A, M
ANI 0Fh
MOV E, A
PUSH D
INX H
DCR B
JNZ LP01
LXI H, DISBUF + 7
MVI B, 04h
LP02:
POP D
MOV E, D
CALL SUBDIS
DCX H
CALL SUBDIS
DCX H
DCR B
JNZ LP02
POP H
POP D
POP B
RET

; Tra ma LED
SUBDIS:
MOV A, E
PUSH H
LXI H, DISTBL ; lay bang tra ma LED
CALL ADDAX
MOV A, M
POP H
MOV M, A
RET

; BANG TRA MA LED 7 DOAN


DISTBL:
DEFB 3Fh ; 0
DEFB 06h ; 1
DEFB 5Bh ; 2
DEFB 4Fh ; 3
DEFB 66h ; 4
Ñoà aùn Vi maïch Trang 44
DEFB 6Dh ; 5
DEFB 7Dh ; 6
DEFB 07h ; 7
DEFB 7Fh ; 8
DEFB 6Fh ; 9
DEFB 77h ; A
DEFB 7Ch ; B
DEFB 39h ; C
DEFB 5Eh ; D
DEFB 79h ; E
DEFB 71h ; F

; CHUONG TRINH CONG A VAO HL


ADDAX:
PUSH B
MVI B, 00h
MOV C, A
DAD B
POP B
RET

; CHUONG TRINH DOC PHIM


RDKEY:
MVI A, 00h
STA (KEYFLG)
LDA (KEY)
RET

; CAC CHUONG TRINH DELAY


DLKP:
PUSH H
LXI H, 6000h
JMP LPDL
DLPUT:
PUSH H
LXI H, 0080h
JMP LPDL
DLAYHL:
PUSH H
LPDL:
DCX H
MOV A, H
CPI 00h
JNZ LPDL
MOV A, L
CPI 00h
JNZ LPDL
POP H
RET

; CHUONG TRINH DELAY VAN HIEN THI


DLDIS:
PUSH AF
Ñoà aùn Vi maïch Trang 45
PUSH B
MVI B, 08h
LAB1:
CALL DLDIS1
DCR B
JNZ LAB1
POP B
POP AF
RET

DLDIS1:
MVI A, 0FEh
STA (DRIVE)
LDA (DISBUF)
STA (SEGDRV)
CALL DLPUT
MVI A, 00h
STA (SEGDRV)
MVI A, 0FDh
STA (DRIVE)
LDA (DISBUF + 1)
STA (SEGDRV)
CALL DLPUT
MVI A, 00h
STA (SEGDRV)
MVI A, 0FBh
STA (DRIVE)
LDA (DISBUF + 2)
STA (SEGDRV)
CALL DLPUT
MVI A, 00h
STA (SEGDRV)
MVI A, 0F7h
STA (DRIVE)
LDA (DISBUF + 3)
STA (SEGDRV)
CALL DLPUT
MVI A, 00h
STA (SEGDRV)
MVI A, 0EFh
STA (DRIVE)
LDA (DISBUF + 4)
STA (SEGDRV)
CALL DLPUT
MVI A, 00h
STA (SEGDRV)
MVI A, 0DFh
STA (DRIVE)
LDA (DISBUF + 5)
STA (SEGDRV)
CALL DLPUT
MVI A, 00h
STA (SEGDRV)
Ñoà aùn Vi maïch Trang 46
MVI A, 0BFh
STA (DRIVE)
LDA (DISBUF + 6)
STA (SEGDRV)
CALL DLPUT
MVI A, 00h
STA (SEGDRV)
MVI A, 7Fh
STA (DRIVE)
LDA (DISBUF + 7)
STA (SEGDRV)
CALL DLPUT
RET

; CAC NHAN SU DUNG


MNPTR EQU 5F20h
DISPTR EQU 5F30h ; con tro den vung dem hien thi
DISBUF EQU 5F40h ; vung dem hien thi
HEXBUF EQU 5F48h ; vung dem so HEXA
KEY EQU 5F70h ; chua ma phim
KEYFLG EQU 5F80h ; =1 neu co phim nhan

KEYIN EQU 8000h


DRIVE EQU 8001h
SEGDRV EQU 8002h
SYSIO EQU 8003h

You might also like