51单片机的定时器工作一段时间后,停止(TR0=0),这时能读TH0和TL0中的数值吗,即变量m=TH0,行吗

做精确定时用,把定时器0中TH0和TL0的数值给了变量M做计算用

第1个回答  2012-07-05
可以。
试试就知道了。追问

你试过吗

追答

上面的就是我按暂停键(TR0=0)时,看到的 TH0TL0=FA9CH

 

本回答被提问者采纳
第2个回答  2012-07-05

51单片机的定时器问题
1、关闭定时器是TR0=0;执行TR0=0;之后,定时器就停止计数,也就是TH0和TL0会保持当前值不会变,ET0=0是关闭定时器的中断,执行ET0=0后,即使定时器还在计数,计数发生溢出的时候不会进入中断。2、在我们使用定时器模式1进行定时,TH0和TL0有三种情况会发生变化:a、直接对TH0和TL0进行写入数值...

51单片机TR0=0后计时器0会清零吗?
不会,定时器的值会保留下来;你在这个时候可以去读定时器的计数寄存器TH0,TL0,是可以读到值的。他只是关了定时器,而不是复位定时器。

单片机可以直接读取计数器TH0、TL0的值吗?
单片机当然可以直接读取计数器TH0、TL0的值啦。条件是定时器T0正在定时或计数状态,就是TR0=1并赋初值后,开始定时了,才能读出TH0、TL0的值,否则读出的全为0。要读出的值给变量,要求先要定义这三个变量才行的 unsigned char AA,BB;unsigned int num;如果是在某个子函数中读,可定义成局部变量...

单片机可以直接读取计数器TH0、TL0的值吗?
单片机当然可以直接读取计数器TH0、TL0的值啦。条件是定时器T0正在定时或计数状态,就是TR0=1并赋初值后,开始定时了,才能读出TH0、TL0的值,否则读出的全为0。要读出的值给变量,要求先要定义这三个变量才行的 unsigned char AA,BB;unsigned int num;如果是在某个子函数中读,可定义成局...

51单片机定时中断寄存器TR0
置0后隔断时间再置1,TH0,TL0的数据是从之前暂停的数继续计数。因为TH0,TL0的数据要在中断服务程序中清零!!

为什么编51单片机定时器中断序 ,编译时THO,TMOD,TLO,TRO显示未定义
首先我发现你打字出错了,TH0,TL0,TR0,要注意“0”是“零”不是英文“O”。还有你要看一下是不是你没有包含“reg52.h”这个头文件

51单片机如何取出计数器TH0和TL0的值在用数码管显示
TR0=1; \/\/1 打开定时器0 ET0=1; \/\/定时器0中断使能位 EA=1; \/\/使能全局中断 TH0=(65536-50000)\/256;TL0=(65536-50000)%256;} void time0() interrupt 1 \/\/50ms { \/\/TF0=0;\/\/定时器0溢出 ,清楚中断 TH0=(65536-50000)\/256;TL0=(65536-50000)%256;intnum++;\/\/溢出...

单片机 c语言中的定时中断函数,在mian函数TH0和TL0有了初始化,为什么在...
因为定时器计数溢出时才产生中断,th0tl0全等于0。这种定时工作方式不会自动重装定时初值,所以中断子函数中要人工装载。主函数中如果省去初值,那就是从0开始计数,第一次进入中断的时间会有误差,所以不能省。

51单片机定时器中断基础(超级超级简单详细实用)
例如,初值可通过计算得出TH0=(65536-45872)\/256,TL0=(65536-45872)%256。中断的启用涉及到中断允许寄存器IE,如EA(全局中断允许)和ET0(定时器0中断),以及TCON(定时器\/计数器控制寄存器)中的TR0。启动定时器后,需要调用中断服务程序,如void T0_time() interrupt 1,其中包含重置初值和可能...

单片机定时器方式2 TH0和TL0如何赋值
TH0,和TL0在程序一开始赋值一次就行了,再以后,单片机运行的时候,即TR0 = 1,只有TL0运行,TL0从初始数值开始自加,当加到255之后,再加1 次,就变成 了0,此时,单片机的硬件会自动把TH0里的数值赋值给TL0,然后TL0又自加,加到255之后...周而复始。除非TR0 = 0,不然一直循环上述的过程 本回答由提问者推荐 举报...

相似回答