Ứng dụng KIT 8051 dùng để chuyển đổi A/D-D/A, chương 4

Chia sẻ: Nguyen Van Dau | Ngày: | Loại File: PDF | Số trang:15

0
62
lượt xem
11
download

Ứng dụng KIT 8051 dùng để chuyển đổi A/D-D/A, chương 4

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bộ đệm truyền dữ liệu: Bộ đệm 8 Bít, 2 chiều, 3 trạng thái dùng để giao tiếp 8255 với CPU. Dữ kiện được phát hay nhận bởi bộ đệm khi thực hiện lệnh IN, OUT bởi CPU. Các từ điều khiển cũng truyền qua dữ kiện. Điều khiển Nhóm A Đệm dữ kiện Nhóm A Cửa A Nhóm A Cửa C Phần cao Nhóm B Cửa C Phần thấp

Chủ đề:
Lưu

Nội dung Text: Ứng dụng KIT 8051 dùng để chuyển đổi A/D-D/A, chương 4

  1. Chöông 4 GIAO TIEÁP NGOAÏI VI 8255A PPI 8255A (PROGRAMABLE PARALLEL INTERFACE) I – TOÅNG QUAÙT: 1 – Boä ñeäm truyeàn döõ lieäu: Boä ñeäm 8 Bits, 2 chieàu, 3 traïng thaùi duøng ñeå giao tieáp 8255 vôùi CPU. Döõ kieän ñöôïc phaùt hay nhaän bôûi boä ñeäm khi thöïc hieän leänh IN, OUT bôûi CPU. Caùc töø ñieàu khieån cuõng truyeàn qua döõ kieän. Ñieàu khieån Nhoùm A I/O Nhoùm A Cöûa A PA0-DA7 Ñeäm Nhoùm A döõ kieän Cöûa C Phaàn cao I/O Nhoùm B PC4-PC7 Cöûa C Phaàn thaáp Kieåm I/O soaùt ñoïc Ñieàu khieån Nhoùm B ghi nhoùm B Cöûa B PC0-PO3 I/O PB0-PB7 Hình 3.1 Caáu truùc khoái cuûa 8255
  2. 2 – Phaàn kieåm soaùt ñoïc ghi: Chöùc naêng cuûa khoái naøy laø kieåm soaùt taát caû caùc söï truyeàn ñaït beân trong vaø beân ngoaøi cuûa töø ñieàu khieån vaø döõ kieän. Noù nhaän ngoõ vaøo töø tuyeán ñòa chæ vaø söï ñieàu khieån cuûa CPU, phaùt ra caùc leänh caàn thieát cho caû hai nhoùm A vaø B. CS: ngoõ vaøo = 0 cho pheùp truyeàn tin giöõa 8255 vaø CPU. RD: = 0 cho pheùp 8255 gôûi döõ kieän ñeán CPU treân tuyeán döõ kieän chuû yeáu laø cho pheùp CPU ñoïc döõ kieän töø 8255. WR=0 – CPU töø ñieàu khieån hay döõ kieän ra 8255. A0 A1 Choïn cöûa 0 0 Cöûa A 0 1 Cöûa B 1 0 Cöûa C 1 1 Cöûa ñieàu khieån RESET: =1 xoùa caùc thanh ghi beân trong goàm thanh ghi ñieàu khieån vaø caùc cöûa A, B, C ôû mode nhaän. 3 – Ñieàu khieån nhoùm A vaø B: Caáu hình hoaït ñoäng cuûa moãi nhoùm ñöôïc laäp trình bôûi phaàn meàm, chuû yeáu laø CPU xuaát phaùt töø ñieàu khieån ñeán 8255. Töø ñieàu khieån goàm caùc thoâng tin nhö cheá ñoä (mode), bit set, bit reset, v.v … seõ khôûi ñoäng caáu hình hoaït ñoäng cuûa 8255. Thanh ghi töø ñieàu khieån chæ coù theå vieát vaøo maø khoâng ñoïc ra. 4 – Caùc cöûa A, B, C: 8255 goàm 3 cöûa A, B vaø C. Moãi cöûa goàm 8 bits. Caùc cöûa naøy coù theå ñöôïc laäp trình bôûi phaàn meàm ñeå coù theå hoaït ñoäng ôû cheá ñoä thích hôïp.
  3. Cöûa A: goàm boä ñeäm, caøi ngoõ ra 8 bits vaø caøi ngoõ vaøo 8 bits. Cöûa B: goàm boä ñeäm, caøi ngoõ ra 8 bits vaø caøi ngoõ vaøo 8 bits. Cöûa C: ñeäm vaø caøi ngoõ ra 8 bits vaø ñeäm 8 bits ngoõ vaøo (khoâng caøi). Cöûa C coù theå chia laøm 2 phaàn, moãi phaàn 4 bits cho ñieàu khieån mode. Moãi phaàn ñöôïc duøng keát hôïp vôùi cöûa A hay B taïo neân caùc tín hieäu ñieàu khieån. II – MOÂ TAÛ CHI TIEÁT: 1 – Choïn cheá ñoä (Mode): Coù 3 cheá ñoä hoaït ñoäng cô baûn thích hôïp cho phaàn meàm: Mode 0 : Vaøo/ra cô baûn Mode 1 : Vaøo/ra “baét tay” (chæ cho pheùp 1 trong chieàu) Mode 2 : Truyeàn döõ kieän hai chieàu Khi RESET, taát caû caùc cöûa ñöôïc thieát laäp ôû cheá ñoä nhaäp (input), töùc laø caû 24 ñöôøng ñeàu ôû 3 traïng thaùi. Sau khi RESET 8255 coù theå duy trì ôû cheá ñoä nhaäp maø khoâng caàn khôûi ñoäng gì theâm. Trong khi thöïc hieän chöông trình heä thoáng, coù theå choïn baát kyø mode naøo baèng caùch xuaát ñeán 8255 töø ñieàu khieån. Ñieàu naøy cho pheùp chæ caàn moät 8255 maø coù theå phuïc vuï nhieàu kieåu thieát bò ngoaïi vi. Caùc cheá ñoä cöûa A vaø B coù theå ñònh nghóa rieâng bieät. Coøn cuûa C ñöôïc chia laøm hai phaàn cho hai nhoùm tuøy yeâu caàu ñònh nghóa cheá ñoä cöûa A vaø B. Ta coù töø ñieàu khieån cho 8255 nhö sau: (trang sau). 2 – Ñaëc tính xoùa/thieát laäp bit cho cöûa C khi noù duøng laøm tín hieäu traïng thaùi/ñieàu khieån cho cöûa A/B: Ta duøng leänh OUT xuaát ra töø moät ñieàu khieån, trong ñoù bit D7 = 0.
  4. D D D D D D D D 7 6 5 4 3 2 1 0 Nhoùm B 1:in Mode set flag Cöûa C(phaàn thaáp) 0: out 1-active Cöûa B 1:in 0:out Choïn cheá ñoä 0:mode 0 1: mode 1 NhoùmA Cöûa C 1:in (phaàn cao) 0:out Cöûa A 1: in 0: out 00: mode 0 Choïn mode 01: mode 1 1X: mode 2 Hình 3.2 Khi choïn mode cho port A, caùc bit D3, D4, D5 khoâng coøn yù nghóa nöõa. Luùc ñoù cöûa A laø hai chieàu, coøn phaàn cao cöûa C seõ laøm tín hieäu ñieàu khieån vaø traïng thaùi cho cöûa A. (Bitset vaø reset flag), phaàn coøn laïi cuûa ñieàu khieån coù yù nghóa nhö sau: D D D D D D D D 7 6 5 4 3 2 1 0
  5. x x x Bit set / Reset 0: Reset 1:set Bit select Bit set / Reset fleg 0 - active 01010101 00110011 00001111 01234567 Hình 3.3 Moãi laàn xuaát ra moät töø ñieàu khieån ñeán 8255 vôùi D7 = 0, chæ taùc ñoäng ñeán 1 bit cuûa cöûa C (ñöôïc choïn bôûi Bit select). 3 – Chöùc naêng kieåm soaùt ngaét quaõng: Khi 8255 ñöôïc laäp trình ôû mode 1 hay 2, caùc tín hieäu ñieàu khieån ñöôïc cung caáp coù theå ñöôïc duøng ñeå yeâu caàu ngaét quaõng CPU. Tín hieäu yeâu caàu ngaét quaõng phaùt ra töø cöûa C coù theå bò caám hay cho pheùp baèng caùch set hay reset flip-flop INTE töông öùng, duøng chöùc naêng set/reset bit cuûa cöûa C. Chöùc naêng naøy cho pheùp CPU caám hay cho pheùp caùc thieát bò I/O ñaõ xaùc ñònh ngaét quaõng CPU maø khoâng laøm aûnh höôûng caùc thieát bò khaùc trong caáu truùc ngaét quaõng. III – CHEÁ ÑOÄ HOAÏT ÑOÄNG: 1 – Mode 0 (Vaøo/ra cô baûn) Khoâng coù “baét tay”, döõ kieän ñöôïc ghi vaø ñoïc moät caùch dôn giaûn ñeán phöùc taïp hay töø 1 cöûa ñaõ chæ ra. Caùc ñaëc tính cô baûn ôû mode 0:
  6.  2 cöûa 8 bits vaø 2 cöûa 4 bits  Baát kyø cöûa naøo cuõng coù theå laø ra hay vaøo  Ngoõ ra ñöôïc caøi  Ngoõ vaøo khoâng caøi  Cho pheùp 16 daïng vaøo / ra ôû mode Ví duï : Töø ñieàu khieån 83h xaùx ñònh cöûa A ra, B vaøo. Phaàn cao cuûa C : ra, phaàn thaáp cuûa C : vaøo. 2 – Mode 1 (Vaøo/ra coù baét tay): ÔÛ mode 1, cöûa A vaø B duøng nhöõng ñöôøng ôû cöûa C ñeå phaùt hay nhaän caùc tín hieäu baét tay. Ñònh nghóa caùc tín hieäu baét tay cho phaàn nhaäp:  STB (Strobe Input): möùc thaáp ôû ngoõ vaøo naøy naïp döõ lieäu vaøo 8255.  IBF (Input Buffer Full): ngoõ ra =1 ñeå thoâng baùo döõ kieän ñaõ ñöôïc naïp vaøo maïch caøi nhaäp Noùi caùch khaùc, möùc thaáp cuûa STB seõ thieát laäp IBF = 1, vaø IBF bò xoùa bôûi caïnh leân RD. * INTR (Interput Request): ngoõ ra = 1 ñeå yeâu caàu ngaét khoaûng CPU, INTR ñöôïc set bôûi STB = 1 vaø IBF = 1, INTR = 1. INTR bò reset bôûi caïnh xuoáng RD INTR A kieåm soaùt bôûi bit set / reset PC 4 INTR B kieåm soaùt bôûi bit set / reset PC 2
  7. Hình 3.4
  8. Ñònh nghóa tín hieäu ñieàu khieån phaàn xuaát:  OBF (Output Buffer Full FF) Ngaõ ra xuoáng 0 ñeå baùo laø CPU ñaõ ghi thoâng tin ra cöûa xaùc ñònh. OBF FF ñöôïc set bôûi caïnh leân cuûa xung WR töø CPU vaø bò reset bôûi ACK = 0 do ngoaïi vi (töùc laø ôû möùc khoâng tích cöïc). *ACK (Acknowledge Input) Möùc thoâng baùo cho 8255 bieát thoâng tin töø cöûa A hay B ñaõ nhaän bôûi ngoaïi vi. *INTR (Interput Request) Möùc 1 ôû ngoõ ra duøng ñeå yeâu caàu ngaét quaõng CPU khi ngoaïi vi ñaõ nhaän döõ kieän phaùt bôûi CPU. INTR set bôûi ACK = 1, OBF = 1 vaø INTE = 1 INTR bò xoùa bôûi caïnh xuoáng xung WR INTE A kieåm soaùt bôûi bit set / reset PC 6 INTE B kieåm xoaùt bôûi bit set / reset PC
  9. Hình 3.5
  10. Caùc keát hôïp cuûa mode 1: Cöûa A : vaøo, B : ra töø ñieàu khieån Cöûa A : ra, B : vaøo töø ñieàu khieån 1: in PC 4,5 0: out 1 0 1 0 1/ x x x 0 1 0 1 0 1/0 1 1 x 1: in PC 4,5 0: out Hình 3.6 3 – Mode 2 : Xuaát nhaäp 2 chieàu baét tay Caùc ñaëc tính cô baûn cuûa mode 2: * Chæ duøng cho nhoùm A * 1 cöûa 2 chieàu 8 bits (A) vaø moät cöûa ñieàu khieån 5 bits (C) cho cöûa A * Caû ra / vaøo ñeàu coù caøi Ñònh nghóa caùc tín hieäu ñieàu khieån xuaát nhaäp 2 chieàu: * INTR (Interput Request): Möùc 1 ôû ngoõ ra naøy baùo cho CPU bieát yeâu caàu ngaét khoaûng cho pheùp nhaäp hay xuaát (chung). * Pheùp xuaát : OBF (Output Buffer Full FF) output OBF xuoáng 0 ñeå baùo cho ngoaïi vi bieát CPU ñaõ ghi döõ kieän ra cöûa ACK (Acknowledge) Input
  11. Möùc 0 töø ngoaïi vi cho pheùp boä ñeäm ra 3 traïng thaùi cuûa cöûa A môû ñeå phaùt ra döõ kieän, boä ñeäm ra ôû 3 traïng thaùi. INTE 1 (INTE FF lieân quan vôùi OBF) Kieåm soaùt bôûi bit set / reset PC 6 * Pheùp nhaäp: STB: Möùc thaáp ôû ngoõ vaøo naøy caøi data vaøo maïch caøi ngoõ nhaäp. IBF: (Input Buffer Full FF) output Möùc 1 thoâng baùo cho CPU bieát döõ kieän ñaõ nhaäp vaøo maïch caøi nhaäp INTE 2 (lieân quan vôùi IBF) Kieåm soaùt bôûi bit set/reset PC 4 Hình 3.7 Keát hôïp mode 2 vaø caùc mode khaùc:
  12. Mode 2 vaø mode 0 (in) : töø ñieàu khieån : 11 XXX 01 1/0 Mode 2 vaø mode 1 (out) : töø ñieàu khieån : 11 XXX 01 1/0 Mode 2 vaø mode 1 (in) : töø ñieàu khieån : 11 XXX 00 X Mode 2 vaø mode 0 (in) : töø ñieàu khieån : 11 XXX 10 X Söï keát hôïp caùc mode ñaëc bieät: Coù moät soá toå hôïp caùc mode maø khoâng phaûi taát caû cöûa C ñeàu duøng laøm ñieàu khieån hay traïng thaùi, caùc bit coøn laïi ñöôïc duøng nhö sau: Neáu laäp trình laø ngoõ vaøo: Caùc bit ôû phaàn cao cöûa C (C4-C7) phaûi ñöôïc truy xuaát rieâng reõ duøng chöùc naêng bit set / reset. Caùc bit ôû phaàn thaáp cöûa C (C0-C3) coù theå truy xuaát duøng chöùc naêng bit set/reset thay truy xuaát nhö nhoùm 3 baèng caùch ghi ra cöûa C. 4 – Ñoïc traïng thaùi cöûa C: ÔÛ mode o, cöûa C truyeàn döõ kieän ñeán hay töø ngoaïi vi 8255 ñöôïc laäp trình ôû mode 1 hay 2, cöûa C trôû neân caùc tính ñieàu khieån baét tay cho cöûa A vaø C. Ñoïc noäi dung cöûa C cho pheùp ngöôøi laäp trình kieåm tra traïng thaùi cuûa moãi thieát bò ngoaïi vi thay chieàu chöông trình töông öùng. Khoâng coù leänh ñaëc bieät ñeå ñoïc thoâng tin traïng thaùi töø C. Pheùp ñoïc bình thöôøng cuûa C duøng ñeå thöïc hieän chöùc naêng naøy. D7 D6 D5 D4 D3 D2 D1 D0 I/ I/ IBF INTE INTR INTE IBFB INTR O O A A A B B
  13. NHOÙM A NHOÙM B MODE 1 (Input) OBF INTE I/O I/ INTR IOB1 OBIB INTR A A O A B B NHOÙM A NHOÙM B MODE 1 (Output) OBF INTE IBF INTE INTR A A 2 A NHOÙM A NHOÙM B Ñònh nghóa bôûi choïn mode 0 hay 1 MODE 2

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản