Microcontroller

Micro-Controller คือ ตัวควบคุมการทำงานของอุปกรณ์หรือขบวนการต่างๆ ซึ่งอาจทำขึ้นมาจากวงจรไฟฟ้ากลไก PLC ฯลฯMicro-Controller ก็คือ อุปกรณ์ประเภทสารกึ่งตัวนำที่รวบรวมฟังก์ชั่นการทำงานต่างๆ ไว้ภายในตัวของมันเอง มีขนาดเล็ก และสามารถเขียนโปรแกรมควบคุมการทำงานของอุปกรณ์ต่างๆ ที่เชื่อมต่อกับตัวมัน โดยเน้นความสมบูรณ์ภายในตัวของมันเองและง่ายต่อการนำไปใช้งานหรือแก้ไขดัดแปลง

MicroController ทั่วๆ ไปประกอบด้วย

  • CPU (Central Processing Unit)
  • RAM (Random Access Memory)
  • EPROM/PROM/ROM (Erasable Programmable Read Only Memory)
  • I/O (Input/Output) - serial and parallel
  • Timers
  • Interrupt Controller

และส่วนประกอบอื่นๆ เช่น Analog to Digital Convertor, Pluse Width Modulator ฯลฯ ซึ่งขึ้นกับผู้ผลิตที่จะใส่เข้าไป เพื่อเพิ่มความสามารถของ MicroController และจุดประสงค์ในการใช้งาน

ความแตกต่างของ MicroController และ MicroComputer คือ MicroComputer นั้นต้องการอุปกรณ์เชื่อมต่อภายนอก เช่น หน่วยความจำ I/O ฯลฯ ส่วน MicroController นั้นมีสมบูรณ์ภายในตัวของมันเอง

ภาษาของ Micro-Controller

ภาษาที่ใช้กับ MicroController นั้นจะแตกต่างกันตาม MicroController ของแต่ละตระกูลแต่ประเภทของภาษาที่ใช้สามารถแบ่งออกเป็น

  • ภาษาเครื่อง/ภาษา Assembly

ภาษาเครื่อง(Machine Language) คือโปรแกรมที่ MicroController สามารถเข้าใจมัน แต่มันไม่ง่ายสำหรับ มนุษย์ที่จะอ่านได้ ภาษา Assembly คือ รูปแบบของภาษาเครื่องที่มนุษย์สามารถอ่านออกได้ ภาษา assembly เป็นโปรแกรมที่ทำหน้าที่ในการแปลงจากคำสั่งที่มนุษย์เอ่านออกได้ไปเป็นภาษาเครื่อง ซึ่งแปลงคำสั่ง/คำสั่ง โปรแกรมที่เขียนโดยภาพา assembly จะทำงานเร็วและมีขนาดเล็ก เพราะว่ามันสามารถเข้าถึง Hardware ได้โดยตรง แต่ทั้งนี้ขึ้นอยู่กับวิธีการเขียนของผู้เขียนด้วย

  • Interpreters

interpreter คือ ภาษาระดับสูงซึ่งใกล้เคียงกับภาษาของมนุษย์ โดยจะฝังตัวอยู่ในหน่วยความจำ และทำหน้าที่อ่านคำสั่งจากโปรแกรมขึ้นมาทีละคำสั่งแล้วปฏิบัติตามคำสั่งนั้นๆ ตัวอย่างของ interpreter ที่รู้จักกันดีคือ ภาษา BASIC ข้อเสียของ interpreter คือ ทำงานได้ช้า เนื่องจากต้องแปลคำสั่งทีละคำสั่ง

  • Compilers

compiler คือ ภาษาระดับสูงซึ่งทำหน้าที่แปลโปรแกรมที่เขียนขึ้นให้เป็นภาษาเครื่อง จากนั้นจึงนำเอาโปรแกรมที่แปลเสร็จแล้วเข้าไปเก็บในหน่วยความจำ ทำให้การทำงานเร็วขึ้น ตัวอย่างเช่น ภาษา C เป็นต้น

 

