รู้จักไมโครคอนโทรลเลอร์ตระกูล 8051
ปัจจุบันถึงแม้ว่าวงการเรียนรู้ไมโครคอนโทรลเลอร์ในบ้านเราเริ่มเปลี่ยนไปเล่น MCU ใหม่ๆ ที่มีความสามารถมากขึ้น ทำงานได้ซับซ้อนและรองรับเทคโนโลยีใหม่ๆ เช่น IoT และก็พัฒนาให้การใช้งานมันได้ง่ายกว่าแต่ก่อนอย่างมาก ไมโครคอนโทรลเลอร์รุ่นก่อนๆ ที่เป็นระบบ 8 Bit จึงดูเสื่อมความนิยมลงไปเรื่อยๆ แต่อย่างไรก็ตามผมเชื่อว่าในโรงงานอุตสาหกรรมยังจะยังคงใช้ไมโครคอนโทรลเลอร์ที่เป็นระบบ 8 Bit นั้นไปอีกนาน เพราะความเสถียรที่มีการพัฒนามาอย่างยาวนาน โดยเฉพาะเครื่องมือควบคุมหรือเครื่องจักรต่างๆ ในโรงงาน แต่สำหรับผลิตภัณฑ์ต่างๆ ก็คงมีการเปลี่ยนไปใช้ MCU ใหม่ๆ เนื่องจากมีการปรับเปลี่ยนการออกแบบผลิตภัณฑ์ให้ทันสมัยอยู่ตลอดเวลา
ถึงอย่างไรผมเชื่อว่าการเรียนรู้ไมโครคอนโทรลเลอร์ 8 Bit ก็ยังมีประโยชน์สำหรับผู้เริ่มต้น ซึ่งจะทำให้เป็นพื้นฐานสำหรับการเรียนรู้ไมโครคอนโทรลเลอร์ตัวใหม่ๆ ได้อย่างง่ายดายขึ้น
ไมโครคอนโทรลเลอร์ของบริษัท Intel ตระกูล MCS-51 ได้มีการนำไปใช้งานอย่างแพร่หลายตั้งแต่ยุค 80
ผมเองสมัยเรียนไม่เคยได้ยินหรือได้ทดลองเล่นมันมาก่อน จนเมื่อได้เริ่มทำงานในโรงงานอุตสาหกรรม ครั้งแรกที่เห็นได้เห็นรู้จักไมโครคอนโทรลเลอร์ก็จะเป็น MCS-48 ซึ่งถูกเอามาใช้ในพวกเครื่องมือวัดและทดสอบต่างๆ ของโรงงานที่ผมทำงาน
ขณะเดียวกันเมื่อมีการย้ายผลิตภัณฑ์ที่ผลิตจากบริษัทแม่ในต่างประเทศเข้ามาผลิตยังโรงงานในประเทศไทย ซึ่งผลิตภัณฑ์เหล่านั้นเป็นหัวเครื่องรับโทรศัพท์ระบบ Key Telephone ซึ่งเกือบทั้งหมดจะใช้ไมโครคอนโทรลเลอร์ตระกูล MCS-51 ซึ่งในขณะเดียวกันก็เริ่มมีบริษัทเอกชนสองสามแห่งในไทยเริ่มพัฒนาไมโครคอนโทรลเลอร์บอร์ดออกมาจำหน่าย และก็เริ่มมีหนังสือวารสารและวิชาการต่างๆ ที่เผยแพร่ความรู้ของไมโครคอนโทรลเลอร์ และมีการเรียนการสอนในสถาบันการศึกษาต่างๆ มากขึ้นเรื่อย
ไมโครคอนโทรลเลอร์ตระกูล MCS-51 ได้ถูกนำไปผลิตด้วยบริษัทอื่นๆ อีกหลายบริษัทและก็มีการแตกซีรี่ย์ออกไปอีกมากมายหลายรุ่น แต่ก็ยังมีสถาปัตยกรรมพื้นฐานที่เหมือนกัน เพียงแต่มีขนาดของหน่วยความจำภายในที่แตกต่างกันออกไปเพื่อความเหมาะสมในการนำไปประยุกต์ใช้งาน
คุณลักษณะพื้นฐานของไมโครคอนโทรลเลอร์ MCS-51
- หน่วยประมวลผลขนาด 8 bit มีหน่วยประมวลผลข้อมูลแบบบิต (Boolean Processor)
- ความสามารถในการอ้างตำแหน่งของหน่วยความจำโปรแกรม 64KB
- ความสามารถในการอ้างตำแหน่งของหน่วยความจำข้อมูล 64KB
- มีหน่วยความจำสำหรับโปรแกรมภายในให้บางส่วนเช่น 4K, 8K, 16K, … (ขึ้นอยู่กับเบอร์ของ MCU)
- มีหน่วยความจำ RAM ภายในขนาด 128 byte หรือ 256 byte (ขึ้นอยู่กันเบอร์ของ MCU)
- มีพอร์ต Input/output แบบขนานจำนวน 4 port (32 pin) ซึ่งสามารถแยกทำงานได้อย่างอิสระ
- มีวงจรนับจับเวลาขนาด 16 bit จำนวนสองวงจร
- วงจรสื่อสารแบบอนุกรมแบบฟูลดูเพล็กซ์
- วงจรควบควมการอินเตอร์รัปต์จากแหล่งกำเนิดสัญญาณ 6 ประเภท พร้อมการกำหนดลำดับความสำคัญได้สองระดับ
- วงจรออสซิลเลเตอร์ภายใน
และบทความต่อๆ ไปผมจะทยอยเอารายละเอียดของมันมาอธิบายเผื่อว่าจะยังมีคนสนใจอยากเข้าใจการทำงานของมัน