วันจันทร์ที่ 9 กันยายน พ.ศ. 2556

3.Port Input




                       



    การใช้งานพอร์ตเป็นการอินพุตข้อมูลจะต้องเริ่มด้วยการส่งข้อมูลที่มีค่าเป็น 1 ออกมาทางบิตของพอร์ต นั้น    ก่อนเป็นลำดับแรก เพื่อหยุดการทำงานของทรานซิสเตอร์ที่ทำหน้าที่ขับสัญญาณเอาต์พุตของบิตนั้น ทำให้ขาสัญญาณของบิตถูกต่อเข้ากับตัวต้านทานซึ่งทำหน้าที่ Pull-up ภายในซึ่งมีผลให้บิตนั้นๆของพอร์ต 1,2 และ 3 เป็น สภาวะของลอจิกสูง ตัวต้านทานนี้มีค่าประมาณ 50 K โอห์ม ซึ่งเป็นค่าที่สูงมาก และทำให้อุปกรณ์ภายนอกสามารถขับสัญญาณของพอร์ตเหล่านี้เป็นลอจิกต่ำได้ง่าย สำหรับบิตของพอร์ต 0 นั้น แม้ว่าจะมีหลักการทำงานที่คล้ายคลึงกัน กับบิตของพอร์ตอื่นๆ แต่เนื่องจากการที่ไม่มีตัวต้านทานทำหน้าที่ Pull-up ภายในไว้ ทำให้เมื่อทรานซิสเตอร์ที่ทำหน้าที่ ขับสัญญาณเอาต์พุตนั้นหยุดการทำงาน ก็จะเป็นผลให้ขาสัญญาณนี้อยู่ในสภาวะอิมพีแดนซ์สูงแทน 

ที่มาของรูปภาพ https://www.google.co.th/search?

ที่มาของเนื้อหาhttp://www.cpe.ku.ac.th/~yuen/204471/micro/mcs51/8051_5.html

2.Control Port


Control Port

        ระบบควบคุมขนาดเล็กซึ่งเทียบได้กับระบบคอมพิวเตอร์หนึ่งชุด กล่าวคือ ไมโครคอนโทรลเลอร์ได้รวบรวม  ระบบประมวลผลCPU (Central Processing Unit) หน่วยความจำ (Memory) และ พอร์ต            (I/O Port) ไว้ในโมดูล เดียวกัน   ซึ่งแตกต่างจากไมโครเซสเซอร์ตรงที่ ไมโครโปรเซสเซอร์จะต้องต่ออุปกรณ์ หน่วยความจำและพอร์ตอินเตอร์เฟสข้างนอก เนื่องจากไมโครคอนโทรลเลอร์มีขนาดเล็ก มียืดหยุ่น และความสามารถสูง จึงนิยมฝังไว้ในอุปกรณ์ทางไฟฟ้าหรือ อิเล็กทรอนิกส์ เพื่อควบคุมการทำงานของอุปกรณ์นั้น เช่น ทีวี เครื่องซักผ้า มือถือ รีโมท กล่อง ECU รถยนต์ เครื่องบิน หรือ แม้กระทั่ง บางส่วนของยานอวกาศ


ที่มา http://mis.csit.sci.tsu.ac.th/grit/grit02.html

1.โครงสร้าง Port

โครงสร้างของพอร์ต


        การที่จะให้ไมโครคอนโทรลเลอร์ติดต่อกับอุปกรณ์ภายนอกได้ เช่นการรับข้อมูลจากอุปกรณ์ภายนอก (INPUT)หรือการส่งข้อมูลให้กับอุปกรณ์ภายนอก (OUTPUT) ก็จะต้องติดต่อผ่านพอร์ต (PORT) หรืออาจกล่าวได้ว่าพอร์ตคือช่องทางสำหรับการโอนย้ายข้อมูลระหว่งไมโครคอนโทรลเลอร์กับอุปกรณ์ภายนอกนั้นเอง

รูป 1 แสดงโครงสร้างภายในของพอร์ต

