2012年9月6日星期四

如何使用W7100A的計時器/計數器(二)

这篇应用手册主要介绍W7100A单片机的内部定时器/计数器、看门狗定时器和基本的示例程序。今天我们先介绍第二部分内容,希望对大家有帮助喔~~


第一部分在这里:如何使用W7100A的定时器/计数器(一)


2.11 定时器0 8位自动重装计数器 软件门控
通过TMOD寄存器将定时器0设置为8位自动重装计数器、软件门控方式,并且用TH0和TL0来定义计数器0中断发生循环周期大小。其中,TH0的值自动重装,TL0的值为初始化时的值。在设置完成后,置位TR0位来启动计数器0。如果发生中断,调用中断处理函数复位定时器0的中断标志位;然后执行用户设定的中断事件。在本文档中,将Port0.3端口进行取反操作。
2.12 定时器0 8位自动重装计数器 硬件门控
所有的步骤和2.11节中的基本相同,除了TMOD寄存器的硬件门控部分。在这种模式下,定时器0只在GATE0引脚置位时才能工作。
2.13 定时器0 2个8位定时器 软件门控
设置TMOD寄存器为模式3、分割定时器、软件门控方式,并且通过TH0和TL0定义定时器0/定时器1中断发生循环周期大小。然后,置位TR0和TR1位启动分割定时器。如果定时器0/定时器1发生中断,复位定时器0/定时器1中断,再去执行用户设定的中断事件。在本文档中,对P0_3和P0_4端口进行取反操作。
2.14 定时器0 2个8位定时器 硬件门控
所有的步骤和2.13节基本相同,除了TMOD寄存器的硬件门控部分。在这种模式下,定时器0只有在GATE0引脚被置位时才可以执行。
2.15 定时器0 2个8位计数器 软件门控
将TMOD寄存器设置为模式3、分割计数器、软件门控方式,并且用TH0和TL0定义计数器0/计数器1中断发生循环周期的大小。然后,置位TR0和TR1来启动分割计数器。如果计数器0/计数器1发生中断,复位计数器0/计数器1中断;然后执行用户设定的中断事件。在本文档中,对P0_3和P0_4端口进行取反操作。
2.16 定时器0 2个8位计数器 硬件门控
所有的步骤都2.15节中的基本相同,除了TMOD寄存器的硬件门控部分。在这种模式下,计数器0只有在GATE0引脚被置位时才能工作。
3.定时器1/计数器1
图3.1是定时器/计数器1模式0的结构图: 8位定时器/计数器。 除了一些寄存器,该结构图和模式0下的定时器0结构图基本相同。内部时钟频率为88.4736MHz,T1作为外部时钟输入。TMOD.7是软件门控制位,GATE1为外部硬件门控引脚,TCON.6为定时器1的启动位。
图3.2 为模式1下的定时器/计数器1结构图:16位定时器/计数器。 除了一些寄存器外,该结构图和模式1下的定时器0结构图基本相同。
图3.3为模式2下的定时器/计数器1结构图:自动重装的8位定时器/计数器。与模式2下的定时器0类似,当中断发生时,TH1的值自动重装给TL1。
请参考定时器0的模式3方式。
3.1 定时器1 8位定时器 软件门控
通过TMOD寄存器将定时器1设置为8位定时器、软件门控方式,然后利用TH1和TL1定义中断发生循环周期的大小。在设置完成后,置位TR1位启动定时器1。如果发生中断,复位中断处理函数复位定时器1中断标志位;然后再去执行用户定义的中断事件。在本文档中,对Port0.3端口进行取反操作。
3.2 定时器1 8位定时器 硬件门控
所有的步骤和3.1节基本相同,除了TMOD寄存器的硬件门控制部分。在这种模式下,定时器1只有在GATE1引脚被置位时才能执行。
3.3 定时器1 8位计数器 软件门控
通过TMOD寄存器设置定时器1为8位计数器、软件门控方式,并且利用TH1和TL1来设定中断事件循环周期的大小。在设置完成后,置位TR1位来启动计数器1。确认T1脚为输入引脚后,开始计数。如果有中断发生,通过中断处理函数复位计时器1中断标志位;然后执行用户设定的中断事件。在本文档中,对Port0.3端口进行取反操作。
3.4 定时器1 8位计数器 硬件门控
所有的步骤都和3.3节相同,除了TMOD寄存器的硬件门控部分。在这种模式下,计数器1值只有在GATE1引脚被置位时才执行。
3.5 定时器1 16位定时器 软件门控
通过TMOD寄存器将定时器1设置为16位定时器方式,然后利用TH1和TL1来设定中断循环周期。之后,置位TR1位来启动定时器1。如果中断发生,利用中断处理函数复位定时器1的中断标志位,然后执行用户设定的中断事件。在本文档中,对Port0.3端口进行取反操作。
3.6 定时器1 16位定时器 硬件门控
所有的步骤都和3.5节相同,除了TMOD寄存器的硬件门控部分。在这种模式下,定时器1只有在GATE1引脚被置位时才可以执行。
3.7 定时器1 16位计数器 软件门控
通过TMOD寄存器将定时器1设置为16位计数器、软件门控方式,然后利用TH1和TL1来设置中断事件循环周期的大小。在设置完成后,置位TR1位来启动定时器1。在确认T1脚为输入引脚后开始计数。如果有中断发生,执行中断处理函数来复位定时器1中断标志位;然后执行用户设定的中断事件。在本文档中,对Port0.3端口进行取反操作。
3.8 定时器1 16位计数器 硬件门控
所有的步骤都和3.7节相同,除了TMOD寄存器的硬件门控部分。在这种模式, 计数器1只有在GATE1引脚置位时可以执行。
3.9 定时器1 8位自动重装定时器 软件门控
通过TMOD寄存器将计数器1设置为8位自动重装定时器、软件门控方式,然后利用TH1和TL1来设置中断事件循环周期的大小。将重装值赋给TH1,并且初始化TL1的值。在设置完成后,置位TR1位来启动定时器1。如果有中断发生,执行中断处理函数来复位定时器1中断标志位;然后执行用户设定的中断事件。在本文档中,对Port0.3端口进行取反操作。
3.10 定时器1 8位自动重装定时器 硬件门控
所有的步骤都和3.9节相同,除了TMOD寄存器的硬件门控部分。在这种模式, 定时器1只有在GATE1引脚置位时可以执行。

这是第二部分的内容,剩余部分我会在下一篇帖子里介绍,有问题的朋友欢迎随时与我交流探讨~~~
Chinese Homepage: www.iwiznet.cn           

更多有關W7100A的文章請參考:

没有评论:

发表评论