使用定时器/计数器中断,需要将满足以下的条件。
1)中断总允许打开 EA = 1;
2)中断源允许打开 ET0 = 1或者 ET1= 1;
3)设置定时器计/计数器的工作方式(设置TMOD)
4)装载定时器,设置计数器的初始计算值。
5)开启定时器(TCON中的TR0 = 1或者TR1 = 1)
6)中断服务函数
通过前面一些中断文章的学习,相信除了上面的第4点外,使用定时器/计数器已经没什么难度了。
装载定时器,前面的定时器章节可以知道,定时器/计数器有4种方式。它们分别是13位手动装载(方式0)、16位手动装载(方式1)、8位自动重装(方式2)、8位手动装载(方式3)。根据定时器/计数器的位数需要TH0(1)与TL0(1)组成定时器/计数器的位数。
输入的时钟脉冲是由晶体振荡器的输出12分频后得到的,所以定时器是对机器周期的计数器,每一个机器周期+1,也就是说TH0(1)与TL0(1)组成定时器/计数器的位数的值,在每个机器周期+1,当该值溢出时,产生定时器/计数器中断。
下面以方式1与方式2,进行定时,点亮LED。
方式1
/****************************************Header:File Name: main.cAuthor: adamD