12-用定時中斷長延時實現P0口多個LED亮滅.rar
(13.68 KB, 下載次數: 7)
2017-12-2 11:58 上傳
點擊文件名下載附件
/****************《51單片機輕松入門-基于STC15W4K系列》配套例程 *************
★★★★★★★★★★★★★★★★★★★★★★★★
《51單片機輕松入門-基于STC15W4K系列》 配套例程
// 用定時中斷長延時實現P0口多個LED亮滅.rar
★★★★★★★★★★★★★★★★★★★★★★★★*/
#include "STC15W4K.H" // 包含 "STC15W4K.H"寄存器定義頭文件
sbit LED0=P0^0;
sbit LED1=P0^1;
void main()
{
TMOD=0x01; // 定時器0_16位計數
TH0=0x70; // 經計算定時20ms初值是0x7000
TL0=0x00;
TR0=1; // 定時器開始運行
ET0=1; // 開定時器0中斷開關
EA=1; // 開總中斷開關
while(1);
}
void Timer0() interrupt 1
{
static Count1=0; // 靜態變量計數器,靜態變量只在首次運行時賦值1次*/
static Count2=0; // 靜態變量計數器
Count1++; // 每次中斷計數器加1
Count2++; // 每次中斷計數器加1
if(Count1>=25) // 如果計數器超過25
{
LED0=!LED0; // 取返P0.0
Count1=0; // 計數器清零
}
if(Count2>=50) // 如果計數器超過50
{
LED1=!LED1; // 取返P0.1
Count2=0; // 計數器清零
}
TH0=0x70; // 重裝定時初值
TL0=0x00;
}
|