Giáo trình Ghép nối và điều khiển thiết bị ngoại vi

Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
GHÉP NꢀI VÀ ðIꢁU KHIꢂN THIꢃT Bꢄ NGOꢅI VI  
Ngưꢊi soꢇn: TS. Nguyꢀn Văn Minh Trí  
ThS. Lâm Tăng ðꢁc  
Các sinh viên lꢂp 03SK  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
1
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
TÀI LIꢃU LƯU HÀNH NꢄI Bꢄ  
LꢅI NÓI ðꢆU  
Ngày nay, máy vi tính (MVT) ñã ñưꢋc cꢈi tiꢅn, nâng cꢌp và thꢆ trưꢊng hoá ñꢄ ñꢇt tꢂc  
ñꢍ xꢎ lý cꢏc nhanh, giá thành rꢐ. Trong nhꢑng thꢒp niên qua, MVT ñã ñưꢋc áp dꢓng  
khꢔp mꢁi nơi, thay thꢅ cho các hꢀ thꢂng cũ nhiꢃu nhưꢋc ñiꢄm. ðꢕc biꢀt, trong hꢀ thꢂng  
ñiꢀn, ñiꢀn công nghiꢀp, MVT ñã ñưꢋc ꢖng dꢓng ngày càng nhiꢃu, mang lꢇi nhiꢃu tính  
năng ưu viꢀt cho hꢀ thꢂng. Do ñó yêu cꢗu phát triꢄn lý thuyꢅt vꢃ hꢀ thꢂng có sꢎ dꢓng  
MVT ñã mꢘ ra nhiꢃu lĩnh vꢏc hꢁc mꢙi.  
Mꢍt ví dꢓ cꢓ thꢄ cꢚa viꢀc ꢖng dꢓng MVT trong công nghiꢀp là các hꢀ thꢂng ño lưꢊng  
và ñiꢃu khiꢄn sꢎ dꢓng MVT. Trong các hꢀ thꢂng này, MVT nhꢒn các dꢑ liꢀu ño ñꢇt trꢇng  
thái vꢒt lý cꢚa hꢀ thꢂng, vi dꢓ như nhiꢀt ñꢍ, áp suꢌt, ñiꢀn áp …, và tính toán ñꢄ ñưa ra  
nhꢑng quyꢅt ñꢆnh, tín hiꢀu ñiꢃu khiꢄn trꢘ lꢇi hꢀ thꢂng, nhꢛm ñꢇt ñưꢋc các yêu cꢗu ñiꢃu  
khiꢄn ñꢃ ra cꢚa hꢀ thꢂng.  
Muꢂn thiꢅt kꢅ, vꢒn hành và bꢈo quꢈn tꢂt hꢀ ño-ñiꢃu khiꢄn công nghiꢀp, ngưꢊi kꢜ sư  
cꢗn nꢔm vꢑng vꢃ kꢜ thuꢒt máy tính, cách viꢅt chương trình, kꢜ thuꢒt ghép nꢂi thiꢅt bꢆ  
ngoꢇi vi, viꢀc xꢎ lý sꢂ liꢀu, lý thuyꢅt ñiꢃu khiꢄn sꢂ…  
Môn hꢁc ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi (TBNV) nhꢛm cung cꢌp các kiꢅn  
thꢖc cơ bꢈn trong viꢀc tìm hiꢄu, thiꢅt kꢅ mꢇch ghép nꢂi ngoꢇi vi vꢙi MVT. Các mꢇch  
thiꢅt kꢅ phꢓc vꢓ cho viꢀc ño lưꢊng, ñiꢃu khiꢄn, giao tiꢅp giꢑa MVT vꢙi MVT, MVT vꢙi  
hꢀ vi ñiꢃu khiꢄn.  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
2
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
MꢇC LꢇC  
CHƯƠNG 1: CƠ Sꢈ GHÉP NꢉI THIꢊT Bꢋ NGOꢌI VI  
1.1. Giꢙi thiꢀu chung  
1.1.1.  
1.1.2.  
1.1.3.  
Cꢌu trúc hꢀ thꢂng  
Nhiꢀm vꢓ cꢚa bꢍ ghép nꢂi  
Thꢚ tꢓc trao ñꢝi dꢑ liꢀu cꢚa máy vi tính  
1.2. Giꢙi thiꢀu mꢍt sꢂ vi mꢇch dùng trong bꢍ ghép nꢂi  
1.2.1.  
1.2.2.  
1.2.3.  
1.2.4.  
1.2.5.  
Các mꢇch logic cơ bꢈn  
Các mꢇch lꢒt  
Các mꢇch thanh ghi ñꢀm  
Các mꢇch giꢈi mã ñꢆa chꢞ  
Các mꢇch truyꢃn dꢑ liꢀu  
CHƯƠNG 2: GHÉP NꢉI VÀO RA SONG SONG ðIꢍU KHIꢎN BꢏNG  
CHƯƠNG TRÌNH  
2.1 Các lꢀnh vào ra dꢑ liꢀu  
2.1.1  
2.1.2  
2.1.3  
Các lꢀnh vào ra bꢛng hꢋp ngꢑ  
Các lꢀnh vào ra bꢛng Turbo C  
Các lꢀnh vào ra bꢛng Turbo Pascal  
2.2 Ghép nꢂi song song ñơn giꢈn: có hay không có ñꢂi thoꢇi  
2.2.1  
2.2.2  
2.2.3  
2.2.4  
Cꢎa vào ñơn giꢈn không ñꢂi thoꢇi  
Cꢎa ra ñơn giꢈn không ñꢂi thoꢇi  
Cꢎa vào ñơn giꢈn có ñꢂi thoꢇi  
Cꢎa ra ñơn giꢈn có ñꢂi thoꢇi  
2.3 Ghép nꢂi song song ñiꢃu khiꢄn bꢛng chương trình  
2.3.1  
2.3.2  
2.3.3  
2.3.4  
Sơ ñꢟ khꢂi và chꢖc năng các khꢂi cꢚa 8255A  
Các chꢅ ñꢍ làm viꢀc cꢚa 8255A  
Ghép nꢂi vꢙi 8255A  
Lꢒp trình cho 8255A  
CHƯƠNG 3: GHÉP NꢉI TRAO ðꢐI Dꢑ LIꢃU NꢉI TIꢊP  
3.1 Giꢙi thiꢀu chung vꢃ trao ñꢝi dꢑ liꢀu nꢂi tiꢅp  
3.1.1  
3.1.2  
Yêu cꢗu trao ñꢝi dꢑ liꢀu nꢂi tiꢅp  
Mꢇch trao ñꢝi dꢑ liꢀu nꢂi tiꢅp  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
3
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
3.1.3 Thꢚ tꢓc trao ñꢝi dꢑ liꢀu nꢂi tiꢅp  
3.2 Mꢇch thu phát dꢆ bꢍ vꢇn năng UART 8250  
3.2.1 Sơ ñꢟ khꢂi và chꢖc năng các khꢂi cꢚa UART 8250  
3.2.2 Ghép nꢂi vꢙi UART 8250  
3.2.3 Lꢒp trình cho UART 8250  
CHƯƠNG 4: GHÉP NꢉI ðIꢍU KHIꢎN NGꢒT  
4.1 Khái niꢀm và phân loꢇi ngꢔt  
4.1.1  
4.1.2  
Khái niꢀm  
Phân loꢇi ngꢔt  
4.2 Xꢎ lý ngꢔt cꢚa nhiꢃu thiꢅt bꢆ ngoꢇi vi  
4.2.1  
4.2.2  
4.2.3  
4.2.4  
Cho phép hoꢕc cꢌm ngꢔt  
Sꢔp xꢅp ưu tiên ngꢔt  
Xác ñꢆnh nguꢟn gây ngꢔt  
Tꢇo vector ngꢔt  
4.3 Vi mꢇch ñiꢃu khiꢄn ngꢔt 8259A  
4.3.1  
4.3.2  
4.3.3  
4.3.4  
Sơ ñꢟ khꢂi và chꢖc năng các khꢂi cꢚa 8259A  
Cꢌu trúc hoꢇt ñꢍng cꢚa vi mꢇch 8259A  
Ghép nꢂi vꢙi 8259A  
Lꢒp trình cho 8259A  
CHƯƠNG 5: GHÉP NꢉI VÀO RA ðIꢍU KHIꢎN BꢏNG DMA  
5.1 Khái niꢀm DMA cơ bꢈn  
5.1.1 Khái niꢀm DMA  
5.1.2 Hoꢇt ñꢍng DMAC (DMA Controller) cơ bꢈn  
5.1.3 Các chꢅ ñꢍ trao ñꢝi dꢑ liꢀu DMA  
5.2 Bꢍ ñiꢃu khiꢄn DMA – 8237A  
5.2.1 Sơ ñꢟ khꢂi và chꢖc năng các khꢂi cꢚa DMAC 8237A  
5.2.2 Ghép nꢂi vꢙi 8237A trong hꢀ vi xꢎ lý 8088  
5.2.3 Lꢒp trình cho 8237A  
CHƯƠNG 6: GHÉP NꢉI TƯƠNG Tꢓ-Sꢉ VÀ Sꢉ-TƯƠNG Tꢓ  
6.1. Giꢙi thiꢀu mꢍt sꢂ mꢇch khuꢅch ñꢇi thuꢒt toán  
6.1.1 Các tham sꢂ cơ bꢈn cꢚa mꢇch khuꢅch ñꢇi thuꢒt toán  
6.1.2 Các sơ ñꢟ cơ bꢈn cꢚa bꢍ khuꢅch ñꢇi thuꢒt toán  
6.2 Bꢍ chuyꢄn ñꢝi sꢂ-tương tꢏ DAC  
6.2.1 Hoꢇt ñꢍng cꢚa DAC  
6.2.2 Các tham sꢂ cơ bꢈn cꢚa bꢍ chuyꢄn ñꢝi cꢚa DA  
6.2.3 Các mꢇch DAC ñiꢄn hình  
6.2.4 Ghép nꢂi vꢙi DAC  
6.2.5 Lꢒp trình xuꢌt dꢑ liꢀu ra DAC  
6.3 Bꢍ biꢅn ñꢝi tương tꢏ-sꢂ ADC  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
4
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
6.3.1 Nguyên tꢔc làm viꢀc cꢚa ADC  
6.3.2 Các tham sꢂ cơ bꢈn cꢚa bꢍ chuyꢄn ñꢝi AD  
6.3.3 Các phương pháp chuyꢄn ñꢝi AD  
6.3.4 Ghép nꢂi vꢙi ADC  
6.3.5 Lꢒp trình nhꢒn dꢑ liꢀu tꢠ ADC  
CHƯƠNG 7: ꢔNG DꢇNG MÁY VI TÍNH TRONG ðO LƯꢅNG VÀ  
ðIꢍU KHIꢎN  
7.1. Giꢙi thiꢀu vꢃ cꢌu trúc máy tính  
7.2 Thiꢅt kꢅ mꢇch ghép nꢂi giꢑa hꢀ thꢂng tꢏ ñꢍng hóa vꢙi các cꢝng cꢚa máy vi tính  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
5
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
CHƯƠNG 1: CƠ Sꢈ GHÉP NꢉI THIꢊT Bꢋ NGOꢌI VI  
1.1. Giꢂi thiꢕu chung  
1.1.1 Cꢀu trúc hꢁ thꢂng  
Máy vi tính hay hꢀ vi xꢎ lý ñꢃu có cꢌu trúc chung do Phôn Nơi-Man ñꢃ xuꢌt gꢟm khꢂi  
xꢎ lý trung tâm (CPU), bꢍ nhꢙ (M) và các cꢎa vào/ra (I/O), như trên hình 1.1. Ngoài ra,  
MVT còn cꢗn phꢈi trao ñꢝi dꢑ liꢀu và môi trưꢊng bên ngoài, ví dꢓ giao tiꢅp vꢙi ngưꢊi sꢎ  
dꢓng qua bàn phím-màn hình, trao ñꢝi dꢑ liꢀu vꢙi các thiꢅt bꢆ ngoài thông dꢓng, các thiꢅt  
bꢆ ngoài trong hꢀ ño-ñiꢃu khiꢄn, và các MVT khác trong mꢇng. Do ñó các bꢍ ghép nꢂi  
thiꢅt bꢆ ngoꢇi vi (BGN TBNV) ñưꢋc xây dꢏng, gꢟm:  
• BGN các thiꢅt bꢆ vào chuꢡn như bàn phím, con chuꢍt…  
• BGN các thiꢅt bꢆ ra chuꢡn như màn hình, máy in…  
• BGN các bꢍ nhꢙ ngoài chuꢡn như ꢝ cꢖng, ꢝ CD-ROM…  
• BGN vꢙi MVT khác trong mꢇng nhiꢃu MVT.  
• BGN vꢙi hꢀ vi ñiꢃu khiꢄn, hꢀ vi xꢎ lý.  
• BGN hꢀ ño lưꢊng - ñiꢃu khiꢄn:  
RAM  
ROM  
V
X
L
ðưꢊng dây dꢑ liꢀu và ñꢆa chꢞ MVT  
ðưꢊng dây  
BGN  
Bàn phím Máy in  
Màn hình  
BGN  
BGN  
bꢍ nhꢙ  
ngoài  
BGN  
Song song  
/nꢂi tiꢅp  
BGN  
Vào/ra  
BGN  
Vào/ra  
ñiꢃu khiꢄn  
Thiꢅt  
bꢆ  
CN  
Cơ cꢌu  
chꢌp  
hành  
Cꢈm biꢅn  
ño lưꢊng  
ꢢ cꢖng  
BGN  
Song song  
/nꢂi tiꢅp  
CD-ROM  
MVT  
/Vi ðK  
Hình 1.1: Cꢖu trúc hꢕ GN trao ñꢗi dꢘ liꢕu tin giꢘa MVT và TBNV  
Trong ñó: VXL là viꢅt tꢔt cꢚa vi xꢎ lý  
RAM là random-access memory  
ROM là read-only memory  
BGN là bꢍ ghép nꢂi  
CD-ROM là compact disk read-only memory  
CN là công nghiꢀp  
ðK là ñiꢃu khiꢄn  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
6
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
ðꢕt biꢀt trong hꢀ ño lưꢊng - ñiꢃu khiꢄn, MVT nhꢒn dꢑ liꢀu trꢇng thái vꢒt lý cꢚa hꢀ  
thꢂng (nhiꢀt ñꢍ, áp suꢌt, ñiꢀn áp, dòng ñiꢀn…) dưꢙi dꢇng tín hiꢀu ñiꢀn, tꢠ ñꢗu dò các bꢍ  
cꢈm biꢅn (sensor), bꢍ chuyꢄn ñꢝi (tranducer), bꢍ phát hiꢀn (detector). Và MVT còn nhꢒn  
thông tin vꢃ trꢇng thái sꢣn sàng hay bꢒn cꢚa thiꢅt bꢆ ño.  
MVT sau ñó ñưa tín hiꢀu chꢌp nhꢒn trao ñꢝi dꢑ liꢀu vꢙi TBNV, thu thꢒp và xꢎ lý dꢑ  
liꢀu, tính toán các tín hiꢀu ñiꢃu khiꢄn ñưa ra các cơ cꢌu chꢌp hành (các van ñóng mꢘ, các  
rơle trong mꢇch ñiꢀn, các mꢇch ñꢍng lꢏc ñiꢃu tꢂc ñꢍng cơ ñiꢀn…), hay ñưa ra các thông  
sꢂ kꢜ thuꢒt cho thiꢅt bꢆ.  
Ngoài ra, MVT còn cꢗn lưu trꢑ dꢑ liꢀu trên ꢝ cꢖng, ñĩa compact (CD-ROM) ñꢄ tra  
cꢖu lúc cꢗn, hiꢄn thꢆ kꢅt quꢈ ño dưꢙi dꢇng bꢈng sꢂ liꢀu, dꢇng ñꢟ thꢆ hay hình vꢤ ñꢟ hoꢇ  
trên màn hình.  
1.1.2 Nhiꢁm vꢃ cꢄa bꢅ ghép nꢂi  
TBNV ñưꢋc ghép nꢂi vꢙi MVT thông qua các phꢗn thích ꢖng vꢃ công nghꢀ và thích  
ꢖng logic như hình 1.2. GN công nghꢀ làm nhiꢀm vꢓ ñiꢃu chꢞnh mꢖc tín hiꢀu giꢑa công  
nghꢀ sꢈn xuꢌt TBNV và công nghꢀ sꢈn xuꢌt các mꢇch cꢌu trúc nên BUS cꢚa MVT. GN  
logic làm nhiꢀm vꢓ tꢇo các tín hiꢀu ñiꢃu khiꢄn TBNV tꢠ nhꢑng tín hiꢀu trên BUS hꢀ  
thꢂng. Nhiꢀm vꢓ cꢚa BGN là phꢂi hꢋp trao ñꢝi dꢑ liꢀu giꢑa MVT và TBNV.  
1. Phꢀi hꢁp vꢂ mꢃc và công suꢄt tín hiꢅu  
-
Mꢖc tín hiꢀu cꢚa MVT thưꢊng là mꢖc TTL (0V, 5V), trong khi TBNV có mꢖc  
ñiꢀn thoꢇi ( 15V, 48V) hay mꢖc ñiꢀn công nghiꢀp (220V/380V).  
Công suꢌt ñưꢊng dây MVT nhꢥ (cꢦ chꢓc mA), trong khi công suꢌt cꢗn cho  
TBNV là rꢌt lꢙn tùy theo tꢠng hꢀ thꢂng.  
-
Do ñó BGN phꢈi biꢅn ñꢝi ñiꢀn áp và khuꢅch ñꢇi công suꢌt cho phù hꢋp giꢑa MVT và  
TBNV. Thưꢊng dùng vi mꢇch 3 trꢇng thái ñꢄ ñưa dꢑ`liꢀu ra, ñưa dꢑ liꢀu vào. Do ñó vi  
mꢇch sꢤ ꢘ trꢇng thái trꢘ kháng cao khi không có trao ñꢝi dꢑ liꢀu, ñꢄ cô lꢒp TBNV vꢙi  
MVT, ñꢄ không tiêu thꢓ mꢍt chút công suꢌt nào cꢚa ñưꢊng dây và ñꢄ bꢈo vꢀ MVT.  
2. Phꢀi hꢁp vꢂ dꢆng dꢇ liꢅu  
-
Dꢑ liꢀu trao ñꢝi cꢚa MVT luôn là song song ꢘ dꢇng sꢂ nhꢆ phân, có thꢄ truyꢃn  
theo 8 bit, 16 bit, 32 bit, 64 bit.  
-
Dꢑ liꢀu cꢚa TBNV có thꢄ song song 8 bit và 16 bit, nꢂi tiꢅp hoꢕc tín hiꢀu liên tꢓc.  
Do ñó BGN sꢤ chuyꢄn ñꢝi dꢇng dꢑ liꢀu cho phù hꢋp giꢑa MVT và TBNV, ví dꢓ  
chuyꢄn ñꢝi tꢠ tín hiꢀu liên tꢓc sang tín hiꢀu sꢂ.  
3. Phꢀi hꢁp vꢂ tꢀc ñꢈ trao ñꢉi dꢇ liꢅu  
-
MVT thưꢊng hoꢇt ñꢍng vꢙi tꢂc ñꢍ cao (tꢗn sꢂ lên tꢙi hàng trăm MHz) trong khi  
TBNV thưꢊng hoꢇt ñꢍng chꢒm hơn nhiꢃu.  
Do ñó BGN nhꢒn và lưu dꢑ liꢀu tꢠ MVT rꢟi truyꢃn cho TBNV theo phꢆp chꢒm cꢚa  
TBNV, giꢈi phóng cho MVT làm nhiꢀm vꢓ khác (phꢓc vꢓ TBNV khác, chꢇy chương  
trình xꢎ lý sꢂ liꢀu hay hiꢄn thꢆ trên màn hình). Tương tꢏ, BGN nhꢒn dꢑ liꢀu cꢚa TBNV  
và chꢊ MVT ñꢁc dꢑ liꢀu vào.  
4. Phꢀi hꢁp vꢂ phương thꢃc trao ñꢉi dꢇ liꢅu  
-
Viꢀc ñꢁc/xuꢌt dꢑ liꢀu do MVT khꢘi xưꢙng:  
Khi ñó, MVT ñưa lꢀnh ñiꢃu khiꢄn tꢙi khꢘi ñꢍng BGN hay TBNV, MVT ñꢁc trꢇng thái  
cꢚa TBNV. Nꢅu trꢇng thái TBNV chưa sꢣn sàng, MVT sꢤ chꢊ.  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
7
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
Nꢅu TBNV ꢘ trꢇng thái sꢣn sàng, MVT sꢤ tiꢅn hành ñꢁc/xuꢌt dꢑ liꢀu.  
-
Viꢀc ñꢁc/xuꢌt dꢑ liꢀu do TBNV khꢘi xưꢙng:  
Khi ñó, TBNV ñưa yêu cꢗu trao ñꢝi dꢑ liꢀu tꢙi bꢍ phꢒn xꢎ lý ngꢔt cꢚa BGN. Nꢅu có  
nhiꢃu TBNV ñꢟng thꢊi ñưa ra yêu cꢗu, BGN sꢤ sꢔp xꢅp theo thꢖ tꢏ ưu tiên ñꢆnh sꢣn, rꢟi  
ñưa tꢠng yêu cꢗu tꢙi MVT. MVT sau khi nhꢒn tín hiꢀu yêu cꢗu, sꢤ chuꢡn bꢆ và ñưa tín  
hiꢀu xác nhꢒn sꢣn sàng trao ñꢝi. ðꢅn lưꢋc BGN nhꢒn và truyꢃn tín hiꢀu sꢣn sàng ñꢅn cho  
TBNV. Sau ñó, MVT và TBNV sꢤ trao ñꢝi dꢑ liꢀu qua trung gian là BGN.  
ñiꢃu khiꢄn  
ñiꢃu khiꢄn  
BGN  
GN  
công  
nghꢀ  
TBNV  
GN  
logic  
MVT  
sꢂ liꢀu  
sꢂ liꢀu  
Hình 1.2: GN giꢘa MVT và TBNV  
1.1.3 Thꢄ tꢃc trao ñꢆi dꢇ liꢁu cꢄa máy vi tính  
MVT trao ñꢝi dꢑ liꢀu vꢙi TBNV theo mꢍt trong hai chꢅ ñꢍ:  
-
Chꢅ ñꢍ chương trình:  
Gꢟm các lꢀnh VÀO, RA và CHUYꢧN dꢑ liꢀu giꢑa các thanh ghi.  
Chꢅ ñꢍ truy cꢒp thꢨng tꢙi bꢍ nhꢙ:  
-
BGN lúc này ñiꢃu khiꢄn sꢏ trao ñꢝi giꢑa TBNV và bꢍ nhꢙ qua trung gian BGN. Các  
cꢚa vào ra cꢚa VXL ꢘ trꢇng thái trꢘ kháng cao. BGN ñiꢃu khiꢄn mꢁi hoꢇt ñꢍng cꢚa bꢍ  
nhꢙ và TBNV, bao gꢟm:  
. Phát ñꢆa chꢞ cho bꢍ nhꢙ và TBNV.  
. Phát lꢀnh ñꢁc RD hay ghi WR sꢂ liꢀu.  
. Các sꢂ liꢀu ñꢁc, ghi ñưꢋc trao ñꢝi giꢑa bꢍ nhꢙ và TBNV thông qua các thanh  
ghi ñꢀm cꢚa BGN.  
ꢩ chꢅ ñꢍ trao ñꢝi dꢑ liꢀu theo chương trình, viꢀc thꢏc hiꢀn có thꢄ theo mꢍt trong ba  
phương pháp sau (hình 1.3):  
- ðꢟng bꢍ hay không ñꢂi thoꢇi.  
- Không ñꢟng bꢍ hay có ñꢂi thoꢇi.  
- Ngꢔt chương trình.  
1. Trao ñꢉi ñꢊng bꢈ:  
Sau khi khꢘi ñꢍng TBNV, MVT không cꢗn quan tâm tꢙi TBNV có sꢣn sàng trao ñꢝi  
dꢑ liꢀu hay không mà ñưa luôn lꢀnh trao ñꢝi dꢑ liꢀu. Do ñó TBNV phꢈi luôn sꢣn sàng  
trao ñꢝi dꢑ liꢀu. Phương pháp trao ñꢝi dꢑ liꢀu này có ưu ñiꢄm là nhanh, không tꢂn thꢊi  
gian chꢊ ñꢋi. Tuy nhiên nó có nhưꢋc ñiꢄm là thiꢅu tin cꢒy, ñôi khi bꢆ mꢌt dꢑ liꢀu vì có  
thꢄ có sꢏ cꢂ làm TBNV chưa sꢣn sàng trao ñꢝi.  
2. Trao ñꢉi không ñꢊng bꢈ:  
Trình tꢏ trao ñꢝi diꢉn ra như sau:  
-
-
MVT ñưa tín hiꢀu ñiꢃu khiꢄn tꢙi BGN.  
MVT chꢊ và kiꢄm tra trꢇng thái sꢣn sàng trao ñꢝi cꢚa TBNV. Nꢅu chưa sꢣn sàng  
thì ñꢁc là kiꢄm tra lꢇi trꢇng thái này.  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
8
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
MVT trao ñꢝi dꢑ liꢀu vꢙi TBNV khi ñã sꢣn sàng.  
-
Phương pháp này thưꢊng dùng vì tꢂc ñꢍ trao ñꢝi dꢑ liꢀu cꢚa TBNV chꢒm hơn so vꢙi  
MVT. Phương pháp trao ñꢝi dꢑ liꢀu này có ưu ñiꢄm là rꢌt tin cꢒy, nhưng lꢇi tꢂn thꢊi  
gian sꢎ dꢓng MVT.  
3. Trao ñꢉi theo ngꢋt chương trình:  
Phương pháp này khꢔc phꢓc ñưꢋc nhưꢋc ñiꢄm cꢚa phương pháp trên. Trình tꢏ như  
sau:  
-
-
MVT ñang thꢏc hiꢀn chuꢪi lꢀnh cꢚa chương trình nào ñó.  
TBNV có yêu cꢗu trao ñꢝi dꢑ liꢀu, sꢤ gꢘi tín hiꢀu yêu cꢗu trao ñꢝi (yêu cꢗu ngꢔt -  
INTR ).  
-
-
MVT ñưa tín hiꢀu chꢌp nhꢒn (xác nhꢒn ngꢔt – INTA).  
Chương trình chính bꢆ ngꢔt, MVT chuyꢄn sang chương trình con phꢓc vꢓ ngꢔt,  
tꢖc chương trình con trao ñꢝi dꢑ liꢀu cho TBNV ñã yêu cꢗu.  
Chương trình chính lꢇi ñưꢋc tiꢅp tꢓc thꢏc hiꢀn ꢘ chꢪ bꢆ ngꢔt.  
-
Chương trình  
Chương trình  
Chương trình  
Chưa  
Trao ñꢝi  
dꢑ liꢀu  
Trao ñꢝi  
dꢑ liꢀu  
Ngꢔt  
TBNV sꢣn sàng ?  
Rꢟi  
Trao ñꢝi  
dꢑ liꢀu  
a) ðꢟng bꢍ  
b) Không ñꢟng bꢍ  
c) Ngꢔt chương trình  
Hình 1.3 : Trao ñꢗi dꢘ liꢕu theo chương trình  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
9
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
1.2. Giꢂi thiꢕu mꢙt sꢚ vi mꢛch dùng trong bꢙ ghép nꢚi  
Thông thưꢊng BGN có các thanh chꢂt dꢑ liꢀu, bꢍ ñꢀm 3 trꢇng thái ñꢄ nꢂi vꢙi BUS và  
các mꢇch lꢒt tꢇo tín hiꢀu ñꢂi thoꢇi.  
1.2.1 Các mꢈch logic cơ bꢉn  
Mꢇch AND  
3Y  
8
4Y 3B  
4B  
3A  
9
4A  
Vcc  
-
-
SN7408  
SN7409  
Bꢈng trꢇng thái  
14 13 12 11 10  
A
L
B
L
Y
L
L
L
H
H
L
L
H
H
1
2
3
4
5
6
7
H
2A  
1A 1B 1Y  
2B 2Y  
GND  
3Y  
4Y 3B  
4B  
3A  
9
4A  
Vcc  
Mꢇch OR  
14 13 12 11 10  
8
-
SN7432  
Bꢈng trꢇng thái  
A
L
B
L
Y
L
H
L
L
H
H
H
H
H
1
2
3
4
5
6
7
H
2A  
1A 1B 1Y  
2B 2Y  
GND  
Mꢇch NOT  
4Y  
8
5A 5Y  
6A  
4A  
9
6Y  
Vcc  
-
-
-
SN7404:  
SN7405  
SN7406  
Bꢈng trꢇng thái:  
14 13 12 11 10  
A
L
Y
H
L
H
1
2
3
4
5
6
7
2Y  
1A 1Y 2A  
3A 3Y  
GND  
3Y  
8
4Y 3B  
4B  
3A  
9
4A  
Vcc  
Mꢇch EX-OR  
- SN74136  
Bꢈng trꢇng thái  
14 13 12 11 10  
A
L
B
L
Y
L
H
L
L
H
H
L
H
H
1
2
3
4
5
6
7
H
2A  
1A 1B 1Y  
2B 2Y  
GND  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
10  
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
Mꢇch NAND  
3Y  
8
4Y 3B  
4B  
3A  
9
4A  
Vcc  
-
-
-
SN7400  
SN7401  
SN7403  
Bꢈng trꢇng thái:  
14 13 12 11 10  
A
L
B
L
Y
H
H
H
L
H
L
L
H
H
1
2
3
4
5
6
7
2A  
1A 1B 1Y  
2B 2Y  
GND  
H
Mꢇch NOR  
Bꢈng trꢇng thái  
3Y  
3A  
4Y 3B  
4B  
4A  
Vcc  
-
-
SN7402  
SN7428  
14 13 12 11 10  
9
8
A
L
B
L
Y
H
L
L
L
H
L
L
H
H
1
2
3
4
5
6
7
H
2A  
1A 1B 1Y  
2B 2Y  
GND  
Mꢇch EX-NOR  
- SN74HC266  
Bꢈng trꢇng thái  
3Y  
8
4Y 3B  
4B  
Vcc  
3A  
9
4A  
14 13 12 11 10  
A
L
B
L
Y
H
L
H
L
L
H
H
L
H
H
1
2
3
4
5
6
7
2A  
1A 1B 1Y  
2B 2Y  
GND  
Mꢇch ñꢀm 3 trꢇng thái kích hoꢇt mꢖc thꢌp  
-
-
SN74125  
SN74425  
Bꢈng trꢇng thái  
3Y  
8
4Y 3BC  
4C  
3A  
9
4A  
Vcc  
14 13 12 11 10  
C
H
L
L
A
X
L
Y
Z∞  
L
H
H
1
2
3
4
5
6
7
2C  
1C 1A 1Y  
2A 2Y  
GND  
Trong ñó Z∞ là trꢇng thái trꢘ kháng cao.  
Mꢇch ñꢀm 3 trꢇng thái kích hoꢇt mꢖc cao  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
11  
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
-
-
SN74126  
SN74426  
Bꢈng trꢇng thái  
3Y  
8
4Y 3BC  
4C  
3A  
9
4A  
Vcc  
14 13 12 11 10  
C
L
A
X
L
Y
Z∞  
L
H
H
H
H
1
2
3
4
5
6
7
2C  
1C 1A 1Y  
2A 2Y  
GND  
1.2.2 Các mꢈch lꢊt:  
2
2
2
CLR  
- SN7474  
Bꢈng trꢇng thái  
2
2Q  
9
Q
2D  
Vcc  
CK PR  
14 13 12 11 10  
8
PR CLR CK D  
Q
PR  
Q
D
Q
CK  
CLR  
L
H
L
H
L
X
X
X
↑
X
X
H
L
L
Q
CLR  
Q
CK  
H
Q
PR  
D
L
X H* H*  
1
2
3
1
4
1
5
1Q  
6
7
H
H
H
H
H
H
H
L
H
L
L
1 1D  
CLR  
GND  
1
Q
H
CK PR  
↑
L
X Q0  
Q0  
Trong ñó Q0 là trꢇng thái cũ trưꢙc ñó, H* là trꢇng thái cꢌm.  
1.2.3 Các mꢈch thanh ghi ñꢁm  
- SN74LS373, SN74LS374 là loꢇi vi mꢇch chꢂt truyꢃn qua 8 bits cùng ñꢀm 3 trꢇng  
thái. Ðꢀm và chꢂt ñưꢋc ñiꢃu khiꢄn ñꢍc lꢒp bꢛng các ñꢗu vào ñiꢃu khiꢄn khác nhau là:  
ꢀ
ꢀ
ꢀ
OE (Output Enable): Mꢘ cꢝng-ñꢀm  
LE (Latch Enable): ñiꢃu khiꢄn mꢘ chꢂt  
CP (Clock Input) : ðꢗu vào xung sưꢊn lên  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
12  
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
Bꢈng sꢏ thꢒt cꢚa 74LS373  
MODEꢀHoꢁtꢀñꢂngꢀ  
Ðꢃuꢀvào  
Thanhꢀ  
ghiꢀnꢂi  
Ðꢃuꢀra  
Oi  
LE  
Di  
OE  
Kíchꢀhoꢁtꢀvàꢀñꢂcꢀ  
thanhꢀghi  
L
L
L
H
H
L
L
H
x
L
H
L
H
Chꢃtꢀvàꢀñꢂcꢀthanhꢀghi  
Chꢃtꢀvàꢀkhôngꢀchoꢀra  
Q0  
x
Q0  
Z∞  
H
x
x
Bꢈng sꢏ thꢒt cꢚa 74LS373  
MODEꢀHoꢁtꢀñꢂngꢀ  
Ðꢃuꢀvào  
Thanhꢀ  
ghiꢀnꢂi  
Ðꢃuꢀra  
Oi  
Di  
CP  
OE  
L
Kíchꢀhoꢁtꢀvàꢀñꢂcꢀ  
thanhꢀghi  
L
L
L
L
H
H
H
Chꢃtꢀvàꢀñꢂcꢀthanhꢀghi  
Chꢃtꢀvàꢀkhôngꢀchoꢀra  
L
L
x
Q0  
x
Q0  
H
Z∞  
x
x
Bꢍ ñiꢃu khiꢄn bus chꢂt hꢀ 8 loꢇi CMOS 82C82  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
13  
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
Bꢈng sꢏ thꢒt cꢚa 82C82  
STB  
DI  
DO  
OE  
H
L
Z∞  
L
X
H
H
↓
X
L
H
X
L
H
L
Q0  
Trong ñó: H là logic 1  
X là bꢌt kỳ  
L là logic 0  
Z∞ là trꢇngꢀthái trꢘ kháng cao  
↓ là sưꢊn xung âm  
Q0 là chꢂt giá trꢆ cꢚa dꢑ liꢀu sau cùng  
1.2.4 Các mꢈch giꢉi mã ñꢋa chꢌ  
Mꢍt sꢂ vi mꢇch ñưꢋc dùng nhiꢃu trong các hꢀ thꢂng giꢈi mã cꢚa VXL là SN74LS138  
(mꢇch giꢈi mã 3-8), SN74LS139 (hai giꢈi mã 2-4).  
Ðꢄ minh hoꢇ cho phương pháp này ta chꢁn vi mꢇch 74LS138. Bꢈng sꢏ thꢒt cꢚa vi  
mꢇch cho biꢅt tꢇi mꢍt thꢊi ñiꢄm chꢞ có mꢍt trong tám ñꢗu ra có mꢖc logic 0. Ðiꢃu kiꢀn  
cꢗn ñꢄ có mꢍt trong các mꢖc thꢌp ꢘ ñꢗu ra là các ñꢗu vào E1 , E2 , E3 phꢈi ñưꢋc kích  
hoꢇt, tꢖc là E1 , E2 ꢘ mꢖc thꢌp và E3 ꢘ mꢖc cao. Khi 74LS138 ñã ñưꢋc kích hoꢇt, các  
ñꢗu vào ñꢆa chꢞ A0, A1 và A2 sꢤ lꢏa chꢁn ñꢗu ra, ñiꢃu này cho phép có thꢄ chꢁn ñưꢋc mꢍt  
trong tám thiꢅt bꢆ nhꢙ khác nhau tꢇi mꢍt thꢊi ñiꢄm.  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
14  
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
Bꢜng sꢝ thꢞt cꢟa 74LS138  
Ðꢠu vào  
Enable Select  
A2 A1 A0 0 1 2 3  
Output  
4
5 6  
7
E3  
E1 E2  
H x x x x x H H H H H H H H  
x H x x x x H H H H H H H H  
x
x L x x x H H H H H H H H  
L L H L L L L H H H H H H H  
L L H L L H H L H H H H H H  
L L H L H L H H L H H H H H  
L L H L H H H H H L H H H H  
L L H H L L H H H H L H H H  
L L H H L H H H H H H L H H  
L L H H H L H H H H H H L H  
L L H H H H H H H H H H H L  
Ví dꢓ vꢃ mꢇch giꢈi mã ñꢆa chꢞ cho ROM có thꢄ tham khꢈo trên hình 1.4.  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
15  
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
Hình 1.4: Mꢛch giꢜi mã chꢡn ROM dùng 74LS138  
1.2.5 Các mꢈch truyꢍn dꢇ liꢁu  
- SN74LS245  
ꢀ
Các chân A1÷A8, B1÷B8 là các chân gꢎi/ nhꢒn dꢑ liꢀu 2 hưꢙng tương ꢖng.  
Chân 19 ( ) là chân chꢁn IC (Chip Enable).  
Chân 1 (DIR) là chân chꢁn hưꢙng gꢎi/ nhꢒn dꢑ liꢀu (Direction).  
ꢀ
ꢀ
G
Bꢜng sꢝ thꢞt cꢟa 74LS245  
G
L
DIR  
L
Hoꢁtꢀñꢂng  
DꢄꢀliꢅuꢀvàoꢀB,ꢀraꢀA  
DꢄꢀliꢅuꢀvàoꢀA,ꢀraꢀB  
L
H
H
X
Z∞  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
16  
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
CHƯƠNG 2: GHÉP NꢉI VÀO RA SONG SONG ðIꢍU KHIꢎN BꢏNG  
CHƯƠNG TRÌNH  
2.1. Các lꢕnh vào ra dꢘ liꢕu  
2.1.1 Các lꢁnh vào ra bꢎng hꢏp ngꢇ:  
Lꢀnh ñꢄ nhꢒn dꢑ liꢀu tꢠ thiꢅt bꢆ vào/ra là INput và mꢍt lꢀnh ñꢄ gꢎi sꢂ liꢀu ra thiꢅt bꢆ  
vào/ra là OUTput. Có bꢂn cách dùng khác nhau cꢚa mꢪi lꢀnh này: hai loꢇi chuyꢄn dꢑ  
liꢀu 8 hay 16 bít thông qua các cꢝng vào/ra 8 bít, và hai chuyꢄn dꢑ liꢀu 8 hay 16 bít thông  
qua các cꢝng 16 bít.  
Ví dꢓ hai lꢀnh sau ñây sꢤ ñꢁc các byte cꢚa ñưꢊng dꢫn dꢑ liꢀu tꢠ cꢝng LPT1:  
MOV DX,378H ; nꢆp ñꢌa chꢍ cꢎa thanh ghi dꢇ liꢅu vào DX  
IN  
AL,DX  
; ñꢏc thông tin trên ñưꢐng dꢑn dꢇ liꢅu (D0 ñꢒn D7) cꢎa LPT1  
sang thanh ghi AL  
Bꢜng 2.1: Bꢜng các lꢕnh vào ra  
Instruction  
Data  
Comment  
Width  
IN AL,d8  
8
8
Ðꢁc mꢍt byte tꢠ cꢝng vào/ra 8 bít  
IN AL,DX  
IN AX,d8  
Ðꢁc mꢍt byte tꢠ cꢝng vào/ra xác ñꢆnh bꢘi thanh ghi DX  
Ðꢁc mꢍt word tꢠ cꢝng vào/ra 8 bít  
16  
16  
8
IN AX,DX  
OUT d8,AL  
OUT DX,AL  
OUT d8,AX  
OUT DX,AX  
Ðꢁc mꢍt word tꢠ cꢝng vào/ra xác ñꢆnh bꢘi thanh ghi DX  
Gꢎi mꢍt byte ra cꢝng vào/ra 8 bít  
8
Gꢎi mꢍt byte ra cꢝng vào/ra xác ñꢆnh bꢘi thanh ghi DX  
Gꢎi mꢍt word ra cꢝng vào/ra 8 bít  
16  
16  
Gꢎi mꢍt word ra cꢝng vào/ra xác ñꢆnh bꢘi thanh ghi DX  
Chú ý: d8 chꢖa ñꢆa chꢞ là cꢝng vào/ra 8 bít, và DX chꢖa ñꢆa chꢞ là cꢝng vào/ra 16 bít.  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
17  
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
2.1.2.Các lꢁnh vào ra bꢎng Turbo C  
Bꢜng 2.2: Bꢜng các lꢕnh vào ra  
Instruction  
Data  
Comment  
Width  
outportb(addr_port,data_var)  
Data_var=inportb(addr_port)  
outport(addr_port,data_var)  
8
8
Gꢎi mꢍt byte ra cꢝng vào/ra 8 bít xác ñꢆnh bꢘi ñꢆa chꢞ addr_port  
Ðꢁc mꢍt byte tꢠ cꢝng vào xác ñꢆnh bꢘi ñꢆa chꢞ addr_port  
Gꢎi mꢍt word ra cꢝng vào/ra, 8 bít thꢌp xác ñꢆnh bꢘi ñꢆa chꢞ  
addr_port, 8 bít cao xác ñꢆnh bꢘi ñꢆa chꢞ addr_port+1  
Ðꢁc mꢍt word tꢠ cꢝng vào/ra, 8 bít thꢌp xác ñꢆnh bꢘi ñꢆa chꢞ  
addr_port, 8 bít cao xác ñꢆnh bꢘi ñꢆa chꢞ addr_port+1  
Gꢎi mꢍt byte ra cꢝng vào/ra 8 bít xác ñꢆnh bꢘi ñꢆa chꢞ addr_port  
Ðꢁc mꢍt byte tꢠ cꢝng vào xác ñꢆnh bꢘi ñꢆa chꢞ addr_port  
Gꢎi mꢍt byte ra cꢝng vào/ra, 8 bít thꢌp xác ñꢆnh bꢘi ñꢆa chꢞ  
addr_port, 8 bít cao xác ñꢆnh bꢘi ñꢆa chꢞ addr_port+1  
Ðꢁc mꢍt word tꢠ cꢝng vào/ra, 8 bít thꢌp xác ñꢆnh bꢘi ñꢆa chꢞ  
addr_port, 8 bít cao xác ñꢆnh bꢘi ñꢆa chꢞ addr_port+1  
16  
Data_var=inportb(addr_port)  
16  
outp(addr_port,data_var)  
Data_var=inp(addr_port)  
outpw(addr_port,data_var)  
8
8
16  
Data_var=inp(addr_port)  
16  
Ví dꢓ các lꢀnh sau xuꢌt 5 (8 bít 00000101) qua thanh ghi dꢑ liꢀu cꢚa LPT1  
#include <dos.h>  
#define Dat_reg 0x378  
char data_var=5;  
outport(Dat_reg,data_var);  
2.1.3 Các lꢁnh vào ra bꢎng Turbo Pascal  
Bꢜng 2.3: Bꢜng các lꢕnh vào ra  
Instruction  
Data  
Comment  
Width  
8
8
Gꢎi mꢍt byte ra cꢝng vào/ra 8 bít xác ñꢆnh bꢘi ñꢆa chꢞ addr  
Ðꢁc mꢍt byte tꢠ cꢝng vào xác ñꢆnh bꢘi ñꢆa chꢞ addr  
Port[addr] := var1;  
Var := port[addr];  
Ví dꢓ:  
Uses crt;  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
18  
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
Port[$378] := X; Xuꢄt ra giá trꢌ biꢒn X lên ñưꢐng dꢑn dꢇ liꢅu (D0 ñꢒn D7) cꢎa cꢉng  
LPT1  
Y := port[$379]; ðꢏc nꢈi dung thanh ghi trꢆng thái cꢎa LPT1 vào biꢒn Y  
Chú ý: Mꢍt chꢑ sꢂ ꢘ hꢀ 16 phꢈi thêm dꢌu: 0x vào trưꢙc sꢂ ñó trong ngôn ngꢑ C,  
và $ vào trưꢙc sꢂ ñó trong ngôn ngꢑ Pascal.  
2.1.4 Giꢉn ñꢐ thꢑi gian các lꢁnh ñꢒc/ghi dꢇ liꢁu:  
Bus hꢀ thꢂng, bao gꢟm bus dꢑ liꢀu (data bus), bus ñiꢃu khiꢄn (control bus) và bus ñꢆa chꢞ  
(address bus), là các ñưꢊng dꢫn truyꢃn thông giꢑa vi xꢎ lý và TBNV.  
Các VXL 8 bit dꢑ liꢀu thưꢊng có 8 ñưꢊng dây ꢘ data bus, và 16 ñưꢊng dây tương ꢖng 16  
ñưꢊng ñꢆa chꢞ ꢘ address bus. Hai tín hiꢀu RD, WR ꢘ control bus thưꢊng ñưꢋc sꢎ dꢓng  
ñꢄ xác ñꢆnh thꢊi ñiꢄm dꢑ liꢀu ꢝn ñꢆnh trên data bus.  
Hình 1.5 là giꢈn ñꢟ thꢊi gian tín hiꢀu trên bus hꢀ thꢂng.  
Dꢑ liꢀu ñưꢋc  
ghi ra TBNV  
Dꢑ liꢀu ñưꢋc  
ñꢁc vào VXL  
Chu kỳ ñꢁc  
Chu kỳ ghi  
address  
bus  
Dꢑ liꢀu tꢠ  
TBNV  
Dꢑ liꢀu tꢠ  
VXL  
data bus  
RD  
WR  
Hình 1.5: Giꢜn ñꢢ thꢣi gian tín hiꢕu trên bus hꢕ thꢚng.  
Mꢪi chu kỳ bus (bus cycle) bao gꢟm viꢀc chuyꢄn 1 tꢠ dꢑ liꢀu giꢑa VXL vꢙi bꢍ nhꢙ hoꢕc  
TBNV. Mꢪi chu kỳ bus bꢔt ñꢗu khi VXL xuꢌt mꢍt ñꢆa chꢞ ñꢄ chꢁn mꢍt vꢆ trí bꢍ nhꢙ hoꢕc  
các cꢝng vào ra. Trong giꢈn ñꢟ này, các bus ñꢆa chꢞ và dꢑ liꢀu ñưꢋc biꢄu diꢉn bꢛng 1 cꢕp  
ñưꢊng thꢨng ñꢄ chꢞ thông tin trên bus ꢝn ñꢆnh. Khi các ñưꢊng trên sơ ñꢟ cꢔt ngang nhau  
diꢉn tꢈ dꢑ liꢀu ñã thay ñꢝi. ðưꢊng nét ñꢖt là trꢇng thái thꢈ nꢝi khi không có thiꢅt bꢆ nào  
lái nó.  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
19  
Tài liꢀu môn hꢁc: Ghép nꢂi và ñiꢃu khiꢄn thiꢅt bꢆ ngoꢇi vi  
2.2 Ghép nꢚi song song ñơn giꢜn: có hay không có ñꢚi thoꢛi  
2.2.1 Cꢓa vào ñơn giꢉn không ñꢂi thoꢈi  
Hình 2.1 mô tꢈ mꢍt cꢎa vào ñơn giꢈn không cꢗn tín hiꢀu ñꢂi thoꢇi. Tín hiꢀu vào tꢠ bꢍ  
cꢈm biꢅn (BCB) ñưꢋc nꢂi vꢙi bus dꢑ liꢀu cꢚa MVT thông qua bꢍ ñꢀm ba trꢇng thái.  
Khi chúng ta lꢒp trình ñoꢇn lꢀnh:  
C:  
Pascal:  
data1 = inport(addrport);  
data1 := port(addrport);  
Trình biên dꢆch sꢤ chuyꢄn ñoꢇn lꢀnh trên thành mã máy, và khi chꢇy ñoꢇn mã máy  
này, VXL sꢤ tꢇo ra các tín hiꢀu:  
- A0…A15 tꢠ addrport  
- RD kích hoꢇt ꢘ mꢖc 0.  
Bꢍ giꢈi mã sꢤ so sánh các giá trꢆ trên ñưꢊng ñꢆa chꢞ vꢙi ñꢆa chꢞ cꢝng cho trưꢙc, nꢅu  
trùng ñꢆa chꢞ, ñꢗu ra bꢍ giꢈi mã sꢤ kích hoꢇt ꢘ mꢖc 0. Do ñó ñꢗu ra mꢇch OR sꢤ ꢘ mꢖc 0,  
kích hoꢇt cho bꢍ ñꢀm ba trꢇng thái mꢘ ra, và dꢑ liꢀu tꢠ TBNV sꢤ ñꢝ vào bus dꢑ liꢀu cꢚa  
VXL. Lúc này, VXL sꢤ nhꢒn  
- D0 ,..., D7 gán vào cho biꢅn data1.  
Kꢅt thúc chu kỳ lꢀnh, RD trꢘ vꢃ mꢖc 1.  
ðꢆa chꢞ  
A0…A15  
Giꢈi mã  
RD  
D0  
D1  
BCB 1  
BCB 2  
D7  
BCB 7  
TBNV  
Bus MVT  
BGN  
Hình 2.1: Cꢤa vào ñơn giꢜn, không có ñꢚi thoꢛi  
Giꢈng viên: Nguyꢉn Văn Minh Trí  
20  
Tải về để xem bản đầy đủ
pdf 128 trang myanh 22280 Free
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Ghép nối và điều khiển thiết bị ngoại vi", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_ghep_noi_va_dieu_khien_thiet_bi_ngoai_vi.pdf