Thiết kế thiết bị thực tập vi xử lý 8085

LỜI MỞ ĐẦU Sự phát triển mạnh mẽ của công nghệ điện tử nó chung và vi xử lý nói riêng đã đem lại nhiều ứng dụng trong mọi mặt. Cùng với sự phát triển đó thì nhu cầu tìm hiểu, học tập vi xử lý được đòi hỏi ngày càng cao. Các bộ thí nghiệm vi xử lý đã được chế tạo để phục vụ cho mục đích học tập và thí nghiệm. Dựa trên các kết quả thí nghiệm để cho ra những ứng dụng thực tế là ưu điểm mạnh của phương pháp học này. Các bộ thí nghiệm vi xử lý đã được chế tạo nhiều tuy nhiên khó có thể đáp ứng đủ nhu cầu tìm hiểu, ứng dụng, và học tập ngày càng cao của giới sinh viên và kỹ sư. Do vậy đi thực hiện đề tài “ Thiết kế thiết bị thực tập vi xử lý 8085” ngoài mục đích bổ sung thêm những vấn đề mà các thiết bị thực tập trước chưa đáp ứng được thì thực hiện đề tài này như là một cách để người thực hiện có dịp tiếp thu thêm một lượng liến thức mới bổ ích cũng như tự khẳng định giá trị một phần trong những kiến thức tiếp thu được sau 5 năm học tập. Những thiếu sót trong khi thực hiện đề tài là điều khó có thể tránh khỏi, rất mong nhận được ý kiến đóng góp của các quý thầy cô, các anh chị và các bạn.

