
Biên so n: Đ Bình Nguyênạ ỗ
BÀI T P TH C HÀNH KEIL CẬ Ự

Hàm delay
Dùng vòng l p for, whileặ
void delay(usigned char time)
{
while(time--)
{
unsigned char temp = 121;
while(temp--); // ch ng làm gì cẳ ả
}
}

Hàm delay t.t.
Dùng timer
void delay(unsigned char time)
{
while(time--)
{
TMOD = 0x01; //timer0 ch đ 16 bitế ộ
TH0 = 0xFC; //n p giá tr cho timerạ ị
TL0 = 0x67;
TR0 = 1; //kh i đ ng b đ nh th iở ộ ộ ị ờ
while(!TF0); //ch c TFờ ờ 0 = 1
TF0 = 0 ; //xóa c trànờ
TR0 = 0; //d ng b đ nh th iừ ộ ị ờ
}
}

LED đ nơ

Đ m nh phânế ị
Vi t ch ng trình đ m nh phân và hi n th ra các led đ n Port 1ế ươ ế ị ể ị ơ ở
#include <at89x52.h>
void delay (unsigned char time); // khai báo prototype
void main (void)
{
unsigned char led = 0; // bi n l u tr s đ mế ư ữ ố ế
while (1)
{
P1 = ~led; // xu t giá tr ra Port 1ấ ị
led ++; // tăng bi n đ m lên 1 đ n vế ế ơ ị
delay(100);
}
}
void delay (unsigned char time) // thân ch ng trình ươ
delay
{…}

