|
#include <reg52.h>
//#define X 50000 //宏定義一個數(shù),方便修改時間
sbit led_1 = P1^0; //定義P1口的第1位(即P1.0)
unsigned char count; //定義全局變量,不用賦值,默認為0
void init();
void main ()
{
init();
while (1)
{
if(count == 20 /*5*/) //每一秒進入一次if函數(shù)
{
count = 0; //count清零,重新開始加
led_1 = ~led_1; //位取反,實現(xiàn)LED等的閃爍效果
}
}
}
void init()
{
EA = 1; //開啟中斷總開關(guān)
ET0 = 1; //開啟定時器0中斷開關(guān)
TMOD = 0x01; //設(shè)置定時器0為工作方式1
TH0 = (65536 - 45872) / 256; //給定時器賦初值
TL0 = (65536 - 45872) % 256;
TR0 = 1; //使定時器0工作
}
void LED0() interrupt 1 //定時器0中斷服務(wù)程序
{
TH0 = (65536 - 45872) / 256; //每次進入中斷程序要從初值開始計算,否則會導(dǎo)致計算錯誤
TL0 = (65536 - 45872) % 256;
count++; //每進入一次中斷程序,count加一
}
|
|