doc137 trang | Chia sẻ: banmai | Lượt xem: 1633 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Thiết kế thiết bị thực tập vi xử lý 8085, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
g ôû hai cheá ñoä: khoùa ngoaøi hai phím (2-key lockout) hoaëc xoay voøng N phím (N-key rollover). Söï goõ phím seõ ñöôïc giaûi naûy vaø maõ phím seõ ñöôïc löu vaøo boä nhôù FIFO beân trong. 8279 coù 8 oâ nhôù FIFO (first-in first-out) duøng ñeå löu tröõ maõ phím. Khi ñaõ löu tröõ heát maõ cuûa 8 phím thì neáu coù phím ñöôïc taùc ñoäng thì maõ cuûa phím seõ ñöôïc löu ñeø leân oâ nhôù ñaàu cuûa boä nhôù FIFO. Moãi laàn goõ phím seõ taïo ra 1 tín hieäu ngaét ôû ngoõ ra IRQ neân thoâng thöôøng ngoõ ra naøy ñöôïc keát noái vôùi VXL ñeå thöïc hieän chöùc naêng quyeùt phím theo kieåu ngaét. Phaàn hieån thò cung caáp tín hieäu queùt hieån thò cho LED hay caùc loaïi hieån thò phoå bieán khaùc. Chöõ vaø soá hieån thò döôùi daïng LED chæ theå hieän ôû daïng cô baûn. 8279 coù 16 oâ nhôù RAM hieån thò 8 Bit duøng ñeå löu tröõ döõ lieäu hieån thò. 16 oâ nhôù 8 Bit naøy coù xaây döïng thaønh 2 toå hôïp 16x4bit. Phaàn hieån thò coù theå khôûi taïo ôû daïng ghi phaûi (right entry) hoaëc ghi traùi (left entry). Coù theå ñoïc hay ghi leân boä nhôù RAM hieån thò baèng caùch gôûi leänh töø VXL vaø ñòa chæ hieån thò coù theå taêng moät caùch töï ñoäng. MO TAÛ PHAÀN CÖÙNG. 8279 coù 40 chaân daïng voû DIP. Chöùc naêng cuûa caùc chaân ñöôïc moâ taû ôû baûng sau: Teân chaân Soá chaân Moâ taû vaø chöùc naêng DB0 – DB7 8 Bi-directional databus : Ñöôøng Bus döõ lieäu 2 chieàu. Taát caû caùc leänh vaø döõ lieäu giöõa CPU vaø 8279 ñöôïc truyeàn treân nhöõng ñöôøng döõ lieäu naøy. CLK 1 Clock input : Ngoõ vaøo xung clock. Ngoõ vaøo xung clock cuûa 8279 vôùi taàn soá toái ña laø 3,125Mz. RESET 1 Reset in . Duøng ñeå ñaët laïi traïng thaùi laøm vieäc cuûa 8279 khi ngoõ vaøo naøy ôû möùc cao (high level). Sau khi ñöôïc reset 8279 coù theå laøm vieäc ôû cheá ñoä: Hieån thò 16 kyù töï loái vaøo traùi. Laäp maõ queùt phím khoùa ngoaøi hai phím. CS\ 1 Chip select: Taùc ñoäng möùc thaáp, cho pheùp choïn 8279 thöïc hieän caùc chöùc naêng keát noái vôùi CPU ñeå truyeàn vaø nhaän döõ lieäu. A0 1 Buffer address: Ñöôøng ñòa chæ naøy thöôøng ñöôïc keát noái vôùi ñòa chæ A0 cuûaVXL duøng ñeå phaân bieät leänh hay döõ lieäu. Khi A0 = [1 ] thì tín hieäu vaøo hay ra ñöôïc hieåu laø leänh ñieàu khieån (command) hay traïng thaùi (Status). Khi A0 = 0 thì cho bieát tín hieäu ñoù laø döõ lieäu. RD\,WR\ 2 Input/Output Read and Write: Cho pheùp ñoïc hay ghi döõ lieäu leân bus döõ lieäu, thanh ghi ñieàu khieån hay boä nhôù RAM hieån thò. IRQ 1 Interrupt Request: Ñöôøng tín hieäu yeâu caàu ngaét (output). Ngoõ ra cuûa chaân naøy seõ ôû möùc cao neáu coù döõ lieäu ôû trong boä nhôù FIFO hay SensorRAM, ngoõ ra naøy seõ ôû möùc thaáp moãi khi coù söï ñoïc boä nhôù FIFO/Sensor RAM vaø trôû laïi möùc cao khi döõ lieäu ñaõ chöùa trong RAM. Vss,Vcc 2 Caáp nguoàn +5v vaø 0v cho 8279. SL0 – SL3 4 Scan lines: 4 ñöôøng can lines naøy coù theå giaûi maõ ra 16 ñöôøng hay maõ hoùa thaønh 1 ñöôøng, ñöôïc duøng ñeå queùt phím hay ma traän caûm bieán vaø hieån thò. RL0 – RL7 8 Return Lines : Ñöôïc noái vôùi caùc ñöôøng Scan lines thoâng qua caùc phím hay coâng taéc caûm bieán. Ôû cheá ñoä queùt phím seõ keát hôïp vôùi caùc ñöôøng Scan lines taïo thaønh maõ cuûa phím ñöôïc nhaán. Shift CNTL/STB 1 1 Shift, Control / Strobed input Mode : Trong cheá ñoä queùt phím, möùc logic cuûa töøng ngoõ vaøo naøy seõ ñöôïc löu tröõ vôùi vò trí cuûa phím ñeå taïo ra 1 giaù trò cuûa phím ñöôïc nhaán ( maõ phím ) . OutA0 – OutA3. OutB0 – OutB3 4 4 Outputs : Ñaây laø hai port ngoõ ra cuûa thanh ghi hieån thò 16x4 Bit. Döõ lieäu töø nhöõng thanh ghi naøy seõ ñöôïc ñöa ra ñoàng boä keát hôïp vôùi caùc ñöôøng queùt Scan lines (SL0 – SL3) ñeå ña hôïp thaønh soá hieån thò. Hai ngoõ ra 4 Bit naøy coù theå xoùa moät caùch ñoäc laäp vaø coù theå keát hôïp vôùi nhau ñeå taïo thaønh 1 ngoõ ra 8 Bit. BD\ 1 Blanking display :Duøng ñeå xoùa hieån thò trong quaù trình chuyeån ñoåi giöõa caùc soá hay khi gaëp leänh xoùa hieån thò. MO TAÛ CHÖÙC NAÊNG (FUCTIONAL DESCRIPTION) Ñöa döõ lieäu vaøo vaø hieån thò laø moät phaàn khoâng theå thieáu trong vieäc thieát keá moät heä thoáng VXL. Heä thoáng thieát keá caàn phaûi ñöôïc keát noái sao cho coù theå kieåm soaùt ñöôïc caùc chöùc naêng ñoù maø khoâng caàn phaûi saép xeáp moät heä thoáng lôùn treân CPU. 8279 seõ thöïc hieän chöùc naêng naøy cho VXL 8 Bit. 8279 coù hai phaàn : baøn phím vaø hieån thò. 8279 ñöôïc thieát keá noái tröïc tieáp vôùi heä thoáng Bus cuûa VXL. CPU coù theå laäp trình caùc Mode hoaït ñoäng cho 8279 baèng caùch gôûi döõ lieäu ñieàu khieån ra thanh ghi ñieàu khieån. Caùc Mode ñoù laø: Input Modes. Queùt phím (Scanned Keyboard): queùt baøn phím vôùi maõ hoùa (8x8 phím) hay giaûi maõ (4x8 phím) caùc ñöôøng queùt. Moät phím ñöôïc nhaán seõ taïo ra moät maõ 6 Bit, maõ naøy keát hôïp vôùi traïng thaùi cuûa phím Shift vaø Control cho ra maõ phím vaø ñöôïc löu giöõ trong boä nhôù FIFO. Caùc phím seõ töï ñoäng choáng doäi khoaûng 10,3ms ñoái vôùi cheá ñoä khoùa ngoaøi hai phím (2 key lockout) hay xoay voøng N phím (N key rollover). Scanned sensor matric: Queùt ma traän caûm bieán vôùi maõ hoùa (8x8 matrix switches) hay giaûi maõ (4x8 matrx switches) caùc ñöôøng queùt. Strobed Input. Ouput Modes. Hieån thò ña hôïp 8 hay 16 kyù töï. Coù theå thöïc hieän hieån thò theo kieåu vaøo traùi hay vaøo phaûi. Nhöõng neùt ñaëc bieät cuûa 8279 : Caùc Mode ñöôïc laäp trình töø CPU. Clock prescaler : Boä ñaët tröôùc tæ leä xung CLK. Ngoõ ra chaân ngaét seõ ñöa tín hieäu tôùi CPU khi coù phím nhaán hay coù döõ lieäu töø caûm bieán. 8 byte cuûa boä nhôù FIFO duøng ñeå löu tröõ maõ phím. 16 byte cuûa boä nhôù RAM hieån thò coù theå ghi hay ñoïc töø CPU. MO TAÛ SÔ ÑOÀ KHOÁI CUÛA 8279. A. I/O Control and Data buffers : Khoái ñieàu khieån I/O duøng caùc ñöôøng CS\, Ao, RD\ vaø WR\ ñeå ñieàu khieån döõ lieäu vaøo vaø ra caùc boä ñeäm vaø thanh ghi khaùc nhau beân trong. Taát caû data vaøo ra 8279 ñöôïc cho pheùp bôûi CS\. Ao ñöôïc chæ ñònh töø VXL. Khi Ao ôû möùc 1 seõ cho bieát thoâng tin laø leänh hay traïng thaùi. Khi Ao ôû möùc 0 seõ cho bieát thoâng tin laø döõ lieäu. RD\ vaø WR\ cho pheùp ñoïc vaø ghi döõ lieäu töø data bus hay caùc thanh ghi beân trong thoâng qua caùc boä ñeäm döõ lieäu (data buffers). Khoái ñeäm döõ lieäu ñöôïc caáu taïo 2 chieàu (bi – directional) laø phaàn noái giöõa bus döõ lieäu ngoaøi vaø bus data trong. B. BOÄ DAËT TRÖÔÙC TÆ LEÄ XUNG CLOCK (CLOCK PRESCALERS ) : Duøng ñeå chia tröôùc xung clock ñöôïc ñöa töø heä thoáng xung clock ngoaøi baèng caùch laäp trình soá chia (töø 2 ñeán 31) ñeå taïo ra 1 xung coù taàn soá 100khz. C. KHOÁI TAÏO TÍN HIEÄU QUEÙT ( SCAN GENERATOR) : Khoái taïo tín hieäu queùt chia ngoõ ra xung clock ôû boä chia tröôùc xung clock (Clock prescalers ) treân danh nghóa laø 100khz bôûi 64 & ñoàng boä vôùi xung Clock 8Mhz beân trong heä thoáng taïo ra xung queùt cho pheùp 1,56khz. Xung naøy cho pheùp caùc boä ñeám queùt thöïc hieän nhö laø 1 boä ñeám nhò phaân 4 Bit. Hai bit thaáp cuûa boä ñeám seõ ñöôïc giaûi maõ ra 4 ñöôøng. 1 bit trong thanh ghi Mode Set xaùc ñònh hoaëc laø ngoõ ra boä ñeám (maõ hoùa caùc ñöôøng queùt) hoaëc laø ngoõ ra boä giaûi maõ (giaûi maõ ñöôøng queùt) laø ngoõ ra cuûa SL0 – SL3. Khi söû duïng maõ hoùa caùc ñöôøng queùt thì ñoøi hoûi phaûi duøng caùc thieát bò giaûi maõ (1 ra 8 ñöôøng hay 1 ra 16 ñöôøng ) beân ngoaøi. Chuù yù raèng caû ma traän phím vaø hieån thò duøng chung caùc ngoõ ra boä ñeám queùt. Neáu baøn phím hoaït ñoäng ôû cheá ñoä giaûi maõ caùc ñöôøng queùt thì phaàn hieån thò cuõng vaäy cho neân noù chæ hieån thò 4 kyù töï ñaàu trong boä nhôù RAM. Khoái naøy cuõng taïo ra tín hieäu xoùa hieån thò BD. Tín hieäu naøy seõ ñöôïc xaùc nhaän ôû möùc thaáp moãi khi coù söï chuyeån ñoåi cuûa boä ñeám tín hieäu queùt. NHOÙM HIEÅN THÒ Nhoùm hieån thò bao goàm khoái ñieàu khieån hieån thòvaø khoái RAM hieån thò, chöùc naêng cuûa noù laø cung caáp döõ lieäu hieån thò tôùi boä hieån thò ña hôïp ñoàng boä vôùi khoái taïo tín hieäu queùt ( Scan generator). Moät cô caáu cung caáp tín hieäu xoùa boä nhôù RAM vaø cho pheùp VXL chuû vieát ñoäc laäp tôùi 4 Bit cao hay 4 Bit thaáp. KHOÁI ÑIEÀU KHIEÅN HIEÅN THÒ ( DISPLAY CONTROL ) : Khoái ñieàu khieån hieån thò ñieàu khieån laáy döõ lieäu vaø hay ñöa döõ lieäu ra khoûi boä nhôù RAM hieån thò. Hai boä ñeám seõ cung caáp ñòa chæ RAM hieån thò: bao goàm ñòa chæ cuûa boä ñeám ñoïc vieát vaø ñòa chæ cuûa boä ñeám hieån thò. Ñòa chæ cuûa boä ñeám ñoïc / vieát seõ ñöôïc taûi khi VXL chuû vieát tôùi ñòa chæ ñoïc RAM hieån thò hoaëc ñòa chæ thanh ghi ñieàu khieån vieát RAM hieån thò ( Display RAM Write Address ). Döõ lieäu ñöôïc ñoïc hay vieát tieáp theo cuûa VXL chuû (A0 = 0) ñöôïc laáy ra hay ñöa vaøo töø ñòa chæ RAM hieån thò giöõ trong boä ñeám. Neáu tính naêng töï ñoäng ñöôïc cho pheùp thì ñòa chæ seõ taêng moät caùch töï ñoäng sau moãi chu kyø ñoïc hay vieát. Vieäc cho pheùp ghi tôùi 4 bit cao hay 4 bit thaáp cuûa boä nhôù RAM hieån thò coù theå khoâng thöïc hieän moät caùch ñoäc laäp, ñieàu naøy cho pheùp VXL chuû vieát döõ lieäu hieån thò leân Nibble Boundaries. Nhôø boä ñeám queùt taêng giaù trò ñeám maø boä ñeám ñòa chæ hieån thò seõ cho pheùp töøng böôùc choïn boä nhôù RAM hieån thò nhaèm cung caáp döõ lieäu hieån thò ñeán boä ña hôïp hieån thò. Chu kyø cuûa boä ñeám ñòa chæ hieån thò coù theå laø 16, 8 hay 4 tuøy thuoäc vaøo caùc Modes hieån thò ñöôïc ñaët laø:16 hay 8 kyù töï hay cho pheùp giaûi maõ caùc ñöôøng queùt ( secoded scanning ). Caùc modes nhö taêng töï ñoäng loái vaøo traùi hay phaûi ñeàu thöïc hieän baèng vieäc chænh boä ñeám naøy( The display address counter ). Khoái ñieàu khieån hieån coøn chöùa logic xoùa hieån thò. VXL chuû coù theå vieát maõ leänh ñeán thanh ghi leänh xoùa (clear command register) ñeå thöïc hieän vieäc nhaän döõ lieäu vaøo xoùa RAM hieån thò. Döõ lieäu trong RAM hieån thò seõ chöùa caùc giaù trò logic khaùc nhau tuøy thuoäc vaøo maõ leänh (code) . Logic xoùa hieån thò duøng boä ñeám ñòa chæ ñoïc/vieát (read/write address counter) ñeå taùc ñoäng vaøo RAM. RAM HIEÅN THÒ : Khoái naøy chöùc 16 oâ nhôù RAM hieån thò 8 bit ñöôïc xaây döïng töø hai boä nhôù RAM hieån thò 16x4bit duøng chung ñòa chæ vaøo nhöng coù ngoõ vaøo cho pheùp vieát ñoäc laäp nhau. Khoái ñieàu khieån hieån thò seõ cung caáp ñòa chæ vaø cho pheùp vieát döõ lieäu ngoõ vaøo. NHOÙM BAØN PHÍM Nhoùm baøn phím bao goàm khoái choáng doäi (Deboune), khoái ñieàu khieån, khoái FIFO /RAM, khoái FIFO/RAM STATUS vaø khoái ñieàu khieån xoùa. KHOÁI CHOÁNG DOÄI VAØ ÑIEÀU KHIEÅN : Döõ lieäu ñöa vaøo khoái keyboard thoâng qua 8 ñöôøng Return lines RL[0..7} vaø khi caùc ngoõ vaøo ñoù coi nhö taùc ñoäng möùc thaáp thì moãi bit seõ ñöôïc chuyeån ñoåi. ÔÛcheá ñoä queùt ngoõ vaøo(ma traän phím hay ma traän caûm bieán) caùc ñöôøng return lines giöõ laïi traïng thaùi cuoái cuøng cuûa boä ñeám queùt (scan counter). ÔÛ modes baøn phím, ngoõ vaøo seõ ñöôïc choáng doäi baèng caùch so saùnh giaù trò löu giôø hieän taïi ôû ngoaøi vaøo vôùi giaù trò ñöôïc löu giöõ ôû chu kyø tröôùc ñoù (8 can counts cho maõ hoùa caùc ñöôøng queùt vaø 4 can couts cho giaûi maõ caùc ñöôøng queùt). Soá ñeám ñöôøng queùt hieän taïi, keát hôïp vôùi soá ñöôøng return lines taùc ñoäng (seõ cho ra vò trí cuûa phím aán) , traïng thaùi cuûa phím Shift vaø Ctrl seõ ñöôïc ñöa vaøo boä nhôù FIFO. ÔÛ trong Mode ma traän caûm bieán (Sensor matrix mode) khoâng coù söï choáng doäi (debounce) vaø vieäc ghi nhaän giaù trò ngoõ vaøo ñöôïc ghi vaøo boä nhôù FIFO/RAM taïi ñòa chæ hieän taïi cuûa ñöôøng queùt. FIFO/RAM seõ ghi giaù trò döõ lieäu môùi vaøo oâ nhôù moãi khi thöïc hieän pheùp queùt. ÔÛ Mode strobed input giaù trò cuûa söï chuyeån ñoåi caùc ñöôøng return lines seõ ñöôïc ñöa vaø boä nhôù FIFO khi coù caïnh leân taùc ñoäng ñeán ngoõ vaøo cuûa CNTL input. FIFO/RAM: Boä nhôù FIFO/RAM chöùa 8 oâ nhôù 8 bit FIFO (First in First out). Moãi giaù trò môùi ñöa vaøo ñöôïc naïp vaøo boä nhôù FIFO vaø ñoïc moät caùch tuaàn töï trong cuøng moät nôi maø boä nhôù FIFO ñöôïc ñaåy vaøo. LAÄP TRÌNH CHO 8279 Ñeå coù khaû naêng söû duïng thaønh thaïo 8279, tröôùc tieân phaûi hieåu roõ baûn chaát caùc töø ñieàu khieån cuûa 8279. 8279 coù taát caû taùm töø ñieàu khieån, tuøy theo muïc ñích söû duïng maø seõ choïn töø ñieàu khieån thích hôïp. Ñaët Mode hieån thò / baøn phím. MSB LSB Maõ 0 0 0 D D K K K Trong ñoù, DD laø Mode hieån thò vaø KKK laø Mode baøn phím : DD 0 0 hieån thò 8 kí töï, 8 bit - ghi traùi. 0 1 hieån thò 16 kí töï, 8 bit - ghi traùi. 1 0 hieån thò 8 kí töï, 8 bit - ghi phaûi. 1 1 hieån thò 16 kí töï, 8 bit - ghi phaûi. YÙnghóa cuûa Ghi traùi (Left Entry) vaø Ghi phaûi (Right Entry) ñöôïc trình baøy hình 5.25. Chuù yù raèng khi queùt coù giaûi maõ ñöôïc ñaët trong Mode baøn phím, hieån thò seõ bò giaûm xuoáng 4 kí töï khoâng phuï thuoäc vaøo vieäc ñaët Mode hieån thò. KKK 0 0 0 baøn phím coù laäp maõ - khoùa ngoaøi 2 phím. 0 0 1 baøn phím queùt coù giaûi maõ - khoùa ngoaøi 2 phím. 0 1 0 baøn phím queùt coù laäp maõ - xoay voøng N phím. 0 1 1 baøn phím queùt coù giaûi maõ - xoay voøng N phím. 1 0 0 ma traän caûm bieán, queùt coù laäp maõ. 1 0 1 ma traän caûm bieán, queùt coù giaûi maõ. 1 1 0 ngoõ vaøo Strob, queùt hieån thò coù laäp maõ. 1 1 1 ngoõ vaøo Strob, queùt hieån thò coù giaûi maõ. ÔÛ Mode laäp maõ, caùc ngoõ ra SL taùc ñoäng möùc cao vaø theo sau laø maõ bit nhò phaân töø 0 ñeán 7 hoaëc töø 0 ñeán 15, tuøy theo hieån thò 8 hoaëc 16 soá ñöôïc choïn. ÔÛ Mode giaûi maõ, caùc ngoõ ra SL taùc ñoäng möùc thaáp vaø chæ moät trong boán ngoõ ra ôû möùc thaáp taïi thôøi ñieåm baát kyø ñöôïc cho. Caùc ngoõ ra giaûi maõ laäp laïi maãu : 1110, 1101, 1011 vaø 0111. ÔÛ mode Strobe, moät xung taùc ñoäng möùc cao treân chaân CN/ST seõ Strobe döõ lieäu töø caùc chaân RL vaøo FIFO beân trong, nôi maø chuùng ñöôïc duy trì cho vi xöû lí Doïc FIFO / RAM caûm bieán : Maõ 0 1 0 AI X A A A X = khoâng quan taâm Töø ñieàu khieån naøy choïn ñòa chæ cuûa maõ phím caàn ñoïc trong RAM FIFO/ Caûm bieán. ÔÛ moát baøn phím coù queùt, côø taêng töï ñoäng AI (Auto - Inerement) vaø caùc bit ñòa chæ RAM (A A A) khoâng coøn khaû duïng. 8279 seõ töï ñoäng laùi tuyeán döõ lieäu cho moãi laàn ñoïc tieáp theo (Ao = 0) theo ñuùng trình töï maø ban ñaàu döõ lieäu ñöôïc nhaäp vaøo FIFO. Taát caû nhöõng laàn ñoïc tieáp theo seõ ñeán töø FIFO cho ñeán khi moät leänh khaùc ñöôïc taïo ra. ÔÛ moát ma traän caûm bieán, caùc it ñòa chæ RAM (A A A) choïn moät trong 8 haøng cuûa RAM caûm bieán. Neáu côø AI ñöôïc ñaët (AI = 1), moãi söï ñoïc keá tieáp seõ ñeán töø haøng tieáp theo cuûa RAM caûm bieán. Laäp trình xung ñoàng hoà : Maõ 0 0 1 P P P P P Taát caû caùc tín hieäu ñònh thôøi vaø ña hôïp cho 8279 ñöôïc phaùt ra bôûi moät boä ñaët tröôùc tæ leä (precaler) beân trong. Boä ñaët tröôùc chia xung ñoàng hoà beân ngoaøi (chaân 3) cho moät soá nguyeân coù theå laäp trình. caùc bit P P P P P quyeát ñònh giaù trò cuûa soá nguyeân naøy, trong phaïm vi töø 2 ñeán 31. Haõy choïn soá chia sao cho ñaït ñöôïc taàn soá 100 KHz. RAM LOCATION DISPLAY POSITION 0 (A) A B C D 1 (B) 2 (C) (A) REPRESENTS (D) 7 SEGMENTCODE FOR A 5 6 7 (a) Left Entry RAM LOCATION DISPLAY POSITION 0 (A) A B C D 1 (B) (A) REPRESENTS 3 (C) 7 SEGMENTCODE FOR A 4 (D) 5 6 (b) Right Entry Hình 5.25 : Moái lieân heä giöõa RAM 8279 vaø vò trí hieån thò Ñoïc RAM hieån thò Maõ 0 1 1 A1 A A A A Töø ñieàu khieån naøy choïn ñòa chæ cuûa byte döõ lieäu caàn ñoïc trong RAM hieån thò. Caùc bit ñòa chæ A A A A choïn moät trong 16 haøng cuûa RAM hieån thò.Neáu côø AI ñaët (AI = 1), ñòa chæ haøng naøy seõ ñöôïa taêng töï ñoäng sau moãi laàn ñoïc hoaëc ghi tieáp theo. Vì cuøng moät boä ñeám ñöôïc söû duïng cho caû hai hoaït ñoäng ñoïc vaø ghi. Töø leänh naøy ñaët ñòa chæ ñoïc hoaëc ghi keá tieáp vaø caûm nhaän moát töï ñoäng taêng cho caû hai hoaït ñoäng. Ghi vaøo RAM hieån thò Maõ 1 0 0 AI A A A A Töø ñieàu khieån naøy choïn ñòa chæ trong RAM hieån thò nôi caàn ghi döõ lieäu vaøo. Sau khi töø leänh vôùi Ao = 1 seõ ôû trong RAM hieän thò. Caùc chöùc naêng ñònh ñòa chæ vaø taêng töï ñoäng gioáng nhö ñoái vôùi ñoïc RAM hieån thò. Tuy nhieân töø leänh naøykhoâng aûnh höôûng ñeán nguoàn cuûa nhöõng laàn ñoïc döõ lieäu keá tieáp ; CPU seõ ñoïc baát kì RAM naøo (Hieån thò hoaëc FIFO / caûm bieán) ñöôïc neâu roõ sau cuøng, vieäc ghi vaøo RAM hieån thò, tuy nhieân seõ laøm thay ñoåi vò trí Ñoïc tieáp theo. Nhaáp nhaùy / Caám Ghi vaøo hieån thò Maõ 1 0 1 X IW IW BL BL Caùc bit IW coù theå ñöôïc söû duïng che nöûa byte A vaø nöûa byte B trong nhöõng öùng duïng ñoøi hoûi caùc coång hieån thò 4 bit taùch bieät. Baèng caùch ñaët côø IW (IW = 1) ñoái vôùi moät trong caùc coång, coång trôû neân ñöôïc ñaùnh daáu sao cho vieäc ghi vaøo RAM hieån thò töø CPU khoâng aûnh höôûng ñeán coång ñoù. Theá thì neáu moãi nöûa byte ñöôïc nhaäp moät boä giaûi maõ BCD, CPU coù theå ghi moät soá vaøo RAM hieån thò maø khoâng aûnh höôûng ñeán soá khaùc ñang ñöôïc hieån thò. Moät chuù yù quan troïng laø bit Bo töông öùng vôùi bit Do treân tuyeán döõ lieäu cuûa CPU, vaø bit A3 töông öùng vôùi bit D7. Neáu ngöôøi söû duïng muoán nhaáp nhaùy hieån thò, caùc côø Bl coù khaû duïng ñoái vôùi moãi nöûa byte. Leänh xoùa sau cuøng ñöôïc phaùt ra xaùx ñònh maõ ñöôïc söû duïng nhö moät “nhaáp nhaùy”. Maõ naøy ? taát caû baèng khoâng sau moät söï ñaët laïi. Chuù yù raèng caû hai côø BL phaûi ñöôïc ñaët ñeå nhaáp nhaùy moät hieån thò keát hôïp vôùi moät coång ñôn 8 bit. Xoaù Maõ 1 1 0 CD CD CD CF CA Caùc bit CD coù saün trong töø leänh naøy ñeå xoaù taát caû caùc haøng cuûa RAM hieån thò theo moät maõ coù theå choïn löïa ñöôïc nhö sau : CD CD CD 0 X taát caû baèng khoâng (X = khoâng quan taâm) 0 AB = 20H ( 0010 0000 ) 1 taát caû baèng 1 cho pheùp xoaù hieån thò khi = 1 (hoaëc bôûi CA =1) Trong suoát thôøi gian RAM hieån thò ñang bò xoùa( ~ 160mS), noù khoâng theå ñöôïc ghi vaøo. Bit coù troïng soá cao nhaát ( MSB) cuûa töø traïng thaùi ñöôïc ñaët trong suoát thôøi gian naøy. Khi RAM hieån thò trôû neân khaû duïng trôû laïi, bit naøy töï ñoäng ñöôïc ñaët laïi. Neáu CF = 1, traïng thaùi FIFO bò xoùa vaø ñöôøng ngoõ rangaét ñöôïc ñaët taïi haøng 0. CA, bit xoaù taát caû, coù söï aûnh höôûng cuûa CD vaø CF. Noù söû duïng CDxoùa maõ treân RAM hieån thò vaø cuõng xoùa traïng thaùi FIFO. Hôn theá nöûa, noù coøn ñoàng boä laïi söï ñònh thôøi beân trong. Ñaët moát baùo loãi / Ngaét ôû cuoái Maõ 1 1 1 E X X X X Ñoái vôùi moát ma traän caûm bieán, töø leänh naøy haï ñöôøng IRQ xuoáng thaáp vaø cho pheùp ghi vaøo RAM (ñöôøng IRQ ñöôïc naâng leân, phaùt hieän moät söï thay ñoåi trong moät giaù trò caûm bieán. Ñieàu naøy cuõng seõ caám ghi vaøo RAM cho ñeán khi ñaët laïi). Ñoát vôùi moát xoay voøng N phím, neáu bit E ñöôïc laäp trìng baèng 1, chip 8279 seõ hoaït ñoäng ôû moát baùo loãi. DB[7:0] 8279 CORE Q_EN DBO[7:0] RD CONTROL/TIMING DISPLAY KEY BOARD I/O CONTROL Control Register Clock Pre scale Scan Generator Display Control Display RAM Debounce & Control FIFO/RAM FIFO/RAM tatus & Clear Control OSC Clock Signal Generator IBUF External Logic External Logic I/O Port IBUF IBUF BUFG IBUF IBUF IBUF BUFG DUFG IBUF O Pad I Pad I Pad I Pad I Pad IBUF BUFG CBUFT O Pad I Pad I Pad IBUF O Pad O Pad O Pad I Pad I Pad I Pad Hình B.1 Caáu taïo sô ñoà khoái cuûa 8279. Khôûi taïo 8279 Maëc duø 8279 coù tôùi taùm töø ñieàu khieån, nhöng khoâng phaûi luùc naøo cuõng söû duïng heát taát caû taùm töø naøy. Khi khôûi taïo moät 8279, thöù töï caùc töø ñieàu khieån sau ñaây laø caàn thieát : + Ñaët moát hieån thò / baøn phím + Laäp trình xung ñoàng hoà + Xoùa RAM hieån thò hoaëc FIFO hoaëc caû hai Caùc töø ñieàu khieån coøn laïi coù theå ñöôïc gôûi ra thanh ghi ñieàu khieån trong luùc naøy hoaëc khi caàn. Vieäc ñoïc maõ cuûa baøn phímcoù theå ñöôïc thöïc hieän baèng moät trong hai caùch : duøng ngaét ( interrupt ) hoaëc duøng kyõ thuaät hoûi voøng ( polling ). Khi moät phím ñöôïc aán xuoáng, chaân IRQ cuûa 8279 taïo ra moät möùc logic cao, neáu duøng ngaét cuûa vi xöû lyù. Chöông trình con phuïc vuï ngaét seõ ñoïc maõ cuûa phím aán. PHUÏ LUÏC C : KHAÛO SAÙT NGOAÏI VI 8253 Giôùi thieäu 8253 8253 laø moät boä ñeám/ñònh thôøi khoaûng laäp trình ñöôïc (Programmable interval timer/counter) coù chöùc naêng töông töï nhö caùc boä ñeám vaø boä ñònh thôøi ñöôïc thieát keá baèng phaàn meàm. 8253 laø moät thieát bò coù 24 chaân, daïng DIP, do Intel cheá taïo, ñoøi hoûi nguoàn ñôn+ 5V. Noù phaùt ra nhöõng trì hoaõn thôøi gian chính xaùc vaø coù theå ñöôïc söû duïng cho caùc öùng duïng nhö laø ñoàng hoà thôøi gian thöïc (real time clock) , boä ñeám söï kieän (event counter) , maïch dao ñoäng ñôn oån, maùy phaùt soùng vuoâng (square wave generator) vaø maùy phaùt daïng soùng phöùc taïp (complex waveform generator ). 8253 chöùa ba boä ñeám 16 bit coù theå hoaït ñoäng ñoäc laäp ôû baát kyø moät trong saùu moát. Ñeå kích hoaït moät boä ñeám, töø ñieàu khieån vaø moät soá ñeám 16 bit ñöôïc naïp vaøo caùc thanh ghi cuûa noù, boä ñeám baét ñaàu giaûm soá ñeám cho ñeán khi soá ñeám baèng 0, khi ñoù noù phaùt ra moät xung, xung naøy coù theå ñöôïc söû duïng ñeå ngaét vi xöû lí. Moãi boä ñeám coù theå ñeám hoaëc ôû daïng nhò phaân hoaëc ôû daïng BCD. Ngoaøi ra, moät soá ñeám coù theå ñöôïc ñoïc bôûi vi xöû lí trong khi boä ñeám ñang giaûm. Caáu truùc 8253 Hình C.1 trình baøy sô ñoà khoái cuûa 8253. Noù chöùa ba boä ñeám (0, 1 vaø 2), moät boä ñeäm tuyeán döõ lieäu, logic ñieàu khieån ñoïc / ghi, vaø moät thanh ghi ñieàu khieån. Moãi boä ñeám coù hai tín hieäu vaøo - Xung ñoàng hoà CLK vaø coång kích GATE - vaø moät tín hieäu ra - OUT. ‹ Boä ñeäm tuyeán döõ lieäu Ñaây laø moät boä ñeäm hai chieàu, 8 bit, 3 traïng thaùi ñöôïc noái ñeán tuyeán döõ lieäu cuûa vi xöû lí. ‹ Logic ñieàu khieån Phaàn logic ñieàu khieån coù naêm tín hieäu : RD\ , WR\ , CS\ vaø caùc ñöôøng ñòa chæ A0 vaø A1 . Caùc ñöôøng ñòa chæ A0, A1 cuûa vi xöû lí thöôøng ñöôïc noái caùc ñöôøng A0 vaø A1 cuûa 8253, moät caùch töông öùng, vaø CS\ ñöôïc keùo ñeán moät ñòa chæ giaûi maõ. Thanh ghi töø ñieàu khieån vaø caùc boä ñeám ñöôïc choïn tuøy theo caùc tín hieäu treân caùc ñöôøng A0 vaø A1 nhö trình baøy döôùi ñaây : A1 A0 Choïn löïa 0 0 Boä ñeám 0 0 1 Boä ñeám 1 1 0 Boä ñeám 2 1 1 Thanh ghi ñieàu khieån Hình C.1 : Sô ñoà khoái cuûa 8253 Thanh ghi töø ñieàu khieån Thanh ghi naøy ñöôïc xaâm nhaäp khi caùc ñöôøng A0 vaø A1 ôû logic 1. Noù ñöôïc söû duïng ñeå ghi moät töø leänh, töø naøy neâu roû boä ñeám naøo ñöôïc duøng, moát cuûa noù, vaø moät hoaït ñoäng ñoïc hoaëc ghi. Tuy nhieân, thanh ghi töø ñieàu khieån khoâng khaû duïng ñoái vôùi hoaït ñoäng ñoïc. ‹ Caùc moát hoaït ñoäng 8253 coù theå hoaït ñoäng ôû 6 moát khaùc nhau nhö trình baøy treân Hình 5.14. Coång kích GATE cuûa moät boä ñeám ñöôïc söû duïng hoaëc ñeå caám hoaëc ñeå cho pheùp ñeám. Moát 0 : cho pheùp ñoä ñeám 8253 ñöôïc söû duïng nhö moät boä ñeám söï kieän. ÔÛ moát naøy, ngoõ ra trôû thaønh logic 0 khi töø ñieàu khieån ñöôïc ghi vaøo vaø ôû laïi ñoù ñeán khi N coäng vôùi soá ñeám ñöôïc laäp trình. Chuù yù raèng ngoõ vaøo G phaûi ôû logic 1 ñeå cho pheùp boä ñeám ñeám. Neáu G trôû thaønh logic 0 ôû giöõa cuûa soá ñeám, boä ñeám seõ döøng laïi cho ñeán khi G trôû laïi logic 1. Moát 1 : Boä ñeám hoaït ñoäng nhö laø moät maïch dao ñoäng ña haøi ñôn oån coù theå taùi kích hoaït ( retriggerable monostable multivibrator ). ÔÛ moát naøy, ngoõ vaøo G Hình C.2 : Minh hoïa daïng soùng ngoõ ra ôû caùc moát hoaït ñoäng cuûa 8253 kích hoaït boä ñeám sao cho noù phaùt trieån moät xung taïi chaân OUT trôû thaønh logic 0 trong suoát thôøi gian cuûa soá ñeám. Neáu ngoõ vaøo G xaûy ra trong luùc coù xung ôû ngoõ ra, boä ñeám ñöôïc naïp laïi giaù trò soá ñeám vaø chaân OUT tieáp tuïc trong thôøi gian baèng toång ñoä daøi cuûa soá ñeám. Moát 2 : cho pheùp boä ñeám phaùt ra moät chuoãi caùc xung lieân tuïc coù beà roäng moät chu kyø xung ñoàng hoà. Söï phaân bieät giöõa caùc xung ñöôïc xaùc ñònh bôûi soá ñeám N. Khi ñoù ngoõ ra OUT seõ ôû logic 1 trong (N - 1) chu kyø vaø ôû möùc logic 0 trong 1 chu kyø xung ñoàng hoà coøn laïi. Chu kyø naøy ñöôïc laëp laïi cho ñeán khi boä ñeám ñöôïc laäp trình vôùi moät soá ñeám môùi hoaëc ñeán khi chaân G ñöôïc ñaët ôû logic 0. Chaân G phaûi ôû logic 1 ñoái vôùi moát naøy ñeå phaùt ra moät chuoãi noái tieáp caùc xung. Moát 3 : Phaùt ra moät soùng vuoâng lieân tuïc taïi chaân OUT, khi chaân G ôû logic 1. Neáu soá ñeám N laø chaün, ngoõ ra seõ ôû möùc cao trong (N/2) vaø ôû möùc thaáp trong (N/2) coøn laïi. Neáu soá ñeám N laø leû, ngoõ ra seõ ôû möùc cao trong [(N + 1)/2] vaø ôû möùc thaáp trong [(N - 1)/2] chu kyø xung ñoàng hoà coøn laïi. Moát 4 : Cho pheùp boä ñeám taïo ra moät xung ñôn ôû ngoõ ra. Neáu soá ñeám laø N, ngoõ ra seõ ôû möùc cao trong N chu kyø vaø ôû möùc thaáp trong 1 chu kyø xung ñoàng hoà tieáp theo. Chu kyø khoâng baét ñaàu cho ñeán khi boä ñeám ñöôïc naïp vôùi moät soá ñeám ñaày ñuû cuûa noù. Moát naøy hoaït ñoäng gioáng nhö moät maïch one-shot kích hoaït baèng phaàn meàm. Cuõng nhö moát 2 vaø 3, moát naøy cuõng söû duïng chaân G ñeå cho pheùp boä ñeám. Chaân G phaûi ôû logic 1 ñeå boä ñeám hoaït ñoäng ñoái vôùi 3 moát naøy. Moát 5 : laø moät maïch one-shot kích hoaït baèng phaàn cöùng, noù gioáng nhö moát 4 ngoaïi tröø noù ñöôïc khôûi ñoäng baèng moät xung kích hoaït treân chaân G thay vì baèng phaàn meàm. Moát naøy cuõng coù theå ñöôïc xem töông töï moát 1 vì noù coù theå taùi kích hoaït. Laäp trình cho 8253 Moãi boä ñeám coù theå ñöôïc laäp trình rieâng bieät baèng caùch ghi töø ñieàu khieån tröôùc, theo sau laø soá ñeám ban ñaàu. Hình C.3 lieät keâ töø ñieàu khieån laäp trình cho 8253 vaø chöùc naêng cuûa moãi bit. Töø ñieàu khieån cho pheùp ngöôøi laäp trình choïn löïa boä ñeám, moát hoaït ñoäng, vaø daïng cuûa hoaït ñoäng (ñoïc / ghi). Töø ñieàu khieån cuõng ñöôïc söû duïng ñeå choïn hoaëc soá ñeám nhò phaân hoaëc soá ñeám BCD. Moãi boä ñeám coù theå ñöôïc laäp trình vôùi soá ñeám töø 1 ñeán FFFFH. Soá ñeám 0 baèng vôùi (FFFFH + 1) ( töùc laø 65.536 ) hoaëc 10.000 ôû BCD. Moát 2 vaø moát 3 coù soá ñeám nhoû nhaát laø 2 , caùc moát coøn laïi coù soá ñeám nhoû nhaát laø 1. Moãi boä ñeám coù moät töø ñieàu khieån ñöôïc söû duïng ñeå choïn caùch maø boä ñeám hoaït ñoäng. Neáu 2 byte ñöôïc laäp trình vaøo boä ñeám thì byte ñaàu tieân ( LSB ) seõ laøm döøng soá ñeám vaø byte thöù hai ( MSB ) seõ khôûi ñoäng boä ñeám vôùi soá ñeám môùi. Thöù töï cuûa vieäc laäp trình thì raát quan toïng ñoái vôùi moãi boä ñeám, nhöng vieäc laäp trình cho caùc boä ñeám khaùc nhau coù theå ñöôïc xen keû vôùi nhau. D3 D2 D1 Mode # 0 0 0 Mode 0 0 0 1 Mode 1 X 1 0 Mode 2 X 1 1 Mode 3 1 0 0 Mode 4 1 0 1 Mode 5 D5 D4 Read/Latch 0 0 Latch counter 0 1 LSB only 1 0 MSB only 1 1 LSB First MSB Next D7 D6 Select counter 0 0 0 0 1 1 1 0 2 1 1 Illegal D7 D6 D5 D4 D3 D2 D1 D0 M R/L C SC Code 0 = Binary 1 = BCD Hình C.3 : Daïng töø ñieàu khieån cuûa 8253 8253 coù theå ñöôïc laäp trình ñeå cung caáp caùc ngoõ ra khaùc nhau thoâng qua hoaït ñoäng ghi hoaëc ñeå kieåm tra moät soá ñeám trong khi ñeám thoâng qua hoaït ñoäng ñoïc. ¨ Hoaït ñoäng ghi Ñeå khôûi taïo cho boä ñeám, caàn thieát phaûi theo caùc böôùc sau : 1. Ghi moät töø ñieàu khieån vaøo thanh ghi ñieàu khieån 2. Naïp byte thaáp cuûa soá ñeám vaøo thanh ghi boä ñeám 3. Naïp byte cao cuûa soá ñeám vaøo thanh ghi boä ñeám Neáu chæ söû duïng LSB hoaëc MSB, 8253 seõ töï ñoäng hieåu byte khoâng duøng coù giaù trò 00H . Muoán khôûi taïo ñoàng thôøi nhieàu boä ñeám, chaúng haïn hai boä ñeám, coù theå theo moät trong hai phöông phaùp sau ñaây : * Phöông phaùp 1 : laäp trình töø ñieàu khieån 1 ; khôûi taïo boä ñeám 1 laäp trình töø ñieàu khieån 2 ; khôûi taïo boä ñeám 2 laäp trình lsb1 ; döøng boä ñeám 1 vaø laäp trình lsb1 laäp trình lsb2 ; döøng boä ñeám 2 vaø laäp trình lsb1 laäp trình msb1 ; laäp trình msb1 vaø khôûi ñoäng boä ñeám 1 laäp trình msb2 ; laäp trình msb2 vaø khôûi ñoäng boä ñeám 2 * Phöông phaùp 2 laäp trình töø ñieàu khieån 1 ; khôûi taïo boä ñeám 1 laäp trình lsb1 ; döøng boä ñeám 1 vaø laäp trình lsb1 laäp trình msb1 ; laäp trình msb1vaø khôûi ñoäng boä ñeám 1 laäp trình töø ñieàu khieån 2 ; khôûi taïo boä ñeám 2 laäp trình lsb2 ; döøng boä ñeám 2 vaø laäp trình lsb2 laäp trình msb2 ; laäp trình msb2 vaø khôûi ñoäng boä ñeám 2 ¨ Hoaït ñoäng ñoïc Trong moät soá öùng duïng, ñaëc bieät laø trong caùc boä ñeám söï vieäc, caàn thieát phaûi ñoïc giaù trò cuûa boä ñeám trong luùc boä ñeám ñang ñeám. Ñieàu naøy coù theå thöïc hieän baèng moät trong hai phöông phaùp. Phöông phaùp thöù nhaát lieân quan ñeán vieäc ñoïc moät soá ñeám sau khi ñaõ laøm döøng boä ñeám caàn ñoïc. Phöông phaùp thöù hai lieân quan tôùi vieäc ñoïc moät soá ñeám khi soá ñeám ñang thay ñoåi. ÔÛ phöông phaùp thöù nhaát, vieäc ñeám bò döøng laïi baèng caùch ñieàu khieån ngoõ vaøo kích hoaït (gate) hoaëc ngoõ vaøo xung ñoàng hoà (clock) cuûa boä ñeám ñöôïc choïn, vaø hai hoaït ñoäng ñoïc I/O ñöôïc thöïc hieän bôûi vi xöû lyù. Hoaït ñoäng I/O thöù nhaát ñoïc byte thaáp, vaø hoaït ñoäng thöù hai ñoïc byte cao. ÔÛ phöông phaùp thöù hai, moät töø ñieàu khieån töông öùng ñöôïc ghi vaøo thanh ghi ñieàu khieån ñeå choát soá ñeám taïi maïch choát ngoõ ra, vaø hoaït ñoäng ñoïc I/O ñöôïc thöïc hieän bôûi vi xöû lyù. PHUÏ LUÏC D: GIÔÙI THIEÄU CHUAÅN RS -232C Vaøo naêm 1960, cuøng vôùi söï phaùt trieån maïnh cuûa caùc thieát bò ñaàu cuoái maùy tính chia xeû thôøi gian, caùc Modem ñaõ ñöôïc tung ra ngaøy caøng nhieàu nhaèm ñaûm baûo cho caùc thieát bò ñaàu cuoái coù theå duøng caùc ñöôøng ñieän thoaïi ñeå thoâng tin giöõ caùc maùy tính vôùi nhau ôû nhöõng khoaûng caùch xa. Modem vaø caùc thieât bò ñöôïc duøng ñeå göûi soá lieäu noái tieáp thöôøng ñöôïc goïi laø thieát bò thoâng tin soá lieäu DCE (Data Communication Equipment). Caùc thieát bò ñaàu cuoái hoaëc maùy tính ñang göûi hay nhaän soá lieäu ñöôïc goïi laø caùc thieát bò ñaàu soá lieäu DTE (Data Terminal Equipment). Nhaèm ñaùp öùng vôùi nhu caàu veà tín hieäu vaø caùc chuaån baét tay (handshake standards) giöõa DTE vaø DCE, hieäp hoäi kyõ thuaät ñieän töû EIA ñaõ ñöa ra chuaån RS-232C. Chuaån naøy moâ taû chöùc naêng 25 chaân tín hieäu vaø baét tay cho vieäc chuyeån döõ lieäu noái tieáp. Noù cuõng moâ taû caùc möùc ñieän aùp, trôû khaùng, toác ñoä truyeàn cöïc ñaïi vaø ñieän dung cöïc ñaïi cho caùc ñöôøng tín hieäu naøy. ÑAËC ÑIEÅM KYÕ THUAÄT VEÀ ÑIEÄN CUÛA RS232C Möùc ñieän aùp logic cuûa RS232C laø khoaûng ñieän aùp giöõa +15V vaø –15V. Caùc ñöôøng döõ lieäu söû duïng möùc logic aâm: logic 1 coù ñieän theá giöõa –5V vaø –15V, logic 0 coù ñieän theá giöõa +5V vaø +15V. tuy nhieân caùc ñöôøng ñieàn khieån (ngoaïi tröø ñöôøng TDATA vaø RDATA) söû duïng logic döông: gía trò TRUE =+5V ñeán +15V.vaø FALSE =-5V vaø –15. ÔÛ chuaån giao tieáp naøy, giöõa ngoõ ra boä kích phaùt vaø ngoõ vaøo boä thu coù möùc nhieãu ñöôïc giôùi haïn laø 2V. Do vaäy ngöôõng lôùn nhaát cuûa ngoõ vaøo laø ±3V traùi laïi möùc ± 5V laø ngöôõng nhoû nhaát vôùi ngoõ ra. Ngoõ ra boä kích phaùt khi khoâng taûi coù ñieän aùp laø ±25V. CAÙC ÑÖÔØNG DÖÕ LIEÄU VAØ ÑIEÀU KHIEÅN CUÛA RS232 TxD: Döõ lieäu ñöôïc truyeàn ñi töø Modem treân maïng ñieän thoaïi. RxD: Döõ lieäu ñöôïc thu bôûi Modem treân maïng ñieän thoaïi. Caùc ñöôøng baùo thieát bò saün saøng: DSR : Ñeå baùo raèng Modem ñaõ saün saøng. DTR : Ñeå baùo raèng thieát bò ñaàu cuoái ñaõ saün saøng Caùc ñöôøng baét tay baùn song coâng. RTS : Ñeå baùo raèng thieát bò ñaàu cuoái yeâu caàu phaùt döõ lieäu. CTS : Modem ñaùp öùng nhu caáu caàu göûi döõ lieäu cuûa thieát bò ñaàu cuoái cho thieát bò ñaàu cuoái coù theå söû duïng keâng truyeàn döõ lieäu. Caùc ñöôøng traïng thaùi soùng mang vaø tín hieäu ñieän thoaïi: CD : Modem baùo cho thieát bò ñaàu cuoái bieát raèng ñaõ nhaän ñöôïc moät soùng mang hôïp leä töø maïng ñieän thoaïi. RI : Caùc Modem töï ñoäng traû lôøi baùo raèng ñaõ phaùt hieän chuoâng töø maïng ñieän thoaïïi ñòa chæ ñaàu tieân coù theå tôùi ñöôïc cuûa coång noái tieáp ñöôïc goïi laø ñòa chæ cô baûn (Basic Address). Caùc ñòa chæ ghi tieáp theo ñöôïc ñaët tôùi baèng vieäc coäng theâm soá thanh ghi ñaõ gaëp cuûa boä UART vaøo ñòa chæ cô baûn. Möùc tín hieäu treân chaân ra RxD tuøy thuoäc vaøo ñöôøng daãn TxD vaø thoâng thöôøng naèm trong khoaûng –12 ñeán +12. Caùc bit döõ lieäu ñöôïc göûi ñaûo ngöôïc laïi. Möùc ñieän aùp ñoái vôùi möùc High naèm giöõa –3V vaø –12V vaø möùc Low naèm giöõa +3V vaø +12V. CAÙC IC KÍCH PHAÙT VAØ THU CUÛA RS232C Nhôø tính phoå bieán cuûa giao tieáp, ngöôiø ta ñaõ cheá taïo caùc IC kích phaùt vaø thu. Hai vi maïch nhö vaäy ñöôïc Motorola saûn xuaát laø IC kích phaùt MC 1488 coù daïng voû vuoâng. Vaø MC 1489. Moãi IC kích phaùt 1488 nhaän moät tín hieäu möùc TTL vaø chuyeån thaønh tín hieäu ôû ngoõ ra töông thích vôùi möùc ñieän aùp cuûa RS232C. IC 1489 phaùt hieän caùc möùc vaøo cuûa RS232C vaø chuyeån chuùng thaønh caùc ngoõ ra coù möùc TTL. PHUÏ LUÏC E : KHAÛO SAÙT NGOAÏI VI 8255 Trong heä thoáng vi xöû lyù hay maùy vi tính neáu chæ giao tieáp vôùi boä nhôù trong ROM, RAM thì chöa ñuû, maùy tính coøn phaûi giao tieáp vôùi caùc thieát bò ngoaïi vi nhö baøn phím, maøn hình, maùy in, ... ñeå con ngöôøi coù theå ñoái thoaïi ñöôïc maùy tính cuõng nhö duøng maùy tính ñeå ñieàu khieån caùc thieát bò khaùc. Ñeå giao tieáp vôùi nhieàu thieát bò nhö vaäy, maùy tính coù theå giao tieáp qua nhieàu ñöôøng vaø giao tieáp vôùi nhieàu hình thöùc khaùc nhau nhö giao tieáp noái tieáp, giao tieáp song song. Vì vaäy vai troø cuûa caùc coång nhaäp xuaát ñeå giao tieáp giöõa maùy tính vôùi thieát bò ngoaøi laø moät ñieàu caàn thieát giuùp maùy coù theå môû roäng khaû naêng laøm vieäc. Vi maïch 8255A laø vi maïch giao tieáp ngoaïi vi laäp trình ñöôïc (PPI). Noù ñöôïc duøng keát ñeå noái giao tieáp song song giöõa vi xöû lyù vaø thieát bò ñieàu khieån beân ngoaøi. Sô ñoà chaân vaø sô ñoà logic Nguyeân lyù hoaït ñoäng tính linh hoaït cuûa vi maïch theå hieän ôû khaû naêng laäp trình. Qua moät thanh ghi ñieàu khieån, ngöôøi söû duïng xaùc ñònh cheá ñoä hoaït ñoäng vaø coång naøo caàn ñöôïc söû duïng nhö laø loái vaøo hoaëc loái ra. Caùc chaân ra D0 ñeán D7 taïo neân bus döõ lieäu hai chieàu coù ñoä roäng laø 8 bit. 8255 ñöôïc choïn bôûi tín hieäu möùc thaáp ôû ngoõ vaøo choïn chíp CS\. Khi 8255 khoâng ñöôïc choïn, boä ñeäm bus döõ lieäu noái 8255 vôùi heä thoáng ñöôïc thaû noåi. Khi ñöôïc choïn, caùc ngoõ vaøo A0 vaø A1 ñöôïc duøng ñeå choïn thanh ghi ñieàu khieån hoaëc moät trong caùc coång vaøo/ra ñeå trao ñoåi döõ lieäu. Caùc hoaït ñoäng cô baûn cuûa 8255 ñöôïc toùm taét trong baûng sau: A1 A0 RD\ WR\ CS\ Hoaït ñoäng L L L H L Port A à Bus döõ lieäu L H L H L Port Bà Bus döõ lieäu H L L H L Port Cà Bus döõ lieäu L L H L L Bus döõ lieäu à Port A L H H L L Bus döõ lieäu à Port B H L H L L Bus döõ lieäu à Port C H H H L L Bus döõ lieäu à Töø ñieàu khieån x x x x H Bus döõ lieäu ôû traïng thaùi Hi-Z H H L H L Caám x x H H L Bus döõ lieäu ôû traïng thaùi Hi-Z CAÙC TRAÏNG THAÙI LAØM VIEÄC CUÛA 8255: Qua baûng traïng thaùi cuûa 8255, ta thaáy thanh ghi ñieàu khieån ñaët döôùi ñòa chæ beân trong laø A1 = [1], A0 = [1]. Trong moät chu kyø ghi leân thanh ghi ñieàu khieån, xaùc ñònh coång vaøo/ra cuõng nhö cheá ñoä hoaït ñoäng. Khi chaân RESET ôû möùc [H], thanh ghi ñieàu khieån seõ ñöôïc ñaët laïi vaø ñònh nghóa toaøn boä 24 ñöôøng daãn nhö laø caùc ngoõ vaøo.Traïng thaùi naøy keùo daøi tôùi khi chöông trình öùng duïng vieát töø ñieàu khieån vaøo thanh ghi ñieàu khieån ñeå xaùc ñònh cheá ñoä laøm vieäc cuûa 8255. Caùc coång A, B, C ñöôïc phaân thaønh hai nhoùm. Nhoùm A goàm coång A vaø nöûa cao cuûa coång C, nhoùm B goàm coång B vaø nöûa thaáp coøn laïi cuûa coång C. Coù 3 cheá ñoä hoaït ñoäng khaùc nhau: - Cheá ñoä 0: vaøo/ra thoâng thöôøng. - Cheá ñoä 1: choát vaøo/ra. - Cheá ñoä 2: bus hai chieàu. Cheá ñoä 0: Töø ñieàu khieån: 1 0 0 D4 D3 0 D1 D00 Cheá ñoä 0 xaùc laäp hai coång 8 bit (A vaø B) vaø hai coång 4 bit (nöûa cao vaø nöûa thaáp cuûa C). Baát kyø coång naøo cuõng coù theå nhaäp hoaëc xuaát döõ lieäu moät caùch ñoäc laäp tuøy theo caùc bit D4, D3, D1 vaø D0. Coù 24 = 16 khaû naêng vaøo/ra trong cheá ñoä naøy. Caáu truùc töø ñieàu khieån cuûa 8255A: Nhoùm B Port C (thaáp) 1 = nhaäp 0 = xuaát Port B 1 = nhaäp 0 = xuaát Choïn cheá ñoä 0 = cheá ñoä 0 1 = cheá ñoä 1 Côø laäp cheá ñoä 1 = tích cöïïc Nhoùm A Port C (cao) 1 = nhaäp 0 = xuaát Port A 1 = nhaäp 0 = xuaát Choïn cheá ñoä 00 = cheá ñoä 0 01 = cheá ñoä 1 1x = cheá ñoä 2 D7 D6 D5 D4 D3 D2 D1 D0 PHUÏ LUÏC F : LAÄP TRÌNH CHO 8251A Ñeå thöïc hieän vieäc truyeàn tin noái tieáp, vi xöû lí phaûi thoâng tin cho 8251A taát caû caùc chi tieát nhö laø moát hoaït ñoäng,toác ñoä band, caùc bit döøng, bit chaún leû... Do ñoù, tröôùc khi truyeàn döõ lieäu, moät taäp caùc töø ñieàu khieån ñöôïc taûi vaøo thanh ghi ñieàu khieån 16 bit cuûa 8251A. Ngoaøi ra, vi xöû lí phaûi kieåm tra söï saün saøng cuûa moät ngoaïi vi baèng caùch ñoïc thanh ghi traïng thaùi. Töø ñieàu khieån ñöôïc chia thaønh hai daïng : caùc töø choïn moát vaø caùc töø leänh. Töø choïn moát neâu roõ caùc ñaëc tính chung cuûa hoaït ñoäng (Nhö toác ñoä band, chaún leû, soá löôïng caùc bit döøng), töø taäp leänh cho pheùp vieäc truyeàn vaø / hoaëc nhaän döõ lieäu, vaø töø traïng thaùi cung caáp thoâng tin lieân quan ñeán traïng thaùi thanh ghi vaø caùc loãi trong vieäc truyeàn. Ñeå khôûi taïo 8251A ôû moát baát ñoàng boä, moät trình töï naøo ñoù cuûa caùc töø ñieàu khieån phaûi ñöôïc tuaân theo. Sau hoaït ñoäng Reset (Reset heâï thoáng hoaëc thoâng qua leänh), moät töø choïn moát phaûi ñöôïc ghi vaøo thanh ghi ñieàu khieån, theo sau töø leänh. Baát kì töø ñieàu khieån naøo ñöôïc ghi vaøo thanh ghi ñieàu khieån ngay sau moät töø choïn moát seõ ñöôïc hieåu nhö laø moät töø leänh, ñieàu ñoù coù nghóa laø moät töø leänh coù theå ñöôïc thay ñoåi baát kyø luùc naøo trong moát quaù trình hoaït ñoäng. Tuy nhieân, 8251A seõ ñöôïc ñaët laïi tröôùc luùc ghi moät töø choïn moát môùi, vaø coù theå ñöôïc ñaët laïi nhôø söû duïng bit Reset beân trong (D6) trong töø leänh. G Phaùt moät kí töï Ñeå phaùt moät kí töï, bit TxEN trong thanh ghi leänh phaûi ôû logic 1 vaø chaân CTS phaûi ôû möùc LOW - Ñôïi cho ñeán khi chaân TxRDY ôû môùc HIGH hoaëc cho ñeán khi bit TxRDY trong thanh ghi traïng thaùi laø 1. - Ghi kí töï caàn phaùt vaø thanh ghi ñeäm phaùt. G Thu moät kí töï Ñeå thu moät kí töï vaø kieåm tra traïng thaùi loãi cuûa kí töï naøy, ta caàn ñöôïc thöïc hieän caùc böôùc sau : - Ñôïi cho ñeán khi chaân RxRDY ôû möùc HIGH hoaëc cho ñeán khi bit RxRDY trong thanh ghi traïng thaùi laø 1. - Ñoïc traïng thaùi loãi töø thanh ghi traïng thaùi (coù theå keát hôïp töøng böôùc tröôùc _khi ñoïc bit RxRDY). - Ñoïc kí töï töø thanh ghi ñeäm thu. - Ñaët traïng thaùi loãi baèng caùch ghi bit ER = 1 trong thanh ghi leänh. Toác ñoä phaùt vaø thu bit ñöôïc quyeát ñònh bôûi taàn soá cuûa xung ñoàng hoà ñöa vaøo chaân RxC / TxC chia theo heä soá (1 : 16 hoaëc 64) ñaï choïn trong töø choïn moát. PHUÏ LUÏC G : KHAÛO SAÙT NGOAÏI VI 8259 Maïch xöû lyù ngaét öu tieân do haõng Intel cheá taïo. Coù hai loaïi : 8259 cho VXL 8080, 8085. 8259 A cho caùc hoï VXL IAP 86. Rieâng 8259A cuõng coù hai loaïi hình chöõ nhaät vaø hình vuoâng ñeàu coù 28 chaân. Caùc chaân : IR0¸IR7 ( chaân 18- 25 ) : Caùc loái vaøo yeâu caàu ngaét. D0¸ D7 ( chaân 11- 4 ) : Caùc bit soá lieäu ( hai chieàu ) A0 ( chaân 27 ) : : Ñòa chæ choïn thanh ghi leänh CS\ ( chaân 1 ) : Choïn vi maïch ( chip select WR\ ( chaân 2 ) : Loái vaøo cuûa leänh ghi . RD\ ( chaân 3 ) : Loái vaøo cuûa leänh ñoïc . CAS0 ( chaân 12 ), CAS1 ( chaân 13 ) CAS2 ( chaân 15 ) Loái vaøo maéc noái taàng . Moät PIC chuû naøy coù theå choïn moät trong 8 PIC tôù qua 3 ñöôøng daây naøy . ( chaân 16 ) :Trong cheá ñoä khoâng ñieäm , neáu SP= 1 thì 8259 laø chuû SP = 0 laø tôù ( chaân 26 ) Loái vaøo xaùc nhaän ngaét ( chaân 17 ) loái ra yeâu caàu ngaét chöông trình . caáu truùc sô ñoà khoái 8259 bao goàm : Thanh ghi yeâu caàu ngaét IRR (Interrupt Request Rigister) :ñeå ghi 8 möùc ngaét ( IR0 ¸IR7 ) töø TBN. Thanh ghi “ Ngaét ñang phuïc vuï “ ISR ( In- Service Register ) : ghi möùc ngaét ñang söû duïng Thanh ghi maët naï ngaét IMR ( Interrupt Mask Register ). Maïch logic giaûi quyeát öu tieân PR ( Priority Resolver ). Khoái logic ñieàu khieån : xöû lyù ngaét ñöa yeâu caàu ( INT ) vaø nhaän xaùc nhaän ngaét (). Boä ñieäm ñöôøng daây soá lieäu : ñeå ñeäm ghi vaøo caùc thanh ghi vaø ñieäm ñoïc caùc soá lieäu töø caùc thanh ghi . Logic ñieàu khieån ñoïc /ghi : taïo caùc tín hieäu ghi vaø ñoïc caùc thanh ghi ñeäm . Boä ñeäm noái taàng/ so saùnh : ñeå choïn caùc vi maïch 8259A tôù trong moät vi maïch 8259A chuû Baûng 2.1 Caùc giaù trò ñoïc cuûa caùc möùc öu tieân D7 D6 D5 D4 D3 D2 D1 D0 Yeâu caàu öu tieân RST 1 1 A2 A1 A0 1 1 1 Thaáp nhaát Cao nhaát 0 7 1 1 1 1 1 1 1 1 1 6 1 1 1 1 0 1 1 1 2 5 1 1 1 0 1 1 1 1 3 4 1 1 1 0 0 1 1 1 4 3 1 1 0 1 1 1 1 1 5 2 1 1 0 1 0 1 1 1 6 1 1 1 0 0 1 1 1 1 7 1 1 1 0 0 0 1 1 1 Caùc haønh ñoäng cô baûn : nhö baûn 2.2 . MVT ñoïc (= 0 ). + Caùc thanh ghi IRR , ISR hay möùc ngaét ( ñòa chæ A0= 0 ) tuøy theo vieäc ghi lôøi OCW3 tröôùc khi ñoïc + Thanh ghi IMR ( ñòa chæ A0= 1 ). Baûng 2.2: caùc leänh cho 8259. Baûng 2.2 Caùc leänh cho 259 A0 D4 D3 Haønh ñoäng ñoïc vaøo MVT 0 0 0 0 1 0 IRR, ISR hoaëc möùc ngaétÕ Data bus 1 0 0 0 1 0 IMRÕData bus Haønh ñoäng ghi töø MVT ra 8259A 0 0 0 1 0 0 Data busÕ OCW2 0 0 1 1 0 0 Data busÕ OCW3 0 1 1-möùc trigo 0- Font 1 0 0 Data busÕ OCW1 1 x x 1 0 0 Data busÕ OCW1, ICW2,ICW2,ICW3,ICW4* Caùc chöùc naêng caám x x x 1 1 0 Data bus® traïng thaùi ñieän trôû cao x x x x x 1 Data bus® traïng thaùi ñieän trôû cao MVT ghi (= 0 ): + Vaøo thanh ghi OCW2 ( D3= 0, D4= 0 ), vaøo thanh ghi OCW3 ( D3= 1, D4= 0 ) vôùi ñòa chæ A0= 0. + Vaøo thanh ghi OCW3 vôùi D3= 1, D4= 0, A0 = 0 + Vaøo thanh ghi OCW1, OCW2, OCW3 vôùi ñòa chæ A0 = 1 Khôûi ñoäng : 8259A Ñöôïc khôûi ñoäng ñeå hoaït ñoäng bôûi vieäc ghi caùc lôøi khôûi ñoäng ICW1, ICW2, IWC3( Initialization control word ) coù daïng nhö hình 2.9A vaø löu ñoà ghi nhö hình 2.9b . Trong ñoù : ICW1 : chæ moät ( bit D1= S= 1 ) hay nhieàu ( D1= S= 0 ) vi maïch 8259A vaØ caùc ñöôøng daây ñòa chæ A5 ¸A7 cuûa chöông trình con söû lyù ngaét . ICW2 : Chæ caùc ñòa chæ A6 ¸A15 vaø A0= 1 Cuûa chöông trình con söû lyù ngaét ( ñòa chæ ñeå MVT seõ nhaûy tôùi ñeå thöïc hieän chöông trình con töông öùng vôùi möùc ngaét IRi ñaõ cho ). ICW3: + Cho 8259A chuû . Neáu caùc bit S0¸S7 ( hay D0¸D7 )= 1 chæ ñaàu vaøo IR coù moät 8259 tôù ( A0= 1) Neáu caùc bit S0¸S7 ( hay D0¸D7 )= 0 chæ ñaàu vaøo IR khoâng coù moät 8259 tôù ( A0= 1) + Cho 8259 tôù thì ID0 ¸ ID2 ( D0 ¸D2 ) ghi teân cuûa 8259A tôù ( töø 0 tôùi 8 ) Hoaït ñoäng : Ghi caùc lôøi hoaït ñoäng OCW1, OCW2, OCW3 coù daïng nhö hình 2.10 trong ñoù : OCW1 : coù A0 = 1 , ñeå ghi 8 bit chaéc ngaét M0 ¸ M7 cho caùc loái vaøo ngaét IR0 ¸ IR7 vôùi Mi= 1 xaùc laäp chaén vaø M1= 0 xoùa chaén . OCW2 : ghi söï phuïc vuï ngaét theo öu tieân voøng vôùi A0= 0 . OCW3 : ghi söï che ngaét ñaëc bieät cho caùc cheá ñoä ñaëc bieät SMM vaø ESMM vôùi A0= 0, D3= 1 Caùc bit RIS ( D0 ) vaø ERIS ( D1) xaùc ñònh ñoïc traïng thaùi cuûa caùc thanh ghi IRR vaø ISR nhö sau : RRIS RIS 1 0 Xoùa chaén ñaëc bieät 1 1 Xaùc laäp chaén ñaëc bieät Coøn caùc bit SMM ( D5 ) ESMM ( D6 ) Xaùc ñònh xoùa vaø xaùc laäp caùc chaén ñaëc bieät theo toå hôïp caùc giaù trò cuûa chuùng laø : ESMM ( D6 ) SMM ( D5 ) 1 0 Xoùa chaén ñaëc bieät 1 1 Xaùc laäp chaén ñaëc bieät Coøn caùc toå hôïp caùc giaù trò khaùc cuûa chuùng khoâng aûnh höôûng tôùi chaén ñaëc bieät . Caùc cheá ñoä öu tieân : Coù 4 cheá ñoä öu tieân cho moãi 8259A tuøy theo noäi dung cuûa caùc lôøi khôûi ñoäng ICWi vaø lôøi haønh ñoäng OCWi . Cheá ñoä öu tieân coá ñònh ( full nested) : Moãi laàn ngaét ñöôïc gaùn möùc öu tieân coá ñònh möùc khoâng laø cao nhaát , möùc 7 laø thaáp nhaát , cheá ñoä naøy coù ñöôïc sau khi 8259A nhaän nhöõng lôøi khôûi ñoäng ICWI vaø khoâng nhaän baát kyø lôøi haønh ñoäng OCWi naøo . Khi coù moät yeâu caàu ngaét IRi ñöôïc ghi nhaän , bit töông öùng trong ISRi ñöôïc xaùc laäp vaø taát caû caùc yeâu caàu ngaét khaùc ( töø caùc IRj - vôùi j khaùc i ) bò caám cho tôùi khi: 8259A nhaän leänh” keát thuùc ngaét – EOI “ ( End Of Interrup ) bôûi lôøi OCW2 göûi ñeán khi keát thuùc chöông trình con phuïc vuï ngaét . VXL thöïc hieän leänh cho pheùp ngaét EI ( Enable Interupt ) . Neáu khi ñang thöïc hieän chöông trình con phuïc vuï möùc Iri naøo ñoù maø coù yeâu caàu töø möùc j coù öu tieân cao hôn möùc i , 8259A cuõng vaãn phaûi ñôïi sau khi VXL thöïc hieän leänh cho pheùp ngaét EI hay EOI coù saün khi thöïc hieän xong chöông trình con phuïc vuï möùc i. Cheá ñoä öu tieân voøng : cheá ñoä naøy coù ñöôïc sau khi ghi lôøi haønh ñoäng OCW2 vaøo 8259A ( H2.10 ) do giaù trò cuûa caùc bit EOI (D5) , SL ( D6 ) vaø R( D7 ) . Coù hai cheá ñoä öu tieân voøng : + Öu tieân voøng quay töï ñoäng ( autorotating ) ; möùc ngaét vöøa ñöôïc söû lyù xuoáng möùc öu tieân thaáp nhaát trong voøng quay cuûa möùc öu tieân cao nhaát – thaáp nhaát ban ñaàu cuûa IR0 ¸ IR7 . Noùi khaùc ñi, caùc möùc öu tieân laø ñoàng ñieàu , möùc tröôûng thaømh öu tieân nhaát ñeå ñöôïc söû lyù khi tôùi löôïc ñöôïc hoûi voøng ( polling ) + Öu tieân voøng coù quy ñònh ( specific rotating ) theo EOI : Loaïi öu tieân naøy cho pheùp ta xoùa bit ISR ñöôïc quy ñònh ngay trong leänh vaø ñöa ñaàu ngaét öùng vôùi bit ISR ñoù xuoáng möùc öu tieân thaáp nhaát . Baûng caùc leänh cuûa OCW2 sau minh hoïa caùc cheá ñoä öu tieân voøng treân . Ngoaøi caùc leänh öu tieân voøng , coøn coù caùc leänh khaùc nhö : leänh laäp thöù töï öu tieân ( Set Priority ) leänh keát thuùc ngaét ñöôïc ghi roõ ( Specific- EOI ). Leänh A0 Bus soá lieäu Chöùc naêng D7 D6 D5 D4 D3 D2 D1 D0 EOI khoâng quy ñònh (non- specificcEOI ) EOI coù quy ñònh ( Specific EOI ) Quay töï ñoäng theo EOI (Rotater at EOI-pecific ) Quay coù quy ñònh theo EOI (Rotate at EOI – Specific ) Laäp thöù töï öu tieân ( set prioty ) 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 L2 0 L2 L2 0 L1 0 L1 L1 0 L0 0 L0 L0 Xoùa bit ISR cao nhaát Xoùa bit ISR qui ñònh bôûi L2,L1,L0 Xoùa bit ISR cao nhaát vaø ñöa IR töông öùng xuoáng möùc thaáp nhaát Xoùa bit ISR quy ñònh bôùi L2,L1,L0 Ñaëc IR quy ñònh bôûi L2,L1,L0 xuoáng möùc öu tieân thaáp nhaát Cheá ñoä che ngaét ñaëc bieät: SMM ( Special Mask Mode ) Cheá ñoä naøy coù ñöôïc khi ghi lôøi OCW3 vôùi caùc bit ESMM ( D6 ) , SMM ( D5 ) ñeå : Laäp SMM vôùi D6= D5= 1 Xoùa SMM VÔÙI D6= 1, D5= 0 Cheá ñoä naøy ñöôïc söû duïng khi moät giai ñoaïn naøo ñoù trong chöông trình con , ta muoán cho pheùp ngaét taát caû caùc yeâu caàn ngaét , töùc laø caùc yeâu caàu ngaét ôû möùc öu tieân thaáp hôn so vôùi möùc öu tieân ñang ñöôïc phuïc vuï , cuõng ñöôïc 8259A chaáp nhaän ñeå gôûi yeâu caàu ngaét tôùi VXL. Cheá ñoä hoûi voøng ngaét (polling). Cheá ñoä naøy coù ñöôïc khi ghi lôøi haønh ñoäng OCW3 vôùi bit P(D3) =1 .ÔÛ cheá ñoä naøy VXL phaûi hoûi voøng hay ñoïc traïng thaùi bôûi leänh ñoïc RD cuûa VXL . Taát nhieân laø khi xeùt traïng thaùi naøy VXL phaûi ñöa leänh caám caùc ngaét IRi vaøo . Khi coù IF= 1, Töùc coù yeâu caàu ngaét , VXK ñöa lôøi OCW3 ñeå ñoïc caùc thanh ghi IRR vaø ISR ( H.2.10 ) ñeå xaùc ñònh ngaét naøo Iri coù yeâu caàu ngaét . Ngaét coù öu tieân cao nhaát ñöôïc xaùc ñònh bôûi caùc bit L0¸L2 cuûa lôøi haønh ñoäng OCW2. Sau ñoù vieäc hoûi voøng ñöôïc tieáp tuïc cho möùc öu tieân giaûm daàn theo thöù töï keå töø möùc öu tieân cao nhaát . Baûng 2.4 : toùm taét caùc leänh cuûa lôøi OCW3 . Leänh A0 Bus soá lieäu Chöùc naêng D7 D6 D5 D4 D3 D2 D1 D0 Cheá doä hoûi voøng ngaét Ñoïc ISR Ñoïc IRR Laäp SMM Xoùa SMM 0 0 0 0 0 ´ ´ ´ ´ ´ 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 Hoûi voøng ngaét ôû xung RD tieáp theo Ñoïc ISRôû xung RD tieáp theo Ñoïc IRR ôû xung RD tieáp theo Laäp cheá ñoä che ngaét ñaëc bieät Xoùa cheá ñoä che ngaét ñaëc bieät Cheá ñoä hoûi voøng ngaét naøy toán thôøi gian cuûa VXL ñeå xaùc ñònh coù ngaét vaø nguoàn gaây ngaét . Cheá ñoä naøy chæ söû duïng khi vi maïch VXL vaø PIC 8259A ôû treân hai taám maïch in khaùc nhau vaø treân bus heä thoáng khoâng coù ñöôøng tín hieäu xaùc nhaän ngaét INTA. PHUÏ LUÏC H : KHAÛO SAÙT CAÙC LINH KIEÄN KHAÙC 2. Vi maïch choát 74373: Vcc Q7 D7 D6 Q6 Q5 D5 D4 Q4 E OC\ Q0 D0 D1 Q1 Q2 D2 D3 Q3 GND 74373 D0-D7 Q0-Q7 OC \ E Sô ñoà chaân vaø sô ñoà logic OUTPUT CONTROL ENABLE G D OUTPUT L H H H L H L L L L x Q0 H x x HI-Z 3.Caùc IC kích phaùt vaø thu. Vcc InputD1 InputD2 OutputD InputC1 InputC2 OutputC Vee InputA OutputA InputB1 InputB2 OutputB GND MC1488 Vcc InputD Respond control D Output D InputC Respond control C OutputC InputA Respond control A OutputA InputB Respond control B OutputB GND MC1489 4.IC chuyeån ñoåi töø soá sang töông töï DAC 0808. COMP Vref- Vref+ Vcc A8(LSB) A7 A6 A5 NC GND Vee Io A1(MSB) A2 A3 A4 DAC0808 A0 .. A7 Io 4 COM 6.IC khueách ñaïi thuaät toaùn vaø coång ñaûo. 7414 Vcc 6A 6Y 5A 5Y 4A44Y 1A 1Y 2A 2Y 3A 3Y GND V+ OUTB -InputB +InputB OUTA -InputA +InputA V- LF358N 7.Boä chuyeån ñoåi töø töông töï sang soá. IN2 IN1 IN0 A B C ALE A0(MSB) A1 A2 A3 A7(LSB) REF- A5 IN3 IN4 IN5 IN5 IN7 START EOC A4 OE CLK Vcc REF+ GND A6 ADC 0809 Hình : Sô ñoà khoái vaø giaûn ñoà thôøi gian cuûa ADC 0809.

Các file đính kèm theo tài liệu này:

  • docLUANVAN.DOC