51单片机T0工作于方式3的时候,这时T1口不能用作定时器和中断,是因为会产生冲突吗?

例如:我写成TMOD=0x13;这时定时器1工作于方式1,定时器0工作于方式3,当我启动TR1=1的时候,由于T0工作在方式3情况下,TH0计满会使TF1置位,这跟定时器T1计满以后置位产生了冲突,所以当定时器T0工作在方式3的情况下,T1就不能用于定时器/中断模式的原因吗?另外,还有一个问题,如果T0工作在方式3的时候同时也要用到T1,T1只能用在串口通讯模式下,对吗?
如果我让T0工作在方式3的情况下,想关闭T1定时器,是不是TMOD要设为0x33?

51单片机T0工作于方式3的时候,T0占用了T1的资源。

这时,用 T1 计数、定时,也都还可以,但是,T1 不能中断了,只能用查询的方法。

T1,此时仅仅适合于用于控制串口的波特率
控制波特率时,T1,一般都是设置为方式2。

想关闭T1定时器,是不是TMOD要设为0x33?

对。
如果,想要 T1 停止工作,把 T1 设为方式3,它就停了。追问

我的理解是,51单片机T0工作于方式3的时候,T0占用T1资源,T1的计数、定时中断都是通过TH0溢出产生的,而不能再通过给T1赋初值,加1计数来产生中断,是这样吗?
T1,此时仅仅适合于用于控制串口波特率,意思是否是:如果选用了T0的方式3,可以通过T0的TL0加1计数来控制T0的定时,计数,TH0用来控制串口波特率。这样使T0工作在方式3的情况下TMOD=0x03时,既可以让T0作为定时器,又可以让T1做串口通信?

追答

1.T0工作于方式3的时候,T0占用了T1资源。
此时,用 T1 的方式0、方式1、方式2,计数、定时,都可以。
但是不能出现中断了,只能查询当前的数值。
T1 的启动、停止,也不方便。
所以,一般就不使用 T1 进行计数和定时了。

2.T0工作于方式3的时候,T1 最适合的工作,就是控制波特率。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-12
方式3时,T0被分为两个独立的计数器,TL0是一个八位的计数器,溢出后,TF0置位;TH0也是一个八位计数器,溢出后,TF1置位。也就是T0占用了T1A的中断标志位TF1,说到这你应该明白为什么T0工作在方式三时,T1不能再用中断了吧……