關(guān)于51單片機(jī)定時/計(jì)數(shù)器初值的計(jì)算
定時或計(jì)數(shù)方式下計(jì)數(shù)初值如何確定,定時器選擇不同的工作方式,不同的操作模式其計(jì)數(shù)值均不相同。若設(shè)最大計(jì)數(shù)值為 M ,各操作模式下的 M 值為:
本文引用地址:http://m.butianyuan.cn/article/201611/321809.htm
模式 0 : M=2 13 =8192
模式 1 : M=2 16 =65536
模式 2 : M=2 8 =256
模式 3 : M=256 ,定時器 T0 分成 2 個獨(dú)立的 8 位計(jì)數(shù)器,所以 TH0 、 TL0 的 M 均為 256 。
因?yàn)?MCS-51 的兩個定時器均為加 1 計(jì)數(shù)器,當(dāng)初到最大值( 00H 或 0000H )時產(chǎn)生溢出,將 TF 位置 1 ,可發(fā)出溢出中斷,因此計(jì)數(shù)器初值 X 的計(jì)算式為: X=M- 計(jì)數(shù)值式中的 M 由操作模式確定,不同的操作模式計(jì)數(shù)器的長不相同,故M值也不相同。而式中的計(jì)數(shù)值與定時器的工作方式有關(guān)。
1 、計(jì)數(shù)工作方式時
計(jì)數(shù)工作方式時,計(jì)數(shù)脈沖由外部引入,是對外部沖進(jìn)行計(jì)數(shù),因此計(jì)數(shù)值根據(jù)要求確定。其計(jì)數(shù)初值: X=M- 計(jì)數(shù)值
例如:某工序要求對外部脈沖信號計(jì) 100 次, X=M-100
2 、定時工作方式時
定時工作方式時,因?yàn)橛?jì)數(shù)脈沖由內(nèi)部供給,是對機(jī)器周期進(jìn)行計(jì)數(shù),故計(jì)數(shù)脈沖頻率為 f cont =f osc × 1/12 、計(jì)數(shù)周期 T=1/f cont =12/f osc 定時工作方式的計(jì)數(shù)初值 X 等于:
X=M- 計(jì)數(shù)值 =M-t/T=M- ( f osc × t ) /12
式中: f osc 為振蕩器的振蕩頻率, t 為要求定時的時間。
定時器有兩種工作方式 :即定時和計(jì)數(shù)工作方式。由 TMOD 的 D6 位和 D2 位選擇,其中 D6 位選擇 T1 的工作方式, D2 位選擇 T0 的工作方式。 =0 工作在定時方式, =1 工作在計(jì)數(shù)方式。并有四種操作模式:
1 、模式 0 : 13 位計(jì)數(shù)器, TLi 只用低 5 位。
2 、模式 1 : 16 位計(jì)數(shù)器。
3 、模式 2 : 8 位自動重裝計(jì)數(shù)器, THi 的值在計(jì)數(shù)中不變, TLi 溢出時, THi 中的值自動裝入 TLi 中。
4 、模式 3 : T0 分成 2 個獨(dú)立的 8 位計(jì)數(shù)器, T1 停止計(jì)數(shù)。
MCS-51 有 5 個中斷源,可分為 2 個中斷優(yōu)先級,即高優(yōu)先級和低優(yōu)先級,中斷自然優(yōu)先級:
外部中斷 0 ;定時器 0 中斷; 外部中斷 1 ;定時器 1 中斷 ;
串行口中斷 ;定時器 2 中斷
( 1 )同級或高優(yōu)先級的中斷正在進(jìn)行中;
?。?2 )現(xiàn)在的機(jī)器周期還不是執(zhí)行指令的最后一上機(jī)器周期,即正在執(zhí)行的指令還沒完成前不響應(yīng)任何中斷;
?。?3 )正在執(zhí)行的是中斷返回指令 RET1 或是訪問專用寄存器 IE 或 IP 的指令,換而言之,在 RETI 或者讀寫 IE 或 IP 之后,不會馬上響應(yīng)中斷請求,至少要在執(zhí)行其它一要指令之扣才會響應(yīng)。
?。ㄒ唬┲袛囗憫?yīng)條件
CPU 響應(yīng)中斷的條件有:
?。?1 )有中斷源發(fā)出中斷請求;
?。?2 )中斷總允許位 EA=1 ,即 CPU 開中斷;
?。?3 )申請中斷的中斷源的中斷允許位為 1 ,即沒有被屏蔽。
評論