การใช้งานไมโครคอนโทรลเลอร์ไม่ว่าจะนำไปประยุกต์ใช้งานในด้านใดก็ตามต้องมีการเขียนโปรแกรมในส่วนการหน่วงเวลา ทั้งนี้ก็เพราะว่าไมโครคอนโทรลเลอร์ใช้เวลาในการทำงานในแต่ละคำสั่งสั้นมาก ในการทดลองนี้เป็นการศึกษาวิธีการเขียนโปรแกรมหน่วงเวลาเพื่อให้เหมาะกับงานที่จะนำไปใช้งาน
การเขียนโปรแกรมหน่วงเวลาสามารถทำได้ 2 แบบคือ
1. การหน่วงเวลาโดยอาศัยการคำนวณทางคณิตศาสตร์
2. การหน่วงเวลาโดยอาศัยการทำงานของวงจรไทเมอร์เคาน์เตอร์
การหน่วงเวลาโดยอาศัยการคำนวณทางคณิตศาสตร์
เป็นการเขียนฟังก์ชั่นเพื่อให้ไมโครคอนโทรลเลอร์ไปคำนวณคณิตศาสตร์(นับเลข) ซึ่งผู้เขียนโปรแกรมสามารถใช้ฟังก์ชั่นได้หลายแบบขึ้นอยู่กับเทคนิคของแต่ละท่าน สำหรับในที่นี้ของแนะนำการใช้ฟังก์ชั่น For โดยมีผังไหลดังรูป
ตัวโปรแกรมจะได้ดังนี้
void delay(void)
{
int x;
for(x=0;x<1000;x++)
{}
}
เวลาเรียกใช้งานใช้รูปแบบ delay();
ในทางปฏิบัติการใช้ for เพียงครั้งเดียวจะใช้สำหรับหน่วงเวลาสั้นๆเท่านั้น หากต้องการหน่วงเวลามากขึ้นจะใช้ฟังก์ชั่น for ซ้อนอีกชั้นและให้มีการรับค่ากำหนดเวลาเข้าฟังก์ชั่นเพื่อให้สามารถหน่วงเวลาได้หลากหลายค่า ดังนี้
void delay(int n)
{
int x,y;
for(x=0;x<n;x++)
{
for(y=0;y<500;y++)
{
}
}
}
เวลาเรียกใช้งานใช้รูปแบบ delay(100); จะหน่วงเวลาน้อยกว่า delay(200); เนื่องจากค่าที่ส่งเข้าไปในฟังก์ชั่น