1.1 การใช้งานไมโครคอนโทรลเลอร์ให้เป็นพอร์ตอินพุต (INPUT PORT)

        การกำหนดให้พอร์ตหรือบิตใดๆ ของไมโครคอนโทรลเลอร์เป็นพอร์ตอินพุต หรือส่วนในการรับค่าของข้อมูลเข้ามาดังแสดงในรูป 5.2 จะเริ่มต้นด้วยการเขียนข้อมูลให้กับพอร์ตหรือบิตนั้นๆ เป็นสถานะลอจิก "1" แล้วจึงส่งไปแต่ละบิตของพอร์ตที่ต้องการใช้งาน เพื่อให้เป็นพอร์ตอินพุต เช่นใช้คำสั่ง MOV P3, #0FFH หรือคำสั่ง SETB P1.5 จะทำให้วงจรส่วนของการคงสภาวะข้อมูล หรือวงจรแลตซ์(Latch)* ซึ่งสร้างมาจากวงจร ดี ฟลิป-ฟลอป (D flip-flop) จะให้เอาต์พุต Q มีสถานะลอจิกเป็น "1" แล้วจะผ่านไปที่วงจรกลับสัญญาณ (Inverter) เพื่อให้หยุดการทำงานของเฟต (FET)* ซึ่งจะทำให้ขาสัญญาณของพอร์ตถูกเชื่อมต่อเข้ากับวงจรพูลอัป * ที่เป็นตัวต้านทานภายใน (Internal Pull up) โดยตรง ส่งผลให้ขาพอร์ตนั้นมีสถานะลอจิกเป็น "1" และสามารถจะรับสัญญาณที่เป็นลอจิก "0" จากอุปกรณ์ภายนอกได้ ข้อมูลจากอุปกรณ์ภายนอกที่ต่ออยู่ก็จะถูกส่งเข้ามาเก็บไว้ในวงจรบัฟเฟอร์ภายในพอร์ต เพื่อรอให้ซีพียูมาทำการอ่านค่าเข้าไป ดังนั้นอุปกรณ์ภายนอกที่เราจะนำมาเชื่อมต่อกับพอร์ตอินพุต จึงนิยมกำหนดให้ทำงานในสภาวะลอจิก "0"

รูป 2 แสดงการกำหนดเป็นพอร์ตอินพุตโดยให้สถานะเป็น "1" ตำแหน่งบิตที่ต้องการ
1.2 การอ่านค่าลอจิกจากพอร์ต
        การอ่านค่าลอจิกจากพอร์ตทำได้ 2 ลักษณะด้วยกันคือ การอ่านค่าจากขาพอร์ตโดยตรง (Read Pin) และ การอ่านค่าจากวงจรแลตซ์ของแต่ละพอร์ต (Read Latch) ในกรณีที่พอร์ตต่อกับขาเบสของทรานซิสเตอร์ * ชนิด NPN ให้เป็นทรานซิสเตอร์สวิตซ์ และที่ขาอิมิตเตอร์ของทรานซิสเตอร์ต่อลงกราวด์ (ดูรูป 5.3 ประกอบ) ถ้าหากมีการส่งข้อมูลให้เป็นลอจิก "1" ไปยังทรานซิสเตอร์ จะทำให้ทรานซิสเตอร์ทำงาน (นำกระแส) ส่งผลให้สถานะลอจิกที่ขาพอร์ตเป็นลอจิก "0" ด้วยเหตุผล เมื่อทรานซิสเตอร์นำกระแส จะเสมือนว่าขาพอร์ตนั้นถูกต่อลงกราวด์ ( VBE=0.6 V * ) ดังนั้นถ้าหากอ่านค่าลอจิกที่ขาพอร์ตโดยตรง (Read Pin) จะได้ผลตรงกันข้ามกับค่าลอจิกที่ส่งออกมา แต่ถ้าหากทำการอ่านค่าลอจิกที่วงจรแลตซ์ (Read Latch) จะได้สถานะลอจิกตรงกับค่าที่ส่งออกพอร์ตจริง ด้วยเหตุผลนี้ในการอ่านค่าลอจิกจากพอร์ตจึงต้องเลือกวิธีการให้เหมาะสมกับอุปกรณ์ที่นำมาต่อด้วย

