用到哪些寄存器?
- 中断使能寄存器// EA=1(总使能开),ET0=1(T0中断允许)
- 定时器/计数器控制寄存器TCON// TH0和TL0设定值确定时间间隔(方法下面讲) TR0=1(定时器0启动),TF0中断函 数里面会用到
- 定时器 / 计数器工作模式寄存器TMOD // TMOD=0x01(TH0,TL0全用)
代码模板
void main()
{EA=1;//总使能开TMOD=0x01;//十六位不可重装载模式,TH0,TL0全用TH0=0xfc;//设定中断时间间隔,后面会讲TL0=0x67;ET0=1;//T0中断允许TR0=1;//启动T0}void InterruptTime0() interrupt 1
{TH0=0xfc;//重载TL0=0x67;//要进行的操作
}
官方说明书中对这些寄存器的介绍
中断使能寄存器:(画出比赛用的)
定时器/计数器控制寄存器TCON(画出比赛用的)
定时器 / 计数器工作模式寄存器TMOD
怎么设置定时的时间?
技巧
TH0=(65536-想定的时间*921600)/256
TL0=(65536-想定的时间*921600)%256
另外想定的时间不能超过0.07秒
原理
stc15f2k60s2机器周期为12/11059200
65535时溢出
所以
(65536-要设置的数)*机器周期=要设置的时间