- 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
ไฟล์ Proteus Schematic
ไฟล์ main.c,main.h และ REG51.h




