void Timer1Init(void) //500微秒@6.000MHz
{
AUXR &= 0xBF //定时器时钟12T模式
TMOD &= 0x0F //设置定时器模式
TMOD |= 0x20 //设置定时器模式
TL1 = 0x06 //设置定时初值
TH1 = 0x06 //设判冲孙置定时重载值
TF1 = 0 //清除TF1标志
TR1 = 1 //定时器1开始计时
}
电子闹钟如何精确定时一秒如下笑腊采用定时器定皮逗时很精确的,如果定时时间为1ms,那循环1000次就是1s。
定时初值要看你采用的晶振频率了,下面是12M晶振,定时器0的定时1ms程序。
timer0() interrupt 1 /
1ms延时(12.0MHz)
{
TR0=0
ET0=0
TH0=0xfc
TL0=0x18
if(delayTimes1!=0) delayTimes1--
TR0=1
ET0=1
}
当要程序中把delayTimes1赋值1000后,等到delayTimes1为0的时候碰握滑定时1s钟。
#include<time.h>#include<stdio.h>前链郑
void main()
{
clock_t start,finish
double durtion=0
printf("计时开始\n")
start=clock()
while(1-durtion>0.00001)
{
finish=clock()
durtion=(double)(finish-start)
}
printf("唤好1ms计时完毕\慧颂n")
}
原理:两个时间差值是1ms就立即跳出while循环,C语言中时间分度值是ms
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)