12MHz晶振的单片机为什么只可以定时1ms以上?

2019-07-15 08:35发布

12MHz晶振的单片机为什么只可以定时1ms以上?
TH1 = 0XFF;
TH0 = 0XFF;这个不是1us的定时吗,为什么不行,要到1ms才行?
如果想要定时1us,要怎么弄?



补充内容 (2018-4-23 13:29):
上面写错了,TH0要改为TL1...
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
XX00XX00
1楼-- · 2019-07-15 16:04
XX00XX00 发表于 2018-4-23 09:17
TH1 = (65536 - 1000) /  256
TH0 = (65536 - 1000) % 256
仅适用于12MHZ

TH1 TH0这是什么鬼????配置定时器是错的,他能工作吗
人中狼
2楼-- · 2019-07-15 17:23
定时器的定时不是这样算的,标准51是12分频的,12M的晶振分频后只有1M,这是机器时钟频率,这时一个NOP汇编指令是1u秒,这是最快的指令,所以这种情况下无法定时到1u秒,定时器中断产生后进入中断程序需要一定的现场保护指令,然后还有用户在定时器中断里需要执行的代码,所以定时器所设定的定时时间要大于这些时间的总和
MUF420
3楼-- · 2019-07-15 18:52
人中狼 发表于 2018-4-23 10:19
定时器的定时不是这样算的,标准51是12分频的,12M的晶振分频后只有1M,这是机器时钟频率,这时一个NOP汇编指令是1u秒,这是最快的指令,所以这种情况下无法定时到1u秒,定时器中断产生后进入中断程序需要一定的现场保护指令,然后还有用户在定时器中断里需要执行的代码,所以定时器所设定的定时时间要大于这些时间的总和 ...

大哥,不同单片机手册配置都不一样,你都不问他用的什么型号的单片机,怎么可以解答呢?
GreatDream
4楼-- · 2019-07-15 21:04
 精彩回答 2  元偷偷看……
GreatDream
5楼-- · 2019-07-16 01:03
人中狼 发表于 2018-4-23 10:19
定时器的定时不是这样算的,标准51是12分频的,12M的晶振分频后只有1M,这是机器时钟频率,这时一个NOP汇编指令是1u秒,这是最快的指令,所以这种情况下无法定时到1u秒,定时器中断产生后进入中断程序需要一定的现场保护指令,然后还有用户在定时器中断里需要执行的代码,所以定时器所设定的定时时间要大于这些时间的总和 ...

要定时us级的,可以怎么弄?
还有就是要这个us级定时是可变的,就是你可以随便改数字,例如999,就是定时999us;555就是定时555us。这要怎么弄?
人中狼
6楼-- · 2019-07-16 01:58
要想能够定时us级,那么单片机的工作频率就要高于us级,假设不计算定时器中断程序的操作时间,那么定时1us,单片机的工作频率就要至少高于1M,当单片机达不到要求时,就要重新选单片机了,这不是如何做到us级定时的问题,而是单片机硬件是否能做到us定时的问题

一周热门 更多>