Professional Documents
Culture Documents
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
bò
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ù
Control Logic
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ù.
Instructio ALU
n
Decoder OUT
Ñoà aùn Vi maïch Trang 7
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.
Sô ñoà chaân
Ñoà aùn Vi maïch Trang 12
T1 T2 T3 T1 T2 T3
xung
clock
A15-A8 Address A15-A8 Address A15-A8
ALE
RD\
WR\
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
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.
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.
(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
7 1 1 1 1 1 1 1 0 0 3 8
1
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.
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
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 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û.
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
- 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.
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.
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
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
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
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
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.
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.
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
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
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
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
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ò.
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
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
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.
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
; 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
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