You are on page 1of 3

CHÆÅNG 6

VAÌO RA DÆÎ LIÃÛU BÀÒNG CAÏCH THÀM DOÌ

1. Giåïi thiãûu chung vãö caïc phæång phaïp âiãöu kiãøn vaìo/ra dæî liãûu
Sau khi âaî trçnh baìy vãö caïc maûch thæåìng duìng cho viãûc phäúi gheïp
CPU våïi thiãút ngoaûi vi ta seî tiãún haình nghiãn cæïu caïc phæång thæïc âiãöu
khiãøn viãûc trao âäøi dæî liãûu. Caïc maûch phäúi gheïp vaìo / ra âaî trçnh baìy
træåïc âáy coï thãø âæåüc æïng duûng âãø phuûc vuû cho muûch âêch naìy.
Noïi chung ngæåìi ta phán biãût ra 3 phæång phaïp âiãöu khiãøn vaìo/ra
dæî liãûu:
 vaìo/ra dæî liãûu âiãöu khiãøn bàòng caïch thàm doì traûng thaïi sàôn
saìng cuía thiãút bë ngoaûi vi.
 vaìo/ra dæî liãûu âiãöu khiãøn bàòng caïch ngàõt bäü vi xæí lyï.
 vaìo/ra dæî liãûu âiãöu khiãøn bàòng pháön cæïng phuû âãø thám nháûp
