标题:
单片机定时100ms中断10次就是1S的初始程序怎么写
[打印本页]
作者:
hhh275
时间:
2014-11-28 22:26
标题:
单片机定时100ms中断10次就是1S的初始程序怎么写
我需要显示的是1S
void timer0_init(void)
{
TMOD=0X01;
TH0=0x9e; //定时50ms, x*12/6M=0.05 x=25000 ; T0=Y X+Y=65536; Y=40536;
TL0=0x58;
}
void time0_int(void) interrupt 1
{
TR0=0;
EA=0;
TF0=0;
TMOD=0X01;
TH0=0x9e;
TL0=0x58; //定时50 ms
cnt++;
if(sec==20)
{sec++;
}
else
{sec=0;
cnt=0;
}
EA=1;
TR0=1;
}
我显示的是cnt,结果显示出来的2位数,个位不是以秒显示,这是为什么 ,谢谢
作者:
admin
时间:
2014-11-28 23:04
void timer0_init(void) 这个初始化应该没问题吧
作者:
admin
时间:
2014-11-28 23:09
20次*每次50=1000毫秒
作者:
hhh275
时间:
2014-11-29 21:19
admin 发表于 2014-11-28 23:09
20次*每次50=1000毫秒
cnt++;
if(sec==20)
{sec++;
}
else
{sec=0;
cnt=0;
}
EA=1;
TR0=1;
}
这样写法对吗
作者:
jxz950214
时间:
2014-11-29 23:22
void timer0_init()
作者:
skyhanfeng
时间:
2014-12-2 17:00
void InitTimer0()
{
TMOD = 0x01;//定时50 毫秒
TH0 = 0x3C;
TL0 = 0x0B0;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void Timer0Interrupt() interrupt 1
{
TH0 = 0x3C;
TL0 = 0x0B0;
sec++;
if(sec==20)
{
sec = 0;//定时1S,cnt加1
cnt++;
}
}
作者:
xiao_yp2014
时间:
2014-12-3 08:36
* 如何知道1秒钟需要多少个定时中断?
* 这个需要编写一段小程序测试,得到测试的结果后再按比例修正。
* 步骤:
* 第一步:在程序代码上先写入1秒钟大概需要200个定时中断。
* 第二步:基于以上1秒钟的基准,编写一个60秒的简单测试程序(如果编写超过
* 60秒的时间,这个精度还会更高)。比如,编写一个用蜂鸣器的声音来识别计时的
* 起始和终止的测试程序。
* 第三步:把程序烧录进单片机后,上电开始测试,手上同步打开手机里的秒表。
* 如果单片机仅仅跑了27秒。
* 第四步:那么最终得出1秒钟需要的定时中断次数是:const_time_1s=(200*60)/27=444
*/
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1