51单片机定时器赋值为什么是65536???

TH0=(65536-50000)/256;//定时器T0的高八位赋初值TL0=(65536-50000)%256;//定时器T0的低八位赋初值16位0xFFFF不应是6... TH0=(65536-50000)/256; //定时器T0的高八位赋初值
TL0=(65536-50000)%256;//定时器T0的低八位赋初值

16位0xFFFF不应是65535吗?怎么是65536?256怎么不是255?
展开
 我来答
shencanzhijian
推荐于2018-05-11 · TA获得超过2447个赞
知道小有建树答主
回答量:440
采纳率:66%
帮助的人:140万
展开全部
虽然定时器16位定时值最大值是0xFFFF没错,但是定时器从50000,每个时钟周期加1,是加到0xFFFF的下一个周期(0x10000,最高位溢出了),才会产生中断,而不是在0xFFFF = 65535的时候就产生了中断。
打个比方,你要计时2个时钟周期,那么你应该从65536 - 2 = 65534开始计,65534->65535,65535->溢出,而不是从65535-2 = 65533开始计,那样就成了3个时钟周期。希望能帮到你
GUEL86
推荐于2017-12-15 · TA获得超过5856个赞
知道大有可为答主
回答量:5538
采纳率:86%
帮助的人:2733万
展开全部
定时器的计数是可以从0开始计数的,如果从0 到 0xFFFF 是 65535,这个时候没有产生溢出,
再加1 ,0xFFFF+1=0 产生溢出,就是从 0计数 到 0 需要有 65536 个计数。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式