træûc tiãúp vaìo bäü nhåï.
Mäùi phæång phaïp âiãöu khiãøn vaìo/ra dæî liãûu noïi trãn coï nhæîng
âàûc âiãøm khaïc nhau vaì seî âæåüc æïng duûng trong caïc hoaìn caính khaïc
nhau. Mäüt trong nhæîng caïch âiãöu khiãøn âån giaín nháút maì chuïng ta xem
xeït trong chæång naìy laì phæång phaïp thàm doì (polling) traûng thaïi sàôn saìng
laìm viãûc cuía thiãút bë ngoaûi vi træåïc khi thæûc hiãûn vaìo/ra dæî liãûu. Caïc
phæång phaïp âiãöu khiãøn vaìo ra dæî liãûu khaïc seî âæåüc giåïi thiãûu trong
caïc chæång sau.
2. Vaìo/ra dæî liãûu bàòng phæång phaïp thàm doì.
Váún âãö âiãöu khiãøn vaìo/ra dæî liãûu seî tråí thaình ráút âån giaín nãúu
thiãút bë ngoaûi vç luïc naìo cuîng sàôn saìng chåì âãø laìm viãûc våïi CPU. Vê
duû, bäü pháûn do nhiãût âäü säú (nhæ laì mäüt thiãút bë vaìo) làõp sàôn trong
mäüt hãû thäúng âiãöu khiãøn luïc naìo cuîng coï thãø cung cáúp säú âo vãö
nhiãût âäü cuía âäúi tæåüng cáön âiãöu chènh, coìn mäüt bäü âeìn LED 7 neït
(nhæ laì mäüt thiãút bë ra) duìng âãø chè thë mäüt giaï trë naìo âoï cuía mäüt âaûi
læåüng váût lyï nháút âënh trong hãû thäúng noïi trãn thç luïc naìo cuîng coï thãø
biãøu hiãûn thäng tin âoï. Nhæ váûy khi CPU muäún coï thäng tin vãö nhiãût âäü
cuía hãû thäúng thç noï chè viãûc âoüc cäøng phäúi gheïp våïi bäü âo nhiãût âäü,
vaì nãúu CPU muäún biãøu diãùn thäng tin væìa âoüc âæåüc trãn âeìn LED thç
noï chè viãûc âæa tên hiãûu âiãöu khiãøn tåïi âoï maì khäng cáön phaíi kiãøm tra
xem caïc thiãút bë naìy coï âang sàôn saìng laìm viãûc hay khäng.
Tuy nhiãn trong thæûc tãú khäng phaíi luïc naìo CPU cuîng laìm viãûc våïi
caïc âäúi tæåüng "liãn tuûc sàông saìng" nhæ trãn. Thäng thæåìng khi CPU muäún
laìm viãûc våïi mäüt âäúi tæåüng naìo âoï, træåïc tiãn noï phaíi kiãøm tra xem
thiãút bë âoï coï âang åí traûng thaïi sàôn saìng laìm viãûc hay khäng nãúu coï thç
noï måïi thæûc hiãûn vaìo viãûc trao âäøi dæî liãûu. Nhæ váûy, nãúu laìm viãûc
theo phæång thæïc thàm doì thç thäng thæåìng CPU phaíi âæåüc daình riãng cho
viãûc trao âäøi dæî liãûu vç noï phaíi liãn tuûc kiãøm tra traûng thaïi sàôn saìng
cuía thiãút bë ngoaûi vi thäng qua caïc tên hiãûu moïc näúi (handshake signal).
Caïc tên hiãûu naìy âæåüc láúy tæì caïc maûch phäúi, do ngæåìi thiãút kãú taûo ra,
âãø cho chæång trçnh thàm doì hoaût âäüng trãn âoï.
Sau âáy laì thê duû mäüt caïch taûo ra tên hiãûu moïc näúi vaì læu âäö
thuáût toaïn cuía chæång trçnh duìng cho viãûc trao âäøi dæî liãûu giæîa CPU vaì
thiãút bë ngoaûi vi (hçnh 6.1)
Trong thê duû naìy âãø cho váún âãö âån giaín, ta giaí thuyãút CPU chè
laìm viãûc våïi 1 thiãút bë vaìo vaì 1 thiãút bë ra. Viãûc täø chæïc phäúi gheïp
âæåüc thæûc hiãûn trãn caïc maûch IC cåî væìa âãø ta âãø theo gioíi caïc tên
hiãûu.
Mäüt cäøng vaìo säú 0 (coï âëa chè 00) âæåüc duìng âãø âoüc traûng thaïi
sàôn saìng cuía 2 thiãút bë ngoaûi vi noïi trãn. Tên hiãûu saîn saìng cuía thiãút bë
ngoaûi vi säú 1 (cäøng vaìo 01) âæåüc âàût vaìo bit D0, tên hiãûu sàôn saìng cuía
thiãút bë ngoaûi vi säú 2 (cäøng ra 02) âæåüc âàût vaìo bit D1. Caïc bit naìy seî
coï giaï trë 1 khi thiãút bë ngoaûi vi tæång æïng åí traûng thaïi sàôn saìng laìm
viãûc våïi CPU vaì chuïng seî âæåüc âæa vaìo bus dæî liãûu khi CPU âoüc noï
bàòng lãûnh âoüc cäøng vaìo säú 0. Chæång trçnh trao âäøi dæî liãûu seî kiãøm tra
caïc bit baïo sàôn saìng naìy vaì seî coï caïc âaïp æïng phuì håüp.
Mä taí hoaût âäüng cuía pháön maûch vaìo dæî liãûu
Khi thiãút bë vaìo säú 1 coï byte säú liãûu cáön trao âäøi, noï âæa ra xung
STB âãø cho pheïp maûch chäút 8 bit láúy byte dæî liãûu âoï âäöng thåìi kêch cho
maûch láût D (maûch taûo tên hiãûu sàôn saìng ) laìm viãûc. CPU seî thàm doì
traûng thaïi sàôn saìng cuía thiãút bë vaìo säú 1 qua bit DO khi noï âoüc cäøng 00.
Âãún khi CPU âoüc 1 byte dæî liãûu vaìo thç âäöng thåìi noï xoïa luän maûch taûo
traûng thaïi sàôn saìng âãø chuáøn bë cho láön laìm viãûc tåïi våïi 1 byte dæî liãûu
khaïc.
Tæång tæû ta cuîng coï thãø deî daìng tháúy âæåüc caïch hoaût âäüng cuía
pháön maûch thæï hai cuía hçnh 6.1 våïi chæïc nàng âæa dæî liãûu ra thiãút bë säú
2.
Læu âäö thuáût toaïn cho chæång trçnh vaìo/ra dæî liãûu cuía cäøng säú
01/02 theo så âäö moïc näúi trãn hçnh 6.2 âæåüc thãø hiãûn åí hçnh 6.2 a) vaì b)
âæåìng liãön neït.
 Vê duû
