51单片机T0工作于方式3的时候,这时T1口不能用作定时器和中断,是因为会产生冲突吗?
例如:我写成TMOD=0x13;这时定时器1工作于方式1,定时器0工作于方式3,当我启动TR1=1的时候,由于T0工作在方式3情况下,TH0计满会使TF1置位,这跟定时器...
例如:我写成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? 展开
如果我让T0工作在方式3的情况下,想关闭T1定时器,是不是TMOD要设为0x33? 展开
2个回答
展开全部
51单片机T0工作于方式3的时候,T0占用了T1的资源。
这时,用 T1 计数、定时,也都还可以,但是,T1 不能中断了,只能用查询的方法。
T1,此时仅仅适合于用于控制串口的波特率。
控制波特率时,T1,一般都是设置为方式2。
想关闭T1定时器,是不是TMOD要设为0x33?
对。
如果,想要 T1 停止工作,把 T1 设为方式3,它就停了。
这时,用 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 最适合的工作,就是控制波特率。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询