假设你用的
晶振为12M,用P1.0口输出周期为2ms的
方波。使用定时器工作方式1.
至于计数初值的计算,授之以鱼不如授之以渔!
在定时器模式下,
计数器的计数脉冲来自于晶振脉冲的12分频信号,即对
机器周期进行计数。若选择12M晶振,则定时器的计数频率为1MHZ。假设定时时间为T,机器周期为T1,即12/晶振频率。X为定时器初值。则 X=2^n-T/T1。方式0,n=13,方式1时,n=16,方式2和方式3,n=8
自己算去吧!
#include <reg51.h>
void InitTimer0(void)//
{
TMOD = 0x01;
TH0 = 0x0FC; //计数器初值
TL0 = 0x18;
EA = 1;
ET0 = 1;
TR0 = 1;//开启定时器T0
}
void main(void)
{
InitTimer0();
}
void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x0FC;//重新赋初值
TL0 = 0x18;
P1.0=~P1.0; //输出方波
}