欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2618|回復: 0
收起左側

定時器程序設計方法--模式3

[復制鏈接]
ID:59980 發表于 2014-9-22 23:24 | 顯示全部樓層 |閱讀模式
一,對于AT89S51單片機來說,前面3種工作模式均適用于Timer 0和Timer 1,但模式3只適用于Timer 0,Timer 1不具有模式3.

  二,在模式3下,Timer 0的TL0和TH0變成兩個獨立的8位的Timer寄存器。但不具備自動重新裝載計數初始值的特性。

三,以TL0為Timer寄存器的Timer使用TMOD和TCON中原來Timer 0的控制位,設置的方法與前面相同。而以TH0為Timer寄存器的Timer 使用原來Timer 1的溢出標志位TF1和啟動/關閉TR1,并且不能用作計數器使用。

例:AT89S51單片機的P1 .0口輸出周期為300,占空比為1/3的方波信號。

    程序:
ORG 00H;
START:
      MOV TMOD, #03H;設置Timer 0工作在模式3下
LOAD:
      MOV TL0,#9CH;往TL0中載入計數初始值(156)
      MOV TH0,#38H;往TH0中載入另一個計數初始值(56)
      SETB    P1.0;     P1.0置1
      CALL    TL_DELAY; 調以TL0為基礎的延時子程序
      CLR     P1.0;     P1.0清0
      CALL    TH_DELAY; 調以TH0為基礎的延時子程序
      JMP  LOAD;        循環,重新裝載計數初始值
TL_DELAY:               ;以TL0為Timer寄存器的Timer 的延時子程序
      SETB  TR0;        啟動以TL0為Timer寄存器的Timer
CHECK0:
      JNB   TF0,CHECK0;檢測TF0溢出標志,等于1就往下執行,否則返回繼續檢測。
      CLR   TR0;       關閉Timer
      CLR   TF0;       將TF0清0
      RET      ;       返回主程序
TH_DELAY:              ;以TH0為Timer寄存器的Timer 的延時子程序
      SETB TR1;        啟動以TH0為Timer寄存器的Timer
CHECK1:
      JNB TF1,CHECK1;  檢測TF1溢出標志,等于1就往下執行,否則返回繼續檢測。
      CLR TR1        ; 關閉Timer
      CLR TF1        ; 將TF1清0
      RET            ; 返回主程序
      END            ; 程序結束(總延時110us)

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表