51单片机定时器0程序

#include
sbit OUT=P1^1;
/*----------------
定时器0初始化子程序
-----------------*/
void Init_Timer0(void)
{
TMOD |=0x01;//采用定时器0,16位
TH0=0x00; //初始值高、低8位值,此处从0开始至65536
TL0=0x00;
EA=1; //总中断打开
ET0=1; //定时器中断打开
TR0=1; //定时器开关打开
}
/*----------------
主程序
-----------------*/
main()
{
Init_Timer0();
while(1);
}
/*----------------
定时器中断子程序
-----------------*/
void Timer0_isr(void) interrupt 1
{
static unsigned int i;
TH0=(65536-10000)/256; //重新赋值 12M晶振计算,指令周期1us,
TL0=(65536-10000)%256; //20ms方波半个周期10ms,即定时10000次
//溢出然后输出端取反
i++;
if(1==11) //定时10ms,循环10次,输出10*10=100ms
{
i=0;
OUT =~OUT;
}
}

相关文档
最新文档