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 đủ
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:
giao_trinh_ghep_noi_va_dieu_khien_thiet_bi_ngoai_vi.pdf

