定時(shí)器工作方式0初值計(jì)算 當(dāng)定時(shí)計(jì)數(shù)器工作在方式0模式時(shí),TH0和TL0的初值如何確定?
當(dāng)定時(shí)計(jì)數(shù)器工作在方式0模式時(shí),TH0和TL0的初值如何確定?在單片機(jī)的不同工作模式下,計(jì)數(shù)器的位數(shù)不同,所以最大計(jì)數(shù)值也不同?,F(xiàn)在讓最大計(jì)數(shù)值為m,則每個(gè)模式中的m值如下:模式0:m=2^13=81
當(dāng)定時(shí)計(jì)數(shù)器工作在方式0模式時(shí),TH0和TL0的初值如何確定?
在單片機(jī)的不同工作模式下,計(jì)數(shù)器的位數(shù)不同,所以最大計(jì)數(shù)值也不同。
現(xiàn)在讓最大計(jì)數(shù)值為m,則每個(gè)模式中的m值如下:模式0:m=2^13=8192模式1:m=2^16=65536模式2:m=2^8=256模式3:計(jì)時(shí)器0被分成兩個(gè)8,因此兩個(gè)m都是256。因?yàn)槎〞r(shí)器是按1計(jì)數(shù)的,當(dāng)計(jì)數(shù)溢出時(shí)中斷,所以初始值x可以計(jì)算如下:x=m計(jì)數(shù)值如果80C51的主頻為6mhz,則需要產(chǎn)生1ms的定時(shí)并計(jì)算初始值。在6mhz主頻下,每個(gè)計(jì)數(shù)器加1所需時(shí)間為2us。如果你想產(chǎn)生1ms的時(shí)間,你需要“加1”500次。那么500是計(jì)數(shù)值。如果需要在模式1下工作,則初始計(jì)數(shù)值x=m-count value=65536-500=65036=fe0ch
模式0是一個(gè)13位的計(jì)數(shù),由tl0的低5位(不使用高3位)和Th0的8位組成。當(dāng)tl0的低5位溢出時(shí),進(jìn)位到Th0。當(dāng)Th0溢出時(shí),在TCON中設(shè)置TF0標(biāo)志并向CPU發(fā)送中斷請求。
模式1的計(jì)數(shù)位數(shù)為16位,由tl0作為低8位和Th0作為高8位組成。
模式2是自動重置初始值的8位計(jì)數(shù)模式。工作模式2特別適合用作更精確的脈沖信號發(fā)生器。
模式3僅適用于定時(shí)器/計(jì)數(shù)器t0。當(dāng)定時(shí)器T1處于模式3時(shí),它相當(dāng)于Tr1=0并停止計(jì)數(shù)。工作模式3將t0分為兩個(gè)獨(dú)立的8位計(jì)數(shù)器tl0和Th0。