发布网友 发布时间:2022-05-10 11:58
共3个回答
热心网友 时间:2023-10-09 05:24
首先明确三种方式的计数范围:方式0是13位的定时/计数器,记满值为2^13=8192方式1是16位的定时/计数器,计满为2^16=65536方式2是8位的定时/计数器,计满为2^8=256.我以方式1来举例说明(12M晶振):如果我想计数1S,但是计数方式1的计数最大计数65536us即65ms,为了方便计数,选取50ms,计数20次就能实现1S计数。至于20次可以用一个寄存器实现,这里不讨论。这里讨论对计数器赋初值。计数器计数50ms,者初值应该是65536-50000=15536。这个数15536就应该是计数器的初值,化为16进制为3CB0H,所以对计数器赋值:TL0=B0H;TH0=3CH。即得到初值。【附】其他两个方式的初值求法类似,如果还有不懂,可以追问我或者加我QQ问。热心网友 时间:2023-10-09 05:24
具体要看你用方式几和晶振,t=(2^N-X)*晶振周期*12 方式0:N=13,方式1:N=16,方式2:N=8,方式3:特殊用途...热心网友 时间:2023-10-09 05:24
方式0,为计数工作方式,计数范围1~8192 为定时工作方式,213