รูป 3 แสดงสถานะของทรานซิสเตอร์ชนิด NPN เมื่อนำมาต่อเป็นทรานซิสเตอร์สวิตซ์
1.3 การใช้งานไมโครคอนโทรลเลอร์ให้เป็นพอร์ตเอาต์พุต(OUTPUT PORT)

       การกำหนดให้มีลักษณะเป็นพอร์ตเอาต์พุต เราสามารถจะส่งข้อมูลที่เป็นลอจิกที่ต้องการออกไปได้โดยตรง เช่นถ้าเราต้องการส่งข้อมูลที่เป็นสถานะลอจิก "0" ออกไปทางพอร์ต P1 ทั้ง 8 บิต ก็สามารถที่จะเขียนโดยใช้คำสั่ง MOV P1,#00H จะทำให้เอาต์พุตของวงจรแลตซ์เป็นสถานะลอจิก "0" ซึ่งจะส่งต่อไปให้กับวงจรกลับสัญญาณทำให้มีสถานะลอจิกเป็น "1" แล้วจึงส่งต่อไปขับเฟต(FET) ให้ทำงาน ส่งผลให้ตำแหน่งของพอร์ตที่กำหนดให้ทำงานจะเป็นสถานะลอจิก "0" ในทำนองเดียวกันถ้าหากเราต้องการจะส่งข้อมูลลอจิก "1" ออกไป ก็สามารถเขียนข้อมูล "1" ไปยังวงจรแลตซ์ วงจรขับก็จะหยุดการทำงานเป็นผลทำให้ที่ขาของพอร์ตเชื่อมต่อกับวงจรพูลอัปภายในเกิดเป็นสถานะลอจิก "1" ที่ขาพอร์ตนั้น ซึ่งจะคล้ายกับการกำหนดให้เป็นขาอินพุต เพียงแต่แตกต่างกันที่กระบวนการในการเคลื่อนย้ายข้อมูล โดยถ้าเป็นอินพุต จะมีสัญญาณมาอ่านข้อมูลที่บัฟเฟอร์ แต่ถ้าเป็นเอาต์พุตจะไม่มีการอ่านข้อมูลที่บัฟเฟอร์แต่อย่างใด เว้นแต่ในกรณีที่ต้องการตรวจสอบข้อมูลที่ส่งออกมาทางเอาต์พุตเท่านั้น

   ไอซีไมโครคอนโทรลเลอร์เบอร์ AT89CX051 ที่ตำแหน่งพอร์ตสามารถเป็นทั้งอินพุตพอร์ตและเอาต์พุตพอร์ต และที่พอร์ตจะมี
Resister Pull up ไว้ภายในแล้ว ยกเว้นที่พอร์ต P1.0 และ P1.1 ต้องใช้ R Pull Up จากภายนอก การใช้งานเป็นพอร์ตเอาต์พุตในแต่ละบิต ของแต่ละพอร์ตมีความสามารถในการรับกระแสเข้าหรือที่เรียกว่า กระแสซิงค์ (Sink current) ได้สูงสุด 20mA และทุกขารวมกันในแต่ละพอร์ต ในกรณีที่ใช้งานพร้อมกัน จะสามารถรับกระแสเข้าได้รวมกันสูงสุดไม่เกิน 80 mA ดังนั้นในการใช้งานทุกขาเป็นพอร์ตเอาต์พุต เพื่อไม่ให้เกิดปัญหาเกี่ยวกับความสามารถในการรับกระแสเข้าจึงควรต่อวงจรบัปเฟอร์ ทางเอาต์พุตเพื่อช่วยป้องกัน ไอซีเสียหายจากการรับกระเข้าเกินกำหนด แต่ในวงจรที่เราใช้ทดลองจะมีไอซี 74HCT245 ต่อไว้ให้แล้ว

       ที่ตำแหน่งของบิตเมื่อให้เอาต์พุตมีสัญญาณออกเป็นลอจิก "0" จะรับกระแสเข้ามาเรียกว่า IOL (Sink Current)
       ที่ตำแหน่งของบิตเมื่อให้เอาต์พุตมีสัญญาณออกเป็นลอจิก "1" จะมีกระแสจ่ายออกมาเรียกว่า IOH (Source Current)


ระบบเลขฐาน


หน่วยประมวลผลทางคณิตศาสตร์และตรรกะ (ALU)


จอห์น ฟอน นอยมันน์


ความแตกต่างระหว่างข้อมูลและสารสนเทศ


ความแตกต่างระหว่างข้อมูลและสารสนเทศ