Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Vi xử lý máy vi tính - Chương 9 docx
Nội dung xem thử
Mô tả chi tiết
20ms 20ms
F
Ura
1mN
20ms
F
CHÆÅNG 9
MÄÜT SÄÚ PHÄÚI GHEÏP CÅ BAÍN
1. Phäúi gheïp våïi baìn phêm
Baìn phêm laì mäüt thiãút bë vaìo ráút thäng duûng trong caïc hãû vi xæí lyï. Trong
træåìng håüp dån giaín nháút âoï coï thãø laì mäüt cäng tàõc coï gàõn phêm ( maì ta chè
thæåìng quan tám âãún kê hiãûu trãn baìn phêm) näúi vaìo moüt chán naìo âoï cuía bäü vi
xæí lyï: åí mæïc phæïc taûp hån âoï coï thãø laì haìng chuûc cäng tàõc coï gàõn phêm âæåüc täø
chæïc theo mäüt ma tráûn: phæïc taûp hån næîa, âoï laì mäüt hãû vi xæí lyï chuyãn duûng
quaín lyï caí tràm cäng tàõc coï gàõn phêm våïi nhiãm vuûh nháûn ra phêm âæåüc goî vaì
taûo maî âæa âãún hãû vi xæí lyï.
Duì âån giaín hay mäüt täø håüp phêm, khi phäúi gheïp chuïng våïi bäü vi xæí lyï
ta cuîng phaíi thoía maîn mäüt säú yãu cáöu âàûc biãût âãø âaím baío hãû thäúng laìm viãûc
âuïng .
Coï ráút nhiãöu cäng tàõc âæåüc duìng trong phäúi gheïp våïi bäü vi xæí lyï nhæng
coï thãø xãúp chuïng vaìo hai nhoïm chênh:
+ cäng tàõc coï tiãúp xuïc ccå khê ( kiãøu âiãûn tråí: âiãûn tråí thay âäøi khi áún vaì
khi nhaí phêm)
+ cäng tàõc khäng coï tiãúp xuïc cå khê kiãøu âiãûn dung: âiãûn dung thay âäøi
khi áún vaì khi nhaí phêm hoàûc kiãøu hiãûu æïng Hall: âiãûn aïp thay âäøi khi áún vaì khi
nhaí phêm).
Trong caïc loaûi cäng tàõc âoï, loaûi cäng tàõc âiãûn tråí dæû trãn tiãúp xuïc cå khê
laì ráút thäng duûng rong thæûc tãú. Trãn hçnh 9.1 laì caïc näúi cäng tàõc vaìo maûch âiãûn
vaì âaïp æïng cuía noï khik coï læûc taïc âäüng vaìo phêm (áún phêm).
..
Hçnh 9.1 Aính hæåíng âäü rung cuía cäng tàõc
t
t
Ura
+5V
Nhçn vaìo âaïp æïng vãö màût cå- âiãûn cuía cäng tàõc trãn hçnh 9.1. ta nháûn
tháúy: vç cäng tàõc laì mäüt hãû thäúng coï quaïn tênh, do âoï khi ta áún phêm vaì nhaí
phêm, xugn âiãûn thu âæåüc åí âáöu ra cuía noï khäng phaíi liãn tuûc maì bë ngàõt
quaîng taûi caïc giai âoaûn quaï âäü( luïc bàõt âáöu áún phêm vaì luïc bàõt âáöu nhaí phêm).
Âiãöu naìy xaíy ra laì do trong kãút cáúu cuía cäng tàõc coï caïc bäü pháûn âaìn häöi, khi bë
taïc däüng cuía læûc bãn ngoaìi caïc kãút cáúu âäüng cuía cäng tàõc bë dao âäüng laìm cho
bãö màût tiãúp xuïc cuía cäng tàõc bë biãún âäøi. Trong thæûc tãú thç mäùi quïa trçnh quaï âäü
trãn keïo daìi khoaíng 10 -20 ms. Nãúu trong thåìi kç quaï âäü ta âoüc thäng tin tæì caïc
cäng tàõc thç ráút dãù nháûn âæåüc thäng tin sai lãûch traûng thaïi cuía cäng tàõc, vç váûy
ngæåìi ta thæåìng chåì khoaíng 10-20 ms sau khi cängt tàõc bë áún hay nhaí âãø âoüc
traûng thaïi cuía cäng tàõc trong giai âoaûn xaïc láûp.
Khi mäüt cäng tàõc âæåüc näúi træûc tiãúp vaì mäüt chán naìo âoï cuía bäü vi xæí lyï
hoàûc caïc maûch phuû tråü, coï mäüt caïch khaïc âãø traïnh caïc hiãûu æïng khäng mong
muäún coï thãø taïc âäüng lãn hoaût âäüng cuía bäü vi xæí lyï do cäng tàõc bë rung gáy laì
duìng caïc maûch têch phán näúi bãn caûnh cäng tàõc nhæ trong træåìng håüp taûo tên
hiãûu cho âáöu vaìo RESET cuía hãû vi xæí lyï ( xem hçnh 5.6).
Tiãúp theo ta xeït truåìng håüp mäüt säú cäng tàõc nháút âënh âæåüc täø chæïc theo
ma tráûn gäöm caïc haìng vaì caïc cäüt âãø taûo thaình baìn phêm cho mäüt hãû vi xæí lyï.
Våïi täøng säú phêm khoíang 20-30 ( baìn phêm HEXA) thç âoï laì truåìng håüp
thæåìng tháúy trong caïc hãû thäúng nhoí: caïc maïy vi tênh trãn mäüt baíng maûch in
hoàûc caïc baíng maûch âiãöu khiãøn nhoí (hay âæåüc goüi laì “kit”). Trong caïc maïy
tênh caï nhán nhæ IBM PC chàóng haûn thç säú phêm coï thãø laì tæì 80-101 phêm tuìy
theo thãú hãû maïy.
Âãø nháûn âæåüc thäng tin chênh xaïc vãö traûng thaïi cuía mäüt phêm trong caïc
hãû thäúng nhæ váûy ta phaíi thæåìng laìm 3 khäúi cäng viãûc sau:
+Phaït hiãûn coï áún phêm.
+ Chåì cäng tàõc åí traûng thaïi äøn âënh( chäúng rung).
+Tçm phêm âæåüc áún vaì taûo maî cho phêm âoï.
Vaì âãø coï âæåüc mäüt phäúi gheïp baìn phêm våïi bäü vi xæí lyï thæûc hiãûn caïc
chæïc nàng âaî nãu åí trãn trong thæûc tãú ngæåìi ta coï thãø laìm theo 2 caïch:
+ duìng bäü vi xæí lyï âãø quaín lyï træûc tiãúp baìn phêm gheïp qua mäüt säú maûch
cäøng. Coï thãø nháûn tháúy ràòng åí dáy CPU laìm viãûc theo chãú âäü thàm doì. Bàòng
caïch naìy CPU phaíi âãø mäüt pháön thåìi gian âãø quaín lyï baìn phêm nhæng ta laûi âaût
âæåüc sæû âån giaín vãö pháön cæïng.
+ duìng mäüt maûch quaín lyï baìn phêm chuyãn duûng âãø phäúi gheïp våïi baìn
phêm. ÅÍ âáy CPU laìm viãûc våïi bäü quaín lyï baìn phêm qua yãu cáöu ngàõt. Bàòng
caïch naìy ta coï thãø giaíi phoïng CPU âãø noï daình thåìi gian cho caïc viãûc khaïc quan
troüng hån.
Cäøng ra 00
CPU
Cäøng vaìo 01
Hçnh 9.2. Maûch phäúi gheïp baìn phêm
• CPU træûc tiãúp quaín lyï baìn phêm
Trong caïch laìm naìy, âãø âån giaín trong trçnh baìy, ta giaí thiãút baìn phêm
hãû 16 gäöm 16 cäng tàõc- phêm âaïnh dáúu tæì 0 - FH gheïp våïi bäü vi xæí lyï thäng
qua caïc maûch cäøng nhæ trãn hçnh 9.2. Caïc maûhc cäøng coï thãø laì caïc maûch IC
nhæ 74LS373 hoàûc mäüt pháönn cuía PPI 8255A âæåüc láûp trçnh thêch håüp.
Thuáût toaïn cuía chæång trçnh âiãöu khiãøn viãûc phäúi gheïp CPU - baìn phêm
theo så âäö pháön cæïng noïi trãn âæåüc trçnh baìy bàòng læu âäö trãn hçnh 9.3.
Âáöu tiãn ta phaíi kiãøm tra tçnh traûng (täút, xáúu) cuía baìn phêm khi noï chæa
âæåüc áún ( âuïng ra laì khi ta chæa këp áún phêm naìo hoàûc chæa këp áún phêm tiãúp
D0
D1
D2
D3
D7
D6
D5
D4
D3
D2
D1
D0
+5V
0 1 2 3
C D E F
10K
theo) xem coï phêm naìo bë keûp ( dênh ) khäng bàòng caïch âæa ra caïc haìng vaì doüc
caïc cäüt âãø queït toaìn bäü caïc phêm.
Hçnh 9.3. Læu âäö thuáût toaïn chæång trçnh phäúi gheïp baìn phêm.
Bàõt âáöu
Âæa 0 ra
mäüt haìng
Âoüc caïc cäüt
Phêm täút
Âoüc caïc cäüt
Coï phêm áún
Chåì 20ms
Âoüc caïc cäüt
Coï phêm áún
Âæa 0 ra
mäüt haìng
Âoüc caïc cäüt
Tçm tháúy
Taûo maî phêm
Kãút thuïc
Nãúu coï mäüt cäng tàõc naìo âoï näúi haìng vaì cäüt, mæïc âiãûn aïp 0 åí haìng seî
truyãön sang cäüt vaì ta seî âoüc âæåüc åí cäüt tæång æïng mæïc âiãn aïp 0. Mäüt baìn phêm
täút seî khäng coï caïc tiãúp âiãøm cuía mäüt cäng tàõc naì âæåüc näúi trong luïc naìy vaì ta
seí âoüc âæåüc mæïc 1 åí táút caí caïc cäüt. Chæång trçnh cuía læu âäö trãn seî bë quáøn
nãúu baìn phêm cuía ta bë dênh. Mäüt caíi tiãún coï thãø âæåüc thãm vaìo chæång trçnh
trãn âãø thoaït ra khoíi voìng quáøn âoï vaì thäng baïo baìn phêm bë hoíng.
Nãúu baìn phêm khäng bë hoíng thç ta måïi âi vaìo pháön phaït hiãûn xem liãûu
coï mäüt phêm naìo âoï bë áún khäng. Nãúu phaït hiãûn ra coï mäüt phêm bë áún ta seî phaíi
chåì cåî 10 ms âãø cho cäng tàõc coï thåìi gian äøn âënh hãû thäúng. Tiãúp theo laì ta
phaíi xaïc âënh laûi xem coï âuïng laì coï mäüt phêm naìo âoï bë áún khäng, nãúu coï thç ta
måïi tiãún haình xaïc âënh cuû thãø xem âoï laì phêm naìo trong säú caïc phêm. Ta laìm
viãûc naìy bàòng caïch âæa 0 vaìo láön læåüt caïc haìng vaì doüc caïc cäüt. Khi âaî biãút toüa
âäü haìng vaì ccäüt cuía mäüt phêm bë áún thç cäng viãûc tiãúp theo laì taûo maî cho phêm
âoï. Trong så âäö âån giaín nhæ så âäö trãn hçnh 9.3 thç viãûc taûo maî cho phêm væìa
tçm tháúy âæåüc thæûc hiãûn bàòng caïch âoüc 8 bêt tæì cäøng vaìo ( 4 bit cao chæïa thäng
tin vãö toüa âäü haìng vaì 4 bit tháúp chæïa thäng tin vãö toüa âäü cäüt) räöi chuyãøn thaình
maî hãû 16 tæång æïng våïi phêm bàòng caïch tra mäüt baíng thêch håüp.
Sau âáy laì vàn baín chæång trçnh thæûc hiãûn thuáût toaïn âaî nãu dæûa trãn så
âäö trãn hçnh 9.2 bàòng caïch duìng maûch PPI 8255A våïi âëa chè cå baín laì 60H.
Cáön chuï yï ràòng âáy chè laì chæång trçnh duìng âãø mä taí thuáût toaïn.
• Chæång trçnh 8.1. CPU- HexKeyboard cpu_kbd.asm
. Model Small
. Stack 100
. Data
;0 1 2 3 4 5 6 7
Key DB 77H 7BH 7DH 7EH 0B7H 0BBH 0BDH 0BEH
;8 9 A B C D E F
DB 0D7H 0DBH 0D0H 0DEH 0E7H 0EBH 0EDH 0EEH
PA EQU 60H
PB EQU 61H
CWR EQU 63H
CW EQU 68H ;Chãú âäü 0, PA : ra ; PB & PC : vaìo
.Code
Main Proc
MOV AX , @Data ;khåíi âáöu DS
MOW DS , AX
MOW AL , CW ;khåíi âáöu 8255A
OUT CRW, AL
CALL RD_KBD ;goüi chæång trçnh âoüc phêm
Xuly:... ; caïc xæí lyï tiãúp theo
Main Endp
RD_KBD Proc
; thuí tuûc âoüc vaì taûo maî cho phêm bë áún
; Ra : AL : maî phêm,
; AH=00H khi khäng coï läùi
; AH=01 khi coï läùi
PUSHF ;cáút caïc thanh ghi
PUSH BX
PUSH CX
PUSH DX
MOV AL,00 ;âæa 0 ra moüi haìng
OUT PA, LA
MOV CX, 3 ;säú láön kiãøm tra dênh
Wait_Open: IN AL, PB ;âoüc cäüt âãø kiãøm tra dênh
AND AL, 0FH ;che caïc bit cao
CMP AL, 0FH ;coï phêm dênh?
LOOPNE Wait_Open ;âuïng, chåì khoíi dênh
JCXZ Sai ;”quaï tam ba báûn” : phêm bë keût
Wait_Pres: IN AL,PB ;âoüc cäüt âeí kiãøm tra áún phêm
AND AL, 0FH ; che caïc bit cao
CMP AL, 0FH ;coï phêm áún?
JE Wait_Pres ;khäng, chåì áún phêm
MOV CX, 5880 ;Coï, trãù 20ms âãø chäúng rung
Tre: LOOP Tre
;âoüc âãø kiãøm tra laûi phêm bë áún
IN AL, PB
AND AL, 0FH ;che caïc bit cao