CPU MCS-51 ของบริษัท ATMEL เป็น CPU ที่ได้รับความ นิยมค่อนข้างมาก และมีจำหน่ายในบ้านเรา ราคาถูกมีความยืดหยุ่น ในการใช้งานสูง CPU ที่นิยมใช้กันมาก ในบทความนี้ จะกล่าวถึง CPU ในตะกูล AT89cX051 คือ AT89c1051, AT89c2051 และ AT89c4051 คุณลักษณะสำคัญ ของCPU ตระกูลนี้คือ  
 
         ชุดคำสั่งเดียวกับ MCS-51
         ส่วนโปรแกรมเม็มโมรี่ จะมีอยู่ในชิฟเป็นชนิด Flash Memory สามารถโปรแกรมซ้ำได้ 1000 ครั้ง AT89c1051=1K, AT89c2051=2K, AT89c4051=4K
         แหล่งจ่ายไฟ ใชได้ตั้งแต่ AT89c1051 และ AT89c2051 = 2.7V ถึง 6V, AT89c4051 = 3.0V ถึง 6.0V
         ความถี่ใช้ได้ถึง 24 MHz
         สามารถล็อกบิตโปรแรมเม็มโมรี่ได้ 2 ระดับ
         หน่วยความจำแร็มภายใน AT89c1051 = 64 ไบท์, AT89c2051 และ AT89c4051 = 128 ไบท์
         15 อินพุตเอาท์พุตพอร์ท
         16 บิตไทม์เมอร์เคาท์เตอร์ 2 ตัว
         6 อินเตอร์รับซอร์ต
         ต่อ LED ได้ตรงโดยไม่ต้องใช้วงจรไดร์
         มีวงจรคอมพาราเตอร์เปรียบเทียบแรงสัญญาณอะนาล็อก
         ระบบประหยัดพลังงาน 2 ระดับ Idle และ Power Down
         Brown-Out Detection มีเฉพาะ AT89c4051
คุณสมบัติของ MCS51 (51,52,1051,2051)
== AT89C51==
- เป็นชิปขนาด 40 ขา มีคุณลักษณะพิเศษหลายอย่างดังนี้
- มีหน่วยความจำโปรแกรมชนิดแฟลชเมโมรี (Flash Memory) หรือชนิดที่เขียนและลบได้รวดเร็ว ขนาด 4 กิโลไบต์
  ทนต่อการเขียนลบได้ 1000 ครั้ง และคงค่าข้อมูลไว้ได้นาน 10 ปี
- ทำงานที่ความถี่นาฬิกา 0-24 เมกะเฮิรตซ์
- ป้องกันการอ่านข้อมูลจากหน่วยความจำโปรแกรม (Program Memory Lock) ได้ 3 ระดับ
- มีหน่วยความจำแรม (Ram) ภายในตัวชิปอยู่ 128 ไบต์
- มีขาอินพุต/เอาต์พุต ที่สามารถโปรแกรมได้จำนวน 32 ขา
- มีตัวตั้ง/ตัวนับเวลาขนาด 16 ไบต์จำนวน 2 ตัว
- สามารถรับการอินเตอร์รับ (Interrupt) หรือสัญญาณขัดจังหวะให้มีการทำงานก่อนได้จาก 5 แหล่ง
- มีช่องรับส่งข้อมูลแบบอนุกรมที่สามารถโปรแกรมได้

== AT89C52 ==
- เป็นชิปขนาด 40 ขามีคุณลักษณะเช่นเดียวกับ AT89C51 แต่มีข้อแตกต่างเล็กน้อยคือ
- มีหน่วยความจำโปรแกรมแฟลชเมโมรีเพิ่มขึ้นเป็น 8 กิโลไบต์
- มีหน่วยความจำแรมภายในตัวชิปเพิ่มขึ้นเป็น 256 ไบต์
- รับการอินเตอร์รัปต์ได้ 8 แหล่ง
- มีตัวตั้ง/ตัวนับเวลาขนาด 16 ไบต์ จำนวน 3 ตัว

