单片机80c51中定时/计数器的工作方式中怎么计数范围怎么算的为什么这样算?

中定时/计数器的工作方式中怎么计数范围怎么算的为什么这样算? 如方式一计数个数是8192是2的13

定时器有一个16位的计数寄存器,这个16位被分成两个8位的寄存器,分别是THx和TLx,有4种工作方式:
方式0:用了THx的8位,用了TLx中的低5位,这样,加起来一共是13位,所以,最大计数范围就是0-8191,一共8192个时钟
方式1:用了THx的8位,用了TLx中的全部8位,这样,加起来一共是16位,所以,最大计数范围就是0-65535,一共65536个时钟,也是定时器用的最大的范围
方式2:只用了THx用来计数,当THx的计数用完了之后,硬件自动把TLx赋值给THx,所以方式2相当于只是8位,所以最大计数到 0-255,共256个
方式3:用于串口波特率的计算,不讨论.
方式0是为了向上兼容老式单片机,一般很少用,现在基本上用方式1最多.追问

我是说那个计数范围是怎么出来的?怎么算的?

追答

晕,我不说明白了吗,方式1,只用了13位,2的13次方是8192,即0-8191;
方式2,用了16位,2的16次方是65536,即 0--65535
方式3只用了8位,2的8次方是256

所有的关于计算机位的问题,都是2的多少次方,比如14位,就是2的14次方,因为计算机用的是二进制

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-03
首先13位是从全0到全1变化的二进制数如果转化为十进制数就是0~255,是256个数也是256个变化,每一位可以是0也可以是1就是2^13=256种变化,注意该变化是数学意义上的默认从1开始的所以是256种变化。而实际单片机中数值却是从0开始的。但是从0~255就是数学意义上的256种变化只不过表示的方法不一样而已,区别开来就可以了
第2个回答  2013-01-05
一个机器周期计数一次,比如采用12m晶振,一个机器周期1us,方式1启用了13位,他总共能计2的13次方个数,此时经过了8192us,然后溢出。追问

为什么是2的13次方呀不明白这个?

追答

方式1 :TH用了5位,TL用8位,加起来13位,13位二进制数从0000000000000~1111111111111一共有2的13次方

第3个回答  2013-01-10
方式0是13位定时器
方式1是16位定时器
方式2是8位定时器
你说的例子 :2的13次方是8192
第4个回答  2013-01-04
方式0是13位定时器
方式1是16位定时器
方式2是8位定时器
方式3另类。
上面的几种定时方式,13位是为了兼容早期的48系列单片机设定的,目前无用。16位定时65536
8位定时256