这是51单片机定时器初始化示例程序。
TMOD = 0x10f //GATE=0 01010001
//C/T=0--定时/计数器1工作于定时方式
//M1=1M0=0--选择工作模式1,构成最大定时器
//T0:在此程序不使用
TL1 = 0x13TH1 = 0x2C//指定定时时间为50ms 65536-50/(11.0592/12)=11283=2C13h
EA = 1 //开总中断
TF1 = 0
ET1 = 1 //开定时器中断
TR1 = 1 //开始计时
如果用延时函数,要精确计算时间。
这此弯是精确定时1ms的程序,你可以参考一森缓闷下。
void delay1ms(void)
{
unsigned char a,b,c
for(c=1c>0c--)
for(b=142b>0b--)
for(a=2a>0a--)
}
给你个提示吧,在主程序里面设置好中断,埋橘困然后开中断,定时够6秒,这伍袜个定时不能直接顶出来的,你弯念可以间接得到,你可以定时0.1秒,然后用一个变量装起来,没定时一次,在中断服务程序里面对这个变量加一,然后在主程序里面不断判断这个变量是否够6000,够的话就对你要的那个变量加一,然后对这个6000的变量清零,就可以了。这个单片机的程序一定要自己多写才行的,这样才可以学到东西。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)