新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 關于51單片機定時/計數器初值的計算

        關于51單片機定時/計數器初值的計算

        作者: 時間:2016-11-26 來源:網絡 收藏
        計數初值的計算

          定時或計數方式下計數初值如何確定,定時器選擇不同的工作方式,不同的操作模式其計數值均不相同。若設最大計數值為 M ,各操作模式下的 M 值為:

        本文引用地址:http://www.104case.com/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 ,可發出溢出中斷,因此計數器初值 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 個中斷優先級,即高優先級和低優先級,中斷自然優先級:

          

          外部中斷 0 ;定時器 0 中斷; 外部中斷 1 ;定時器 1 中斷 ;

          串行口中斷 ;定時器 2 中斷

          

          ( 1 )同級或高優先級的中斷正在進行中;

          ( 2 )現在的機器周期還不是執行指令的最后一上機器周期,即正在執行的指令還沒完成前不響應任何中斷;

          ( 3 )正在執行的是中斷返回指令 RET1 或是訪問專用寄存器 IE 或 IP 的指令,換而言之,在 RETI 或者讀寫 IE 或 IP 之后,不會馬上響應中斷請求,至少要在執行其它一要指令之扣才會響應。

          

          (一)中斷響應條件

          CPU 響應中斷的條件有:

          ( 1 )有中斷源發出中斷請求;

          ( 2 )中斷總允許位 EA=1 ,即 CPU 開中斷;

          ( 3 )申請中斷的中斷源的中斷允許位為 1 ,即沒有被屏蔽。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 咸阳市| 大同市| 密山市| 高邑县| 南汇区| 武义县| 白朗县| 五华县| 台南县| 含山县| 景宁| 延寿县| 九龙县| 南丹县| 慈利县| 庆城县| 韶关市| 大连市| 喀喇| 安顺市| 黄冈市| 绍兴县| 交城县| 那曲县| 周口市| 朝阳市| 元阳县| 文昌市| 吴江市| 九台市| 武胜县| 法库县| 枝江市| 克山县| 崇左市| 天柱县| 邢台县| 中阳县| 安图县| 密山市| 饶河县|