สำนักงานราชบัณฑิตยสภา
แผงวงจรไมโครคอนโทรลเลอร์เพื่ อการเรี ยนรู้ 56 The Journal of the Royal Institute of Thailand Vol. 38 No. 3 July-Sep 2013 รวม 8259 รายละเอียดและโปรแกรมที่ใช้ในการทดสอบมีอยู่ใน Fuller (1995: 65-71) ในที่นี้ผู้นิพนธ์จะ กล่าวถึงขั้นตอนที่ใช้ในโปรแกรมดังกล่าวเท่านั้น คือ ๑) โปรแกรมปิดกั้นการขัดจังหวะเอาไว้ ( clear interrupt , cli ) แล้วก� ำหนดเลขที่อยู่ของสแต็ก ( stack ) ในแรมซึ่งจะใช้บันทึกข้อมูลชั่วคราวที่เกี่ยวข้องกับการขัดจังหวะ ๒) โปรแกรมจัดให้วงจรรวม 8255 ท� ำงานในโหมด 0 โดยที่ช่องทาง A เป็นที่รับสัญญาณเข้า, ช่องทาง B เป็นที่ปล่อยสัญญาณออก (ไปสู่ไดโอดเปล่งแสง) และช่องทาง C เป็นที่รับสัญญาณเข้า ๓) โปรแกรมจัดตารางเวกเตอร์ขัดจังหวะ ( interrupt vector table ) ในแรม โดยให้เวกเตอร์ 58 h บรรจุเลขที่อยู่ของรูทีน ( routine ) ที่จะใช้เมื่อวงจรรวม 8259 ได้รับสัญญาณ INTR TEST และส่งสัญญาณ ผ่านขา 17 ( INTR ) ไปยังวงจรรวม 8088 ๔) โปรแกรมจัดให้วงจรรวมรับสัญญาณ INTR TEST ที่เป็นแบบระดับ ( level trigger ) โหมด เดี่ยว ( single mode ) โดยมีจ� ำนวนแสดงแบบชนิด ( type number ) ของการขัดจังหวะเป็น 58 h ส� ำหรับ ไมโครโพรเซสเซอร์ 8088 และปิดกั้นการขัดจังหวะที่จะเข้าสู่ขา 19-25 ( IR 1- IR 7) ของ 8259 ๕) โปรแกรมเปิดให้มีการขัดจังหวะการท� ำงานของไมโครโพรเซสเซอร์ 8088 ได้ ( set interrupt , sti ) ในระหว่างที่ 8088 ท� ำงานแบบวิ่งวนอยู่ในวงรอบ ๖) โปรแกรมก� ำหนดรูทีนส� ำหรับตอบรับการขัดจังหวะแบบ 58 h โดยให้ไมโครโพรเซสเซอร์สั่ง เปิดสลับกับปิดแสงจากไดโอดเปล่งแสงที่ต่ออยู่กับวงจรรวม 8255 ผู้ทดลองสามารถทดสอบการขัดจังหวะของวงจรรวม 8259 ได้โดยโยกสวิตช์ SW 2 ที่วงจรแลตช์ ในรูปที่ ๒ และสังเกตการท� ำงานที่ถูกต้องดังนี้ คือ ถ้า SW 2 อยู่ในต� ำแหน่งที่สัญญาณ INTR TEST มี ระดับเป็นค่าตรรกะ 1 ไดโอดเปล่งแสงจะกะพริบเป็นจังหวะ แต่ถ้า SW 2 อยู่ในต� ำแหน่งที่สัญญาณ INTR TEST มีระดับเป็นค่าตรรกะ 0 ไดโอดเปล่งแสงจะหยุดกะพริบ การทดสอบวงจรสื่อสารข้อมูลแบบอนุกรม การท� ำงานเชิงตรรกะของวงจรรวม 8251 ในรูปที่ ๖ สามารถทดสอบได้โดยการเขียนโปรแกรม คอมพิวเตอร์ขึ้นใช้กับไมโครโพรเซสเซอร์ 8088 เพื่อให้สื่อสารข้อมูลกับคอมพิวเตอร์ส่วนบุคคลผ่าน ทางสายสื่อสารและหัวต่อสาย DB 9/ F ตามรูปดังกล่าว โปรแกรมที่ใช้ ซึ่งเขียนเป็นภาษาแอสเซมบลี ดังที่แสดงไว้ในรูปที่ ๑๐ จะสั่งให้วงจรรวม 8253 ก� ำหนดอัตราการรับ-ส่งข้อมูล ( baud rate ) ไว้ที่ ๑,๒๐๐ บอด และสั่งให้วงจรรวม 8251 ท� ำงานแบบไม่ประสานเวลา ( asynchronous ) โดยใช้บิตหยุด ( stop bit ) ๑ บิต, ใช้ข้อมูลขนาด ๘ บิต และไม่ใช้บิตภาวะคู่หรือคี่ ( no parity bit ) (รายละเอียดเกี่ยวกับการสื่อสารข้อมูล แบบอนุกรมนี้ โปรดดูใน Fuller 1995: 153-161 หรือ Thompson 1995: 167-177) เพื่อให้โปรแกรม ไม่ซับซ้อน ผู้นิพนธ์ได้เขียนโปรแกรมให้แผงวงจรไมโครคอนโทรลเลอร์ในบทความนี้รับข้อมูลแอสกี ( ASCII )
Made with FlippingBook
RkJQdWJsaXNoZXIy NTk0NjM=