วันจันทร์ที่ 10 มีนาคม พ.ศ. 2557

Microcontroller ep.2

- Microcontroller Ep.2 -


            การเขียนโปรแกรมสำหรับไมโครคอนโทรลเลอร์ เราจะมาเริ่มต้นกันด้วยโปรแกรมง่ายๆอย่างการควบคุม input และoutput ของไมโครคอนโทรลเลอร์ โดยที่ Input และ Output ของไมโครคอนโทรลเลอร์นั้นจะมีลักษณะเป็นสัญญาณดิจิตอล คือ มีค่าเป็น High และ Low 

           เราจะตั้งค่าขาของไมโครคอนโทรลเลอร์เป็น Output เพื่อทำการ On และ Off อุปกรณ์ที่นำมาต่อเข้ากับไมโครคอนโทรลเลอร์ เช่น หลอด LED เป็นต้น ส่วนการตั้งค่าขาของไมโครคอนโทรลเลอร์ให้เป็น Input เพื่อรับค่าจาก สวิตส์แบบต่างๆ เช่น Push button (กดติดปล่อยดับ) เป็นต้น

           MCS-51 (AT89C51)

           การเขียนโปรแกรมสำหรับควบคุมไมโครคอนโทรลเลอร์นั้นจะต้องมีการกำหนด Register ว่า Address ไหนคือ อุปกรณ์อะไรโดยที่จะมีไฟล์สำหรับกำหนดค่าคือ REG51.h ซึ่งเก็บค่าของRegister ของไมโครคอนโทรลเลอร์ AT89C51 เอาไว้ การเรียกใช้ทำได้โดยการใช้คำสั่ง

            #include <REG51.h>
 
         โดยหากเปิดไฟล์  REG51.h ขึ้นมาจะพบว่ามีการกำหนด Register ของแต่ละพอร์ทเอาไว้ดังนี้

sfr P0   = 0x80;
sfr P1   = 0x90;
sfr P2   = 0xA0;
sfr P3   = 0xB0;

           คือ Port 0 จะแทนด้วยสัญลักษณ์ P0 , Port 1 จะแทนด้วยสัญลักษณ์ P1 ,Port 2 จะแทนด้วยสัญลักษณ์ P2 และ Port 3 จะแทนด้วยสัญลักษณ์ P3 ดังนั้นเราจะใช้สัญลักษณ์เหล่านี้ในการควบคุมขาของไมโครคอนโทรลเลอร์

            การเขียนโปรแกรมนั้น จะต้องมีฟังก์ชั่น void main() ซึ่งเป็นฟังก์ชั่นแรกที่ไมโครคอนโทรลเลอร์ของเราจะเข้าไปทำงาน โดยการควบคุม Input และ Output ของไมโครคอนโทรลเลอร์นั้นเราจะต้องทำการกำหนด ให้Port นั้นๆเป็น Input หรือ Output ก่อนซึ่งทำได้โดย

   P0 = 0xFF ;  //กำหนดให้ Port 0 เป็น input
  P1 = 0xFF ; //กำหนดให้ Port 1 เป็น input
P2 = 0x00 ; //กำหนดให้ Port 2เป็น  output
P3 = 0x00 ;  //กำหนดให้ Port 3เป็น  output

                หลังจากกำนด ทิศทางของแต่ละพอร์ทแล้ว เราจะใช้คำสั่ง

                  while(true)
{
}

      เพื่อให้ไมโครคอนโทรลเลอร์ของเรามีการทำงานซ้ำๆไปตลอด และในวงเล็บเราจะใส่คำสั่ง

P2 = P0 ;  // set Port2 equal to Port0
P3 = P1 ;  // set Port3 equal to Port1

     เพื่อกำหนดให้ พอร์ท2 มีค่าเท่ากับพอร์ท 0 และ พอร์ทมีค่าเท่ากับพอร์ท 1 ก็หวังว่าจะเป็นประโยชน์ต่อผู้เข้ามาอ่านไม่มากก็น้อยนะครับ
           



ไฟล์  Proteus Schematic
ไฟล์ main.c,main.h และ REG51.h

วันอาทิตย์ที่ 23 กุมภาพันธ์ พ.ศ. 2557

Microcontroller - ep.1

Microcontroller - Ep.1

                        ไมโครคอนโทรลเลอร์ คือ   อุปกรณ์ขนาดเล็กที่มีความสามารถคล้ายกับคอมพิวเตอร์ ซึ่ง
สามารถใช้ในการควบคุมอุปกรณ์ไฟฟ้าต่างๆ เช่น solenoid valve , Relay , 7- Segment , จอ lcd และอุปกรณ์อื่นๆอีกมากมาย และนอกจากนี้ยังสามารถใช้ในการอ่านค่าจากเซนเซอร์ต่างๆได้อีกด้วย

                  ไมโครคอนโทรลเลอร์ 8 bit ที่นิยมใช้หลักๆในประเทศไทย จะมีอยู่ 3 ค่าย คือ MCS51, AVR ของ Atmel และ PIC ของ Microchip 



                  การพัฒนาโปรแกรมของแต่ละค่ายจะใช้ IDE ที่ต่างๆกันไป คือ MCS51 ใช้โปรแกรม Keil เพียงแค่กรอกข้อมูลลงทะเบียนก็สามารถนับโปรแกรมมาใช้ได้ฟรีๆ แต่ก็มีการจำกัดความสามารถเอาไว้ หรือใช้ MCU 8051 IDE ซึ่งเป็น Free ware ก็ได้

    
                   สำหรับ AVR จะใช้โปรแกรม Atmel Studio ในการพัฒนาได้ฟรี เพียงแค่ลงทะเบียนกับบ.ผู้ผลิต

                     และสุดท้ายสำหรับ PIC ของบ.ไมโครชิพก็มีโปรแกรม MPLAB ให้ใช้ฟรีเช่นกัน

โครงสร้างทั่วไปของ ไมโครคอนโทรลเลอร์ จะประกอบไปด้วย 

  • ALU ซึ่งใช้ในการประมวลผลคล้ายกับ CPU ของคอมพิวเตอร์ 
  •  RAM สำหรับเก็บข้อมูลซึ่งข้อมูลจะหายไปหากไม่มีไฟฟ้าไปเลี้ยง 
  • EEPROM ซ้ำหรับเก็บ ข้อมูลเช่นกันแต่ว่าเมื่อไฟดับข้อมูลก็จะยังคงถูกเก็บไว้อยู่ 
  • PORT อุปกรณ์สำหรับใช้ในการติดต่อ/ควบคุมสั่งงานอุปกรณ์อื่นๆ