Tải bản đầy đủ (.doc) (3 trang)

Vi xử lý máy vi tính - Chương 6 docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (31.17 KB, 3 trang )

CHỈÅNG 6
VO RA DỈỴ LIÃÛU BÀỊNG CẠCH THÀM D
1. Giåïi thiãûu chung vãư cạc phỉång phạp âiãưu kiãøn vo/ra dỉỵ liãûu
Sau khi â trçnh by vãư cạc mảch thỉåìng dng cho viãûc phäúi ghẹp CPU våïi
thiãút ngoải vi ta s tiãún hnh nghiãn cỉïu cạc phỉång thỉïc âiãưu khiãøn viãûc trao âäøi
dỉỵ liãûu. Cạc mảch phäúi ghẹp vo / ra â trçnh by trỉåïc âáy cọ thãø âỉåüc ỉïng dủng
âãø phủc vủ cho mủch âêch ny.
Nọi chung ngỉåìi ta phán biãût ra 3 phỉång phạp âiãưu khiãøn vo/ra dỉỵ liãûu:
• vo/ra dỉỵ liãûu âiãưu khiãøn bàòng cạch thàm d trảng thại sàơn sng ca thiãút
bë ngoải vi.
• vo/ra dỉỵ liãûu âiãưu khiãøn bàòng cạch ngàõt bäü vi xỉí l.
• vo/ra dỉỵ liãûu âiãưu khiãøn bàòng pháưn cỉïng phủ âãø thám nháûp trỉûc tiãúp vo
bäü nhåï.
Mäùi phỉång phạp âiãưu khiãøn vo/ra dỉỵ liãûu nọi trãn cọ nhỉỵng âàûc âiãøm
khạc nhau v s âỉåüc ỉïng dủng trong cạc hon cnh khạc nhau. Mäüt trong nhỉỵng
cạch âiãưu khiãøn âån gin nháút m chụng ta xem xẹt trong chỉång ny l phỉång
phạp thàm d (polling) trảng thại sàơn sng lm viãûc ca thiãút bë ngoải vi trỉåïc khi
thỉûc hiãûn vo/ra dỉỵ liãûu. Cạc phỉång phạp âiãưu khiãøn vo ra dỉỵ liãûu khạc s âỉåüc
giåïi thiãûu trong cạc chỉång sau.
2. Vo/ra dỉỵ liãûu bàòng phỉång phạp thàm d.
Váún âãư âiãưu khiãøn vo/ra dỉỵ liãûu s tråí thnh ráút âån gin nãúu thiãút bë ngoải
vç lục no cng sàơn sng chåì âãø lm viãûc våïi CPU. Vê dủ, bäü pháûn do nhiãût âäü säú
(nhỉ l mäüt thiãút bë vo) làõp sàơn trong mäüt hãû thäúng âiãưu khiãøn lục no cng cọ thãø
cung cáúp säú âo vãư nhiãût âäü ca âäúi tỉåüng cáưn âiãưu chènh, cn mäüt bäü ân LED 7
nẹt (nhỉ l mäüt thiãút bë ra) dng âãø chè thë mäüt giạ trë no âọ ca mäüt âải lỉåüng váût
l nháút âënh trong hãû thäúng nọi trãn thç lục no cng cọ thãø biãøu hiãûn thäng tin âọ.
Nhỉ váûy khi CPU mún cọ thäng tin vãư nhiãût âäü ca hãû thäúng thç nọ chè viãûc âc
cäøng phäúi ghẹp våïi bäü âo nhiãût âäü, v nãúu CPU mún biãøu diãùn thäng tin vỉìa âc
âỉåüc trãn ân LED thç nọ chè viãûc âỉa tên hiãûu âiãưu khiãøn tåïi âọ m khäng cáưn
phi kiãøm tra xem cạc thiãút bë ny cọ âang sàơn sng lm viãûc hay khäng.
Tuy nhiãn trong thỉûc tãú khäng phi lục no CPU cng lm viãûc våïi cạc âäúi


