พอร์ตอินพุต/เอาต์พุตของ 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 โอห์ม ซึ่งเป็นค่าที่สูงมาก และทำให้อุปกรณ์