1 / 32

Register and Input/Output ( I / O )

Register and Input/Output ( I / O ). จุดประสงค์ เพื่อให้ศึกษา ใช้งาน Register ของ MCS-51 และการเชื่อมต่อกับไอซี Input / Output. PSW ( Program Status Word ) : อยู่ที่ตำแหน่ง D0 จะใช้ในการเก็บสถานะการทำงาน ต่าง ๆ. MSB. LSB.

min
Download Presentation

Register and Input/Output ( I / O )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Register and Input/Output ( I / O ) จุดประสงค์ เพื่อให้ศึกษา ใช้งาน Register ของ MCS-51และการเชื่อมต่อกับไอซี Input / Output

  2. PSW ( Program Status Word ) :อยู่ที่ตำแหน่ง D0 จะใช้ในการเก็บสถานะการทำงาน ต่าง ๆ MSB LSB CY : Carry Flag ใช้สำหรับบอกสถานะในการประมวลผลทางคณิตศาสตร์ว่ามีตัวทดเกิดขึ้นหรือไม่ ถ้ามีจะทำให้บิตนี้เป็น 1 AC : Auxiliary Carry เป็นบิตที่ใช้เก็บตัวทดที่เกิดจากการคำนวนจากบิตที่ 3 ไปยังบิตที่ 4 F0 : เป็นบิตอเนกประสงค์ที่ผู้ใช้สามารถนำไปใช้ได้

  3. RS0 และ RS1 เป็นตัวใช้เลือก Bank ของ รีจิสเตอร์ R0 – R7 ตามตาราง

  4. OV : Over Flow เป็นบิตที่บอกว่ามีตัวทดเกิดขึ้นจากบิตที่ 6 ไปยังบิตที่ 7 จะใช้ในกรณีที่เราทำการคำนวนแบบ Signed Integer P : Parity Bit จะใช้ในกรณีที่บอกว่าค่าใน Register A เมื่ออยู่ในรูปเลขฐานสองจะมีค่าเป็น 1 เป็นคู่หรือคี่ โดยถ้าเป็นคี่ จะทำให้บิตนี้เป็น 1 แต่ถ้าเป็น คู่จะทำให้บิตนี้เป็น 0

  5. ACC (Accumulator) อยู่ที่ตำแหน่ง 0E0H เป็นรีจิสเตอร์ขนาด 8 บิตที่ใช้มาก คำสั่งที่จะอ่านหรือเก็บข้อมูลภายนอกจจะต้องกระทำผ่านรีจิสเตอร์นี้เท่านั้น B อยู่ที่ตำแหน่ง 0F0H เป็นรีจีสเตอร์ที่ใช้ในการคูณและหาร โดย รีจีสเตอร์ B จะเก็บตัวคูณและผลลัพธ์บิต 8 ถึงบิต 15 ในส่วนของคำสั่งหาร รีจีสเตอร์ B จะเก็บตัวหารและผลการหาร SP ( Stack Pointer ) : อยู่ที่ตำแหน่ง 081H รีจีสเตอร์นี้จะใช้ในการชี้ตำแหนหน่วยความจำภายในที่ใช้เก็บตำแหน่ง(Address) เดิมของโปรแกรมก่อนทำคำสั่ง CALL หรือตำแหน่งที่จะใช้เก็บข้อมูลด้วยคำสั่ง PUSH และ ตำแหน่งที่จะอ่านข้อมูลออกมาในคำสั่ง POP

  6. DPTR ( Data Pointer Register ) : อยู่ที่ตำแหน่ง 082H และ 081H DPTR เป็นริจิสเตอร์ขนาด 16 บิตที่เกิดจากการนำรีจีสเตอร์ขนาด 8 บิต 2 ตัวมาต่อกันคือ DPL กับ DPH โดย DPTR จะใช้ในการชี้ตำแหน่งหน่วยในความจำ

  7. Port0 : อยู่ที่ตำแหน่ง 080H พอร์ทนี้จะใช้ในการรับส่งตำแหน่งและข้อมูลกับหน่วยความจำหรือใช้รับ-ส่งข้อมูลก็ได้ โครงสร้างของ พอร์ท 0 จะเป็นแบบ Open Collector Bi-directional

  8. จากโครงสร้างของพอร์ท 0 เมื่อมีคำสั่งในการเขียนข้อมูลมายังพอร์ท 0 ข้อมูลจาก Internal Data Bus จะถูก Latch ไว้ที่ D – FF โดยสัญญาณ Write to Latch ที่สร้างมาจากส่วน Timing and Control และในการอ่านข้อมูลจากพอร์ท จะมี 2 แบบคือ การอ่านข้อมูลที่ส่งไปเก็บไว้ที่พอร์ทก็จะมีสัญญาณ Read Latch มาเพื่ออ่านข้อมูลจาก D – FF ไปยัง Internal Bus อีกแบบคือการอ่านสภาวะที่เข้ามาทางพอร์ท 0 ก็จะมีสัญญาณ Read Pin มาควบคุมการอ่าน การใช้งานพอร์ท 0 สำหรับส่งข้อมูลจะต้องต่อตัวต้านทานPull Up ไว้ด้วย และถ้าเราใช้ พอร์ท 0 สำหรับการรับข้อมูลจะต้องเขียน 1 มายัง D – FF เสียก่อนแล้วจึงจะใช้คำสั่งอ่านสถาวะเข้าไปยัง Internal Bus ต่อไป

  9. Port1 : อยู่ที่ตำแหน่ง 090H จะคล้ายกับพอร์ท 0 เพียงแต่จะมีตัวต้านทานต่อเป็น Internal Pull Up พอร์ท 1 นี้จะใช้รับส่งข้อมูลเท่านั้น ข้อมูลที่ส่งออกมาทางพอร์ทจะถูก Latch ไว้แล้วส่งออกไปแต่ละขา ก่อนที่จะอ่านข้อมูลจะต้องเขียน 1 ไปยังบิตที่ต้องการอ่านข้อมูล เพื่อให้ FET อยู่ในสถาวะ OFF เสียก่อน

  10. Port2: อยู่ที่ตำแหน่ง 0A0H • โครงสร้างของพอร์ท 2 จะคล้ายกับพอร์ท 0 แต่ที่แตกต่างกันคือภาค Driver ของพอร์ท 2 จะใช้งานเพียง 2 ลักษณะคือ • ใช้ส่งค่าตำแหน่งหน่วยความจำภายนอกที่เป็น High Byte • ใช้รับส่งข้อมูลภายนอก

  11. Port3: อยู่ที่ตำแหน่ง 0B0H จะประกอบด้วยส่วน latch ข้อมูลที่เขียนเข้ามาทางพอร์ท 3 ทางInternal Bus เหมือนกับพอร์ทอื่น ๆ และ พอร์ท 3 นี้จะมี Internal Pull Up ต่ออยู่ทุกบิต แต่พอร์ท 3 นี้จะใช้ทำหน้าที่อื่นด้วยโดยใช้สัญญาณจากคำสั่งควบคุมการทำงาน ในส่วน Alternative Output Function จะเป็นสัญญาณที่สร้างมาจากส่วน Timing and Control โดยจะส่งสัญญาณออกเมื่อต้องการสั่งให้ พอร์ท 3 ทำงานในฟังก์ชันอื่น

  12. ค่าของ Register เมื่อเกิดการ Reset PC 0000H ACC 00H B 00H PSW 00H SP 00H DPTR 0000H P0 – P3 0FFH

  13. 8255 Peripheral Input/Output 8255 เป็น IC ที่ทำหน้าที่เป็น Input/Output Port โดยสามารถต่อport เพิ่มได้อีก 3 port โดยแต่ละ Port มีขนาด 8bit แต่ละbit สามารถ sink หรือ source กระแสได้ 20 mA

  14. D0 – D7 : เป็นขา Data ที่จะนำไปต่อกับระบบ bus Reset : เป็นขารีเซต โดยเมื่อให้ลอจิก High จะทำการ Clear register และ port โดยหลังจากการ reset ทุกport จะถูก กำหนดให้เป็น input mode CS : Chip Select จะเป็นการเลือกให้ Chip ทำงานโดยจะ Active Low RD : Read เป็นขาที่รับสัญญาณ Read มาจากตัว CPU เพื่ออ่านค่าข้อมูล WR : Write เป็นขาที่รับสัญญาณ Write จากตัว CPU เพื่อทำการเขียนข้อมูล A0 , A1 : Address เป็นที่ใช้ร่วมกับขา RD , WR เพื่อระบุตำแหน่งของ Register และ Port ที่ต้องการติดต่อ

  15. PA0 – PA7 , PB0 – PB7 , PC0 – PC7 : เป็น Port ขนาด 8 บิต 3 Port สามารถสั่งงานได้เฉพาะตัว ของแต่ละ Port โดยมี Address ของแต่ละ Port ไม่ซ้ำกัน

  16. 8255 Mode 8255 จะมี Mode ในการทำงาน 3 Mode คือ Mode 0 : Basic Input/Output Mode 1 : Strobe Input/Output Mode 2 : Bi-directional Bus

  17. Mode 0 : Basic Input/Output • Mode นี้เป็น Mode พื้นฐานในการเชื่อมต่อทั้ง Input/Output โดยในการทำงานไม่ต้องมีการ Handshaking การทำงานใน mode 0 ประกอบด้วย • Two 8–bit ports and two 4-bit ports • Any Port can be input or output • Output are latched • Input are not latched • 16 difference Input/Output configuration

  18. 8255 Timing Diagram

  19. Mode 1 : Strobe Input/Output • ใน mode นี้การรับส่งข้อมูลจะมีการ strobe หรือการ handshaking ซึ่งใน mode นี้เราจะใช้ PORTA และ PORTB รับส่งข้อมูล และ PORTC ใช้สำหรับการ Handshaking การทำงานใน mode 1 ประกอบด้วย • Two Group ( Group A and Group B ) • Each group contain one 8 – bit data port and one 4-bit control/data port • 8 bit data port can be either input or output. Both input and output are latched.

  20. Mode 2 : Bi-directional Bus • Mode นี้จะใช้ในการรับส่งระหว่างอุปกรณ์ที่มีการรับ หรือส่งที่ละ 8 bit ( bidirectional bus I/O ) การทำงานใน mode 2 ประกอบด้วย • Used Group A only • One 8-bit bidirectional bus port ( Port A ) and 5 – bit control port ( Port C ) • Both input and output are latched

  21. ในตัว 8255 จะมีพอร์ทให้เราใช้งานทั้งหมด 4port คือ PORTA,PORTB,PORTC และ Control Port สำหรับ Control Port จะเป็น register ที่อยู่ภายในตัว 8255 โดยจะทำหน้าที่กำหนด Mode ในการทำงานของตัว 8255

  22. การเชื่อมต่อ 8255 กับ MCS - 51

  23. Memory Map FFFFH FFFFH SRAM ( 27C256 ) 7FFFH 7FFFH Eprom ( 27C256 ) 0003H I/O( 8255 ) 0000H 0000H

  24. ตัวอย่างโปรแกรมที่ใช้ติดต่อกับ 8255 CSEG at 0000H ORG 0000H MOV A,#80H ; Value for initial 8255 MOV DPL,#00H MOV DPH,#03H MOVX @DPTR,A MOV DPL,#00H ; PORTA MOV DPH,#00H MOV A,#55H MOVX @DPTR,A end

  25. Sink Current

  26. Source Current

  27. Input/Output Decoder

  28. Work จงออกแบบวงจรเชื่อมต่อ 8255 กับ AT89C51 โดยให้ ไอซี 8255 ต่อแบบ Memory Map I/O ที่ตำแหน่งข้อมูลภายในที่ 4000H – 4003H ของหน่วยความจำภายนอกและมี LED ต่ออยู่ที่ Port A และ Port B โดย Port A จะเชื่อมต่อแบบ Sink Current ส่วน Port B เชื่อมต่อแบบ Source Current และ Port C ให้เชื่อมกับ DIP Switch

More Related