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