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