早教吧 育儿知识 作业答案 考试题库 百科 知识分享

单片机的定时器C语言编程中:TH0与TL0为什么是TH0=(65536-50000)/256;TL0=(65536-50000)%256 ?这个256是表示啥意思?

题目详情
单片机的定时器C语言编程中:TH0与TL0为什么是TH0=(65536-50000)/256;TL0=(65536-50000)%256 ?
这个256是表示啥意思?
▼优质解答
答案和解析
定时器0设置于模式1时,计数寄存器为16位模式,由高8位TH0和低8位TL0两个8位寄存器组成,当设定计算值为65536-50000=15536(D)时,转换为十六进制就是3CB0(H),此时,TH0=3C,TL0=B0分别装入即可,为了免除这些计算步骤,很多编程者采用“TH0=(65536-50000)/256;TL0=(65536-50000)%256“的编程方式,去让单片机自己去计算结果,那么为什么要介入256呢?其实并不难理解,做一下10——16进制的换算就知道了,256(D)=0100(H),这里01就是高8位的数据,00就是低8位的数据,通俗点说,15536(D)里有多少个256,就相当于高8位有多少数值,就是除的关系了,商存入高8位寄存器后余下的数存入低8位即可,取商计算就是TH0=(65536-50000)/256;而取余计算就是TL0=(65536-50000)%256 .