下面的程序功能是利用定时器T0中断控制输出矩形波,周期为50us,占空比50%:
#include<KF8V111.h>
unsigned char Flag; //中断计数标志
void SYSTEM_Init(void) //系统时钟配置
{
Flag=0;
IRCS0 =0;
IRCS1 =1;
IRCS2 =1; //系统时钟频率8MHz
}
void PORT_Init(void) //I/O口配置
{
TR05 = 0; //P05配置为为输出模式
P0LR5 = 0; //P05初始化输出为0
}
void TIM0_Init(void)
{
T0CS = 0; //选择定时模式
PSA =1;//不分配预分频器
T0 = 205; //计数初始值
T0IE =1;
AIE = 1; //开中断
}
void main()
{
SYSTEM_Init();
PORT_Init();
TIM0_Init();
while(1)
{
if(Flag)
{
Flag =0;
P0LR5 = ~P0LR5; /输出取反
}
}
}
|