Láûp chæång trçnh theo læu âäö trãn hçnh 6.2 âãø thæûc hiãûn viãûc âoüc
vaìo dæî liãûu mäùi khi cäøng 01 baïo sàôn saìng räöi sæí lyï säú liãûu âoï. Coï
100 säú liãûu phaíi âoüc nhæ váûy (giaí thuyãút coï sàôn chæång trçnh con xæí lyï
dæî liãûu coï tãn Xuly)
Giaíi
Cæï mäùi láön nháûn âæåüc tên hiãûu baïo sàôn saìng cuía cäøng 01 ta goüi
chæång trçnh con Xuly. Thán cuía chæång trçnh hoaìn thaình cäng viãûc noïi trãn
(theo læu âäö trãn hçnh 6.2a âæåìng liãön neït) coï thãø coï cáúu truïc sau :
MOV CX, 100 ; säú dæî liãûu phaíi âoüc trong cx
Lap : IN AL, 0 ; âoüc cäøng 00 âãø kiãøm tra cåì sàôn saìng
TEST AL, 1 ; thiãút bë säú 01 sàôn saìng?
JZ Lap ; chæa, quay laûi thàm doì tiãúp
IN AL, 1 ; sàôn saìng, âoüc cäøng 01
CALL xuly ; xæí lyï dæî liãûu
LOOP Lap ; chæa hãút, quay laûi thàm doì tiãúp
Ra:........

Trong træåìng håüp thiãút bë vaìo/ra hoaût âäüng theo caïch khaïc : cåì
sàôn saìng âãø baïo cho CPU âoüc/ghi nhiãöu byte dæî liãûu cuìng 1 luïc thç ta coï
nhaïnh chæång trçnh âi theo âæåìng âæït quaîng. Luïc naìy ta phaíi sæîa âäøi âäi
chuït caí trong pháön maûch taûo ra tên hiãûu moïc näúi láùn trong pháön chæång
trçnh âãø cho toaìn hãû thäúng laìm viãûc âuïng.
Trong thê duû trãn, nãúu thay vç caïc maûch IC cåî væìa (caïc maûch cäøng
3 traûng thaïi vaì chäút 8 bit) ta duìng maûch 8255A âãø phäúi gheïp CPU våïi
thiãút bë ngoaûi vi. Viãûc âoüc (thàm doì) traûng thaïi cuía caïc tên hiãûu moïc
näúi chè âån giaín laì âoüc caïc bêt tæång æïng cuía cäøng PC.
Trãn hçnh 6.3 laì thê duû mäüt æïng duûng cuía 8255A âãø phäúi gheïp
våïi CPU 8088 trong viãûc vaìo/ra dæî liãûu theo kiãøu thàm doì traûng thaïi sàôn
saìng cuía thiãút bë ngoaûi vi. Trong thê duû naìy ta chæa sæí duûng âãún chæïc
nàng cuía caïc tên hiãûu moïc näúi INTR naìy âæåüc näúi vaìo chán INTR cuía
8088 thç ta coï khaí nàng thæûc hiãûn mäüt kiãøu phäúi gheïp khaïc âãø vaìo/ra
dæî liãûu. Âoï laì âiãöu khiãøn vaìo/ra dæî liãûu bàòng caïch ngàõt CPU. Caïch
âiãöu khiãøn vaìo/ra dæî liãûu kiãøu naìy seî âæåüc trçnh baìy åí chæång sau.

Hçnh 6.3. Maûch 8255A duìng âãø phäúi gheïp vaìo/ra åí chãú âäü thàm do

You might also like