พอร์ตอินพุต/เอาต์พุตของ 8051
พอร์ตอินพุตและเอาต์พุต
พอร์ต
มีความหมายถึงแอดเดรสหนึ่งที่ได้รับการกำหนดไว้เพื่อการโอนย้ายข้อมูลระหว่างไมโคร
คอนโทรลเลอร์
กับอุปกรณ์ภายนอก
การกำหนดประเภทของการติดต่อขึ้นอยู่กับทิศทางการไหลของข้อมูลเมื่อพิจารณาจากไมโครคอนโทรล
เลอร์เป็นหลัก
(ดูรูปที่ 4.1)
ดังนั้นการนำเข้าข้อมูลจากวงจรภายนอกจึงเรียกว่า
การอินพุต
(input)และในกรณีตรงกันข้ามเพื่อ
ส่งออกข้อมูลก็จะเรียกว่า
การเอาต์พุต (output)
เมื่อพิจารณาถึงวิธีการส่งข้อมูลภายในพอร์ตจะสามารถแยกประเภทของพอร์ตออกได้เป็นสองลักษณะ
คือพอร์ต
แบบขนาน (Parallel port)
ซึ่งทำการส่งจำนวนบิตข้อมูลทั้งหมดออกมาหรือนำเข้าไปพร้อมกันในคราวเดียว
และพอร์ตแบบ
อนุกรม (Serial port)
ซึ่งทำการโอนย้ายข้อมูลคราวละบิตๆ
จนครบจำนวน แต่สำหรับในบทนี้จะกล่าว
ถึงเฉพาะในส่วนของ
พอร์ตแบบขนานเท่านั้น
สำหรับการทำงานของพอร์ตแบบอนุกรมจะได้กล่าวภายหลัง
พอร์ตแบบขนานของ
8051
8051
มีโครงสร้างของพอร์ตที่สามารถใช้งานแบบขนานได้จำนวนทั้งหมดสี่พอร์ตเรียกชื่อเรียงตามลำดับว่า
พอร์ต0,1,2
และ 3 และเป็นพอร์ตขนาด 8 บิตทั้งหมด
การใช้งานพอร์ตสามารถทำได้ทั้งในลักษณะของเส้น
สัญญาณเดี่ยวๆ
หรือกลุ่มของสัญญาณได้
นอกจากนี้พอร์ต 0,2 และ 3
ยังสามารถนำไปใช้งานอื่นๆ
ที่ไม่ใช่เป็นพอร์ต
อินพุต/เอาต์พุตได้โดย
พอร์ต 0
จะทำหน้าที่มัลติเพล็กซ์
ระหว่างบัสแอดเดรสไบต์ต่ำและบัสข้อมูลสำหรับการติดต่อ
กับวงจรประกอบร่วมข้อมูลบัส
แอดเดรสไบต์สูงซึ่งจะส่งออกมาทางพอร์ต
2 สำหรับพอร์ต 3 นั้น นอกเหนือไปจาก
ความสามารถเช่นพอร์ตปกติแล้วสามารถ
นำไปเป็นขาสัญญาณของการอินเตอร์รัปต์ต่างๆ
ซึ่งรวมทั้งการสร้างสัญญาณ ควบคุม RD\ และ WR\
เพื่อทำหน้าที่อ่านหรือ
เขียนหน่วยความจำข้อมูลภายนอกด้วย
การใช้งานพอร์ตลักษณะงานแบบ
อื่นๆที่ไม่ใช่เป็นพอร์ต/เอาต์พุทนี้จะดำเนินการโดย
8051 เองโดยอัตโนมัติ
โครงสร้างการทำงานของพอร์ต 8051
จากลักษณะโครงสร้างของแต่ละบิตภายในพอร์ตทั้งหมดของ
8051 ซึ่งได้แสดงไว้ในรูปที่ 4.2
นั้นจะเห็นว่ามี
ความคล้ายคลึงกันตามลักษณะโครงสร้างที่เรียกว่า
Quasi-bidirectional port ยกเว้นพอร์ต 0
ซึ่งเพียงแต่ไม่มี
ตัวต้านทาน
ทำหน้าที่ Pull-up
สัญญาณไว้ภายในเท่านั้น
วงจรประกอบอื่นภายในยังมีฟลิปฟลอปแบบ D
ซึ่งมีผลทำให้
พอร์ตสามารถ
แลตช์หรือค้างสภาวะของสัญญาณได้
นอกจากนี้ในส่วนเอาต์พุตของฟลิปฟลอปเฉพาะของพอร์ต
0 และพอร์ต
2 จะมีโครง
สร้างที่ทำหน้าที่คล้ายกับสวิตช์เพิ่มเติมขึ้น
เพื่อควบคุมให้เอาต์พุตนี้ต่อเข้ากับส่วนของ
ทรานซิสเตอร์ในระหว่างที่ไม่ได้มีการ
ทำงานในลักษณะของบัสแอดเดรสหรือบัสข้อมูลด้วย
สำหรับบัฟเฟอร์จำนวนสองตัวของทุกบิตในพอร์ตนั้นมีการทำงานแยก
กันโดยอิสระโดยตัวที่อยู่ทางด้านบนจะยอมให้สัญญาณผ่านได้ก็ต่อ
เมื่อมีการอ่านค่าข้อมูลที่ค้างไว้ส่วนอีกตัวหนึ่งซึ่งอยู่ทาง
ด้านล่างจะถูกใช้งานเฉพาะเมื่อได้มีการอ่านสถานะของขา
สัญญาณเท่านั้น
การใช้งานพอร์ตเป็นการอินพุต
การใช้งานพอร์ตเป็นการอินพุตข้อมูลจะต้องเริ่มด้วยการส่งข้อมูลที่มีค่าเป็น
1 ออกมาทางบิตของพอร์ต
นั้น
ก่อนเป็นลำดับแรก
เพื่อหยุดการทำงานของทรานซิสเตอร์ที่ทำหน้าที่ขับสัญญาณเอาต์พุตของบิตนั้น
ทำให้ขาสัญญาณของบิต
ถูกต่อเข้ากับตัวต้านทานซึ่งทำหน้าที่
Pull-up ภายในซึ่งมีผลให้บิตนั้นๆของพอร์ต
1,2 และ 3 เป็น สภาวะของลอจิกสูง
ตัว
ต้านทานนี้มีค่าประมาณ 50 K โอห์ม
ซึ่งเป็นค่าที่สูงมาก
และทำให้อุปกรณ์