tỉåüng "liãn tủc sàơng sng" nhỉ trãn. Thäng thỉåìng khi CPU mún lm viãûc våïi
mäüt âäúi tỉåüng no âọ, trỉåïc tiãn nọ phi kiãøm tra xem thiãút bë âọ cọ âang åí trảng
thại sàơn sng lm viãûc hay khäng nãúu cọ thç nọ måïi thỉûc hiãûn vo viãûc trao âäøi dỉỵ
liãûu. Nhỉ váûy, nãúu lm viãûc theo phỉång thỉïc thàm d thç thäng thỉåìng CPU phi
âỉåüc dnh riãng cho viãûc trao âäøi dỉỵ liãûu vç nọ phi liãn tủc kiãøm tra trảng thại sàơn
sng ca thiãút bë ngoải vi thäng qua cạc tên hiãûu mọc näúi (handshake signal). Cạc
tên hiãûu ny âỉåüc láúy tỉì cạc mảch phäúi, do ngỉåìi thiãút kãú tảo ra, âãø cho chỉång
trçnh thàm d hoảt âäüng trãn âọ.
Sau âáy l thê dủ mäüt cạch tảo ra tên hiãûu mọc näúi v lỉu âäư thût toạn ca
chỉång trçnh dng cho viãûc trao âäøi dỉỵ liãûu giỉỵa CPU v thiãút bë ngoải vi (hçnh
6.1)
Trong thê dủ ny âãø cho váún âãư âån gin, ta gi thuút CPU chè lm viãûc
våïi 1 thiãút bë vo v 1 thiãút bë ra. Viãûc täø chỉïc phäúi ghẹp âỉåüc thỉûc hiãûn trãn cạc
mảch IC cåỵ vỉìa âãø ta âãø theo gii cạc tên hiãûu.
Mäüt cäøng vo säú 0 (cọ âëa chè 00) âỉåüc dng âãø âc trảng thại sàơn sng ca
2 thiãút bë ngoải vi nọi trãn. Tên hiãûu sn sng ca thiãút bë ngoải vi säú 1 (cäøng vo
01) âỉåüc âàût vo bit D0, tên hiãûu sàơn sng ca thiãút bë ngoải vi säú 2 (cäøng ra 02)
âỉåüc âàût vo bit D1. Cạc bit ny s cọ giạ trë 1 khi thiãút bë ngoải vi tỉång ỉïng åí
trảng thại sàơn sng lm viãûc våïi CPU v chụng s âỉåüc âỉa vo bus dỉỵ liãûu khi
CPU âc nọ bàòng lãûnh âc cäøng vo säú 0. Chỉång trçnh trao âäøi dỉỵ liãûu s kiãøm
tra cạc bit bạo sàơn sng ny v s cọ cạc âạp ỉïng ph håüp.
Mä t hoảt âäüng ca pháưn mảch vo dỉỵ liãûu
Khi thiãút bë vo säú 1 cọ byte säú liãûu cáưn trao âäøi, nọ âỉa ra xung STB âãø
cho phẹp mảch chäút 8 bit láúy byte dỉỵ liãûu âọ âäưng thåìi kêch cho mảch láût D (mảch
tảo tên hiãûu sàơn sng ) lm viãûc. CPU s thàm d trảng thại sàơn sng ca thiãút bë
vo säú 1 qua bit DO khi nọ âc cäøng 00. Âãún khi CPU âc 1 byte dỉỵ liãûu vo thç
âäưng thåìi nọ xọa ln mảch tảo trảng thại sàơn sng âãø chøn bë cho láưn lm viãûc
tåïi våïi 1 byte dỉỵ liãûu khạc.
Tỉång tỉû ta cng cọ thãø d dng tháúy âỉåüc cạch hoảt âäüng ca pháưn mảch
thỉï hai ca hçnh 6.1 våïi chỉïc nàng âỉa dỉỵ liãûu ra thiãút bë säú 2.

Lỉu âäư thût toạn cho chỉång trçnh vo/ra dỉỵ liãûu ca cäøng säú 01/02 theo
så âäư mọc näúi trãn hçnh 6.2 âỉåüc thãø hiãûn åí hçnh 6.2 a) v b) âỉåìng liãưn nẹt.
• Vê dủ
Láûp chỉång trçnh theo lỉu âäư trãn hçnh 6.2 âãø thỉûc hiãûn viãûc âc vo dỉỵ liãûu
mäùi khi cäøng 01 bạo sàơn sng räưi sỉí l säú liãûu âọ. Cọ 100 säú liãûu phi âc nhỉ váûy
(gi thuút cọ sàơn chỉång trçnh con xỉí l dỉỵ liãûu cọ tãn Xuly)
Gii
Cỉï mäùi láưn nháûn âỉåüc tên hiãûu bạo sàơn sng ca cäøng 01 ta gi chỉång trçnh
con Xuly. Thán ca chỉång trçnh hon thnh cäng viãûc nọi trãn (theo lỉu âäư trãn
hçnh 6.2a âỉåìng liãưn nẹt) cọ thãø cọ cáúu trục sau :
MOV CX, 100 ; säú dỉỵ liãûu phi âc trong cx
Lap : IN AL, 0 ; âc cäøng 00 âãø kiãøm tra cåì sàơn sng
TEST AL, 1 ; thiãút bë säú 01 sàơn sng?
JZ Lap ; chỉa, quay lải thàm d tiãúp
IN AL, 1 ; sàơn sng, âc cäøng 01
CALL xuly ; xỉí l dỉỵ liãûu
LOOP Lap ; chỉa hãút, quay lải thàm d tiãúp
Ra:
Trong trỉåìng håüp thiãút bë vo/ra hoảt âäüng theo cạch khạc : cåì sàơn sng âãø
bạo cho CPU âc/ghi nhiãưu byte dỉỵ liãûu cng 1 lục thç ta cọ nhạnh chỉång trçnh âi
theo âỉåìng âỉït qung. Lục ny ta phi sỉỵa âäøi âäi chụt c trong pháưn mảch tảo ra
tên hiãûu mọc näúi láùn trong pháưn chỉång trçnh âãø cho ton hãû thäúng lm viãûc âụng.
Trong thê dủ trãn, nãúu thay vç cạc mảch IC cåỵ vỉìa (cạc mảch cäøng 3 trảng
thại v chäút 8 bit) ta dng mảch 8255A âãø phäúi ghẹp CPU våïi thiãút bë ngoải vi.
Viãûc âc (thàm d) trảng thại ca cạc tên hiãûu mọc näúi chè âån gin l âc cạc bêt
tỉång ỉïng ca cäøng PC.
Trãn hçnh 6.3 l thê dủ mäüt ỉïng dủng ca 8255A âãø phäúi ghẹp våïi CPU
8088 trong viãûc vo/ra dỉỵ liãûu theo kiãøu thàm d trảng thại sàơn sng ca thiãút bë
ngoải vi. Trong thê dủ ny ta chỉa sỉí dủng âãún chỉïc nàng ca cạc tên hiãûu mọc näúi
INTR ny âỉåüc näúi vo chán INTR ca 8088 thç ta cọ kh nàng thỉûc hiãûn mäüt kiãøu

phäúi ghẹp khạc âãø vo/ra dỉỵ liãûu. Âọ l âiãưu khiãøn vo/ra dỉỵ liãûu bàòng cạch ngàõt
CPU. Cạch âiãưu khiãøn vo/ra dỉỵ liãûu kiãøu ny s âỉåüc trçnh by åí chỉång sau.
Hçnh 6.3. Mảch 8255A dng âãø phäúi ghẹp vo/ra åí chãú âäü thàm do

×