stc51 单片机使用定时器问题

void zhenyunxing()
{
while (1)
{

P1_2=0;
yimiaoyanshi();
P1_2=1;
yimiaoyanshi();
}
}

void time0() interrupt 1 //定时器程序
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ee++;
if(ee==20)
{
ee=0;
cc=0;
}
}

void yimiaoyanshi()//一秒延时程序
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;//启动定时器0
while(cc)
{

}
cc=1;
TR0=0;
}

晶振用的是 12hmz 本应该是 延时一秒 但为何 实际大概只有1/8 秒?

第1个回答  2015-09-22
TMOD应该设置为0x01,否则定时器默认工作在模式0,只有13位。
第2个回答  2012-09-04
STC的单片机有部份指令上单指令周期,所以快很多,详情请查看手册。追问

启动定时器时候 程序完全在空运行啊
while(cc)
{

}

本回答被网友采纳
第3个回答  2012-09-04
你确定TMOD配置正确了?你确定TH0和TL0初始值计算正确了?
第4个回答  2012-09-04
没见到TMOD的设置呢追问

这些都已经设置好了 只是没贴出来 要是没设置 定时器压根就不会工作呢 那我又怎会测出来大概只有1/8 秒?

相似回答