== AT89C1051 ==
- เป้นชิปขนาด 20 ขา มีคุณลักษณะพิเศษหลายอย่างดังนี้
- มีหน่วยความจำชนิดแฟลชเมโมรีขนาด 1 กิโลไบต์
- ทำงานได้ที่สัญญาณนาฬิกา 0-24 เมกะเฮิรตซ์
- ป้องกันการอ่านข้อมูลจากหน่วยความจำโปรแกรมได้ 2 ระดับ
- มีหน่วยความจำแรมภายในชิปขนาด 64 ไบต์
- มีขาอินพุต/เอาต์พุต ที่สามารถโปรแกรมได้ 15 ขา
- มีตัวตั้ง/ตัวนับเวลาขาด 16 ไบต์ จำนวน 1 ตัว
- รับการอินเตอร์รับต์ได้ 3 แหล่ง
- เอาต์พุตสามารถนำไปขับหลอด LED ได้โดยตรง
- มีตัวเปรียบเทียบสัญญาณอนาลอก (Analog Comparator) อยู่ในตัวชิป

== AT89C2051 ==
- เป็นฃิป 20 ขา มีลักษณะเช่นเดียวกับ AT89C1051 แต่มีข้อแตกต่างกันดังต่อไปนี้
- มีหน่วยความจำโปรแกรมชนิดแฟลชเมโมรีขนาด 2 กิโลไบต์
- มีหน่วยความจำแรมภายในชิปขนาด 128 ไบต์
- มีตัวตั้ง/ตัวนับเวลาขนาด 16 ไบต์ จำนวน 2 ตัว
- รับการอินเตอร์รับต์ได้จาก 5 แหล่ง
- มีช่องการรับส่งข้อมูลแบบอนุกรม (Serial UART channal) 1 ช่อง
โครงสร้าง 8051

        ลักษณะการจัดขาภายนอกของ MCS-51การจัดขาตามลักษณะภายนอกของชิป MCS-51 จะมีการแบ่งกลุ่มการจัดขาออกเป็น 4 กลุ่มด้วยกัน คือ

กลุ่มขาแหล่งจ่ายไฟเลี้ยง และสัญญาณนาฬิกา
กลุ่มขาสำหรับการอ้างแอดเดรสและรับส่งข้อมูล
กลุ่มขาที่ใช้ในการควบคุม
กลุ่มขาพอร์ตใช้งานแบบขนานและอนุกรม
โครงสร้างภายในของไมโครคอนโทรลเลอร์ MCS-51
โครงสร้างภายในพื้นฐานของไมโครคอนโทรลเลอร์ตระกูล MCS-51 เบอร์ 8051 ประกอบด้วยอุปกรณ์ต่างๆดังนี้ ส่วนของหน่วยความจำภายในสำหรับเก็บข้อมูลขนาด 128 ไบท์ (Internal Data Memory) ส่วนของหน่วยความจำภายในสำหรับเก็บโปรแกรมที่มีขนาด 4 กิโลไบท์ (Internal Program Memory) อุปกรณ์ควบคุมการอินเตอร์รัพท์ (Interrupt Control Unit) ตัวตั้งเวลาและตัวนับเวลาขนาด 16 บิท 2 ชุด (Timer/Counter 0 and Timer/Counter 1) พอร์ตควบคุมการสื่อสารอนุกรมแบบ Full Duplex ซึ่งสามารถรับส่งข้อมูลพร้อมกันได้ พอร์ตขนานสำหรับติดต่อกับอุปกรณ์ภายนอกจำนวน 4 พอร์ต พอร์ตละ 8 บิท วงจรผลิตสัญญาณนาฬิกาภายใน