intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chương 6 - Vào ra Dữ liệu bằng cách thăm dò

Chia sẻ: Kun | Ngày: | Loại File: PDF | Số trang:5

116
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Ch−¬ng 6 Vμo 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 khiÓn vμo/ra d÷ liÖu Sau khi ®· tr×nh bμy vÒ c¸c m¹ch th−êng dïng cho viÖc phèi ghÐp CPU víi thiÕt ngo¹i vi ta sÏ tiÕn hμnh 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 vμo/ra ®· tr×nh bμy tr−íc ®©y cã thÓ ®−îc øng dông ®Ó phôc vô cho môc ®Ých nμy. Nãi chung ng−êi ta ph©n biÖt ra 3 ph−¬ng ph¸p ®iÒu khiÓn vμo/ra d÷ liÖu: • • • vμo/ra d÷ liÖu ®iÒu khiÓn...

Chủ đề:
Lưu

Nội dung Text: Chương 6 - Vào ra Dữ liệu bằng cách thăm dò

  1. Ch−¬ng 6 Vμo 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 khiÓn vμo/ra d÷ liÖu Sau khi ®· tr×nh bμy vÒ c¸c m¹ch th−êng dïng cho viÖc phèi ghÐp CPU víi thiÕt ngo¹i vi ta sÏ tiÕn hμnh 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 vμo/ra ®· tr×nh bμy tr−íc ®©y cã thÓ ®−îc øng dông ®Ó phôc vô cho môc ®Ých nμy. Nãi chung ng−êi ta ph©n biÖt ra 3 ph−¬ng ph¸p ®iÒu khiÓn vμo/ra d÷ liÖu: • vμo/ra d÷ liÖu ®iÒu khiÓn b»ng c¸ch th¨m dß tr¹ng th¸i s½n sμng cña thiÕt bÞ ngo¹i vi. • vμo/ra d÷ liÖu ®iÒu khiÓn b»ng c¸ch ng¾t bé vi xö lý. • vμo/ra d÷ liÖu ®iÒu khiÓn b»ng phÇn cøng phô ®Ó th©m nhËp trùc tiÕp vμo bé nhí. Mçi ph−¬ng ph¸p ®iÒu khiÓn vμo/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 hoμn c¶nh kh¸c nhau. Mét trong nh÷ng c¸ch ®iÒu khiÓn ®¬n gi¶n nhÊt mμ chóng ta xem xÐt trong ch−¬ng nμy lμ ph−¬ng ph¸p th¨m dß (polling) tr¹ng th¸i s½n sμng lμm viÖc cña thiÕt bÞ ngo¹i vi tr−íc khi thùc hiÖn vμo/ra d÷ liÖu. C¸c ph−¬ng ph¸p ®iÒu khiÓn vμo ra d÷ liÖu kh¸c sÏ ®−îc giíi thiÖu trong c¸c ch−¬ng sau. 200
  2. 2. Vμo/ra d÷ liÖu b»ng ph−¬ng ph¸p th¨m dß VÊn ®Ò ®iÒu khiÓn vμo/ra d÷ liÖu sÏ trë thμnh rÊt ®¬n gi¶n nÕu thiÕt bÞ ngo¹i vi lóc nμo còng s½n sμng chê ®Ó lμm viÖc víi CPU. VÝ dô, bé phËn ®o nhiÖt ®é sè (nh− lμ mét thiÕt bÞ vμo) l¾p s½n trong mét hÖ thèng ®iÒu khiÓn lóc nμo còng cã thÓ cung cÊp sè ®o vÒ nhiÖt ®é cña ®èi t−îng cÇn ®iÒu chØnh, cßn mét bé ®Ìn LED 7 nÐt (nh− lμ mét thiÕt bÞ ra) dïng ®Ó chØ thÞ mét gi¸ trÞ nμo ®ã cña mét ®¹i l−îng vËt lý nhÊt ®Þnh trong hÖ thèng nãi trªn th× lóc nμo còng cã thÓ biÓu hiÖn th«ng tin ®ã. Nh− vËy khi CPU muèn cã th«ng tin vÒ nhiÖt ®é cña 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 muè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 ph¶i kiÓm tra xem c¸c thiÕt bÞ nμy cã ®ang s½n sμng lμm viÖc hay kh«ng. Tuy nhiªn trong thùc tÕ kh«ng ph¶i lóc nμo CPU còng lμm viÖc víi c¸c ®èi t−îng "liªn tôc s½n sμng" nh− trªn. Th«ng th−êng khi CPU muèn lμm viÖc víi mét ®èi t−îng nμo ®ã, tr−íc tiªn nã ph¶i kiÓm tra xem thiÕt bÞ ®ã cã ®ang ë tr¹ng th¸i s½n sμng lμm viÖc hay kh«ng, nÕu cã th× nã míi thùc hiÖn viÖc trao ®æi d÷ liÖu. Nh− vËy, nÕu lμm viÖc theo ph−¬ng thøc th¨m dß th× th«ng th−êng CPU ph¶i ®−îc dμnh riªng cho viÖc trao ®æi d÷ liÖu v× nã ph¶i liªn tôc kiÓm tra tr¹ng th¸i s½n sμng cña 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 nμy ®−îc lÊy tõ c¸c m¹ch phèi ghÐp, 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 ®å thuËt to¸n cña ch−¬ng tr×nh dïng 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ô nμy ®Ó cho vÊn ®Ò ®¬n gi¶n, ta gi¶ thiÕt CPU chØ lμm viÖc víi 1 thiÕt bÞ vμo 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 dÔ theo râi c¸c tÝn hiÖu. Mét cæng vμo sè 0 (cã ®Þa chØ 00) ®−îc dïng ®Ó ®äc tr¹ng th¸i s½n sμng cña 2 thiÕt bÞ ngo¹i vi nãi trªn. TÝn hiÖu s½n sμng cña thiÕt bÞ ngo¹i vi sè 1 (cæng vμo 01) ®−îc ®Æt vμo bit D0, tÝn hiÖu s½n sμng cña thiÕt bÞ ngo¹i vi sè 2 (cæng ra 02) ®−îc ®Æt vμo bit D1. C¸c bit nμy sÏ cã gi¸ trÞ 1 khi thiÕt bÞ ngo¹i vi t−¬ng øng ë tr¹ng th¸i s½n sμng lμm viÖc víi CPU vμ chóng sÏ ®−îc ®−a vμo bus d÷ liÖu khi CPU ®äc nã b»ng lÖnh ®äc cæng vμo sè 0. Ch−¬ng tr×nh trao ®æi d÷ liÖu sÏ kiÓm tra c¸c bit b¸o s½n sμng nμy vμ sÏ cã c¸c ®¸p øng phï hîp. M« t¶ ho¹t ®éng cña phÇn m¹ch vμo d÷ liÖu Khi thiÕt bÞ vμo sè 1 cã 1 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 sμng) lμm viÖc. CPU sÏ th¨m dß tr¹ng th¸i s½n sμng cña thiÕt bÞ vμo sè 1 qua bit D0 khi nã ®äc cæng 00. §Õn khi CPU ®äc 1 byte d÷ liÖu vμo th× ®ång thêi nã 201
  3. xo¸ lu«n m¹ch t¹o tr¹ng th¸i s½n sμng ®Ó chuÈn bÞ cho lÇn lμm viÖc tíi víi 1 byte d÷ liÖu kh¸c. D0 M¹ch ThiÕt bÞ D1 3 1 Chèt Bus D : : : tr¹ngth¸i (vμo) 8 bit cña 8088 OC STB G D7 ISP01 + 5V pr Q D clk clr ISP00 ISP01 D0 Chèt D1 ThiÕt bÞ M¹ch 8 2 3 bit : : : (ra) tr¹ngth¸i G D7 ACK OC OSP02 +5V pr Q D clk clr ISP00 OSP02 H×nh 6.1. S¬ ®å m¹ch t¹o tÝn hiÖu mãc nèi. T−¬ng tù ta còng cã thÓ dÔ dμng thÊy ®−îc c¸ch ho¹t ®éng cña phÇn m¹ch thø hai cña h×nh 6.1 víi chøc n¨ng ®−a d÷ liÖu ra thiÕt bÞ sè 2. 202
  4. L−u ®å thuËt to¸n cho ch−¬ng tr×nh vμo/ra d÷ liÖu cña 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. B¾t ®Çu B¾t ®Çu §äc cæng 00 §äc cæng 00 vßng vßng th¨m dß th¨m dß Bit D0=1 ? Bit D1=1 ? sai sai ®óng ®óng §äc cæng 01 Ghi cæng 02 HÕt sè liÖu? HÕt sè liÖu? sai sai ®óng ®óng KÕt thóc KÕt thóc a) ®äc d÷ liÖu tõ cæng 01 b) ghi d÷ liÖu ra cæng 02 H×nh 6.2. L−u ®å ch−¬ng tr×nh ®äc vμ ghi d÷ liÖu. VÝ dô LËp ch−¬ng tr×nh theo l−u ®å trªn h×nh 6.2a ®Ó thùc hiÖn viÖc ®äc vμo 1 d÷ liÖu mçi khi cæng 01 b¸o s½n sμng råi xö lý sè liÖu ®ã. Cã 100 sè liÖu ph¶i ®äc nh− vËy (gi¶ thiÕt cã s½n ch−¬ng tr×nh con xö lý d÷ liÖu cã tªn Xuly) Gi¶i Cø mçi lÇn nhËn ®−îc tÝn hiÖu b¸o s½n sμng cña cæng 01 ta gäi ch−¬ng tr×nh con Xuly. Th©n cña ch−¬ng tr×nh hoμn thμnh 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 ph¶i ®äc trong CX 203
  5. Lap:IN AL,0 ; ®äc cæng 00 ®Ó kiÓm tra cê s½n sμng TEST AL,1 ; thiÕt bÞ sè 01 s½n sμng? JZ Lap ; ch−a, quay l¹i th¨m dß tiÕp IN AL,1 ; s½n sμng, ®ä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Þ vμo/ra ho¹t ®éng theo c¸ch kh¸c: cê s½n sμng ®Ó b¸o cho CPU ®äc/ghi nhiÒu byte d÷ liÖu cïng mét lóc th× ta cã nh¸nh ch−¬ng tr×nh ®i theo ®−êng ®øt qu·ng. Lóc nμy ta ph¶i 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 toμn hÖ thèng lμm 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 dïng m¹ch 8255A ®Ó phèi ghÐp CPU víi thiÕt bÞ ngo¹i vi th× c«ng viÖc vÒ phÇn cøng sÏ ®−îc ®¬n gi¶n ®i nhiÒu v× b¶n th©n 8255A cã kh¶ n¨ng t¹o ra c¸c tÝn hiÖu mãc nèi (®èi tho¹i) ®−îc c¶ víi CPU lÉn víi thiÕt bÞ ngo¹i vi. ViÖc ®äc (th¨m dß) tr¹ng th¸i cña c¸c tÝn hiÖu mãc nèi chØ ®¬n gi¶n lμ ®äc c¸c bit t−¬ng øng cña cæng PC. Trªn h×nh 6.3 lμ thÝ dô mét øng dông cña 8255A ®Ó phèi ghÐp víi CPU 8088 trong viÖc vμo/ra d÷ liÖu theo kiÓu th¨m dß tr¹ng th¸i s½n sμng cña thiÕt bÞ ngo¹i vi. Trong thÝ dô nμy ta ch−a sö dông ®Õn chøc n¨ng cña c¸c tÝn hiÖu mãc nèi INTR cña m¹ch 8255A, nh−ng t¹i ®©y ta còng cã thÓ nhËn thÊy r»ng nÕu tÝn hiÖu INTR nμy ®−îc nèi vμo ch©n INTR cña 8088 th× ta cã kh¶ n¨ng thùc hiÖn mét kiÓu phèi ghÐp kh¸c ®Ó vμo/ra d÷ liÖu. §ã lμ ®iÒu khiÓn vμo/ra d÷ liÖu b»ng c¸ch ng¾t CPU. C¸ch ®iÒu khiÓn vμo/ra d÷ liÖu kiÓu nμy sÏ ®−îc tr×nh bμy ë ch−¬ng sau. 8255A ThiÕt bÞ vμo 8088 PC4 STB PC5 ACK D0-D7 PA0-PA7 D0-D7 ThiÕt bÞ ra PB0-PB7 D0-D7 INTR INTR PC1 STB PC2 ACK H×nh 6.3. M¹ch 8255A dïng ®Ó phèi ghÐp vμo/ra ë chÕ ®é th¨m dß. 204
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
4=>1