12-用定时中断长延时实现P0口多个LED亮灭.rar
(13.68 KB, 下载次数: 7)
/****************《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;
}
|