自學單片機第五十四篇:打開定時器

2020-12-26 小亮談電氣

設置好觸發所用的時間了,也就是TH0和TL0,這樣就可以進入中斷了。但是進入中斷後如何操作,還要設定,就是前文提到的,中斷的四種工作方式,一般的,計時用就選擇中斷2即可。

這是手冊中的參數,定時器的模式設置寄存器,這個寄存器無法位尋址,所以需要單獨設置。設置什麼呢,就是設置我們的定時器如何工作。

GATE位是打開外部中斷引腳控制定時器的,目前不需要,所以等於0即可。

C/T位是切換定時器和計數器模式的,等於1就是計數器模式,此時由引腳P3.4/T0來輸入計數信號。等於0時就是定時器模式,此時P3.4/T0引腳不控制,由系統自己定時觸發。我們要工作在定時器,所以就等於0。

M1、M0兩位是組合的,前文就介紹了,分為四種方式,分別是00/01/10/11。對應1、2、3、4這四種方式,我們計時就選擇第二種方式,16位計時器。

目前就只開第二個定時器T0,所以設置的參數就是TMOD=0b0000 0001=0x01,也就設置了定時器0工作在定時器模式,以16位定時器模式工作。

這就算完成了定時器的設置這一步。接下來是打開定時器。打開之前,先再次看下定時器使用的步驟,這次加上設置的步驟。

設置T0步驟:

1,查看晶振頻率。

2,計算出一個機器周期的時間,大部分是12分之一,也有些是6分之一的,注意查看手冊。

3,設置定時器一個中斷周期時間長度。

4,計算出累加一個時間長度所需累加數,然後計算出初始值。

5,使用科學計算器,計算出初始值的二進位數,把二進位數分為兩個八位數。把二進位轉換為十六進位。

6,把高八位十六進位寫入TH0,低八位十六進位寫入TL0。

7,設置工作模式和工作方式TMOD。

8,打開T0中斷開關。

9,打開總中斷開關。

10,設置中斷響應程序。

目前完成了前七步,其實就是這個七步,相當於之前的外部中斷的第一步。也正是因為這七步,難倒了一片學習單片機的同學。

接下來的打開T0中斷開關,就簡單多了。查看手冊。

之前控制外部中斷的打開,使用的是EX0和EX1,這次我們需要打開的是中斷T0,所以就需要使ET0=1。這個是T0允許中斷的開關。然後是總中斷開關,這個前文已經說過多次,所有的中斷的總開關就是EA,只要EA=1,就打開了所有中斷的控制開關,至於讓誰運行,再打開分開關即可。

TCON是控制中斷開始的開關,我們之前使用過IT0去控制外部中斷INT0的觸發方式。IT0等於0是低電位觸發,IT0等於1是下降沿觸發。因為可以進行位尋址,所以無需統一設置TCON,開始學習,單獨位控制就好。本次使用的是T0,所以,當TR0等於1時,T0定時器就被打開了,開始定時。就好像一個燈的開關一樣。

最後的一個步驟就是設置中斷響應程序,這個也是根據中斷號來進行的,之前的外部中斷是0和2,分別是INT0和INT1。

這次是T0和T1中斷號就是1和3。

void T0() interrupt 1{}

void T1() interrupt 3{}

名稱可以自己寫,簡單易辨識即可。

說了這麼長,是不是感覺確實比外部中斷複雜些?沒關係,只要掌握了步驟,就很簡單了。本文我們先以12M晶振為例,寫一個定時1秒的LED閃爍案例。

1,晶振是12M。

2,一個機器周期時間是1微秒。

3,定時最小分度為50毫秒。

4,所需的初始值是15536.

5,計算出對應初始值的十六位十六進位數是:0x3C B0

6,得出TH0=0x3C,TL0=0xB0。

7,工作模式是定時器,工作方式是16位定時。TMOD=0x01。

8,打開T0定時器開關,ET0=1;TR0=1;

9,打開中斷總開關,EA=1;

10,設置中斷響應函數。void T0() interrupt 1{}

好了,就先到這裡,消化一下,下篇就寫程序。

相關焦點

  • 自學單片機第五十六篇:定時器問題回答
    第二個是定時器的函數只能在定時器中書寫嗎?第三個是定時器還有其他用途嗎?這兩個問題,其實是在說明定時器的作用,就是定時器中斷,除了常規的用法,有沒有其他用法,這些用法又是什麼,怎麼用。接下來一個一個的梳理。
  • 自學單片機第五十五篇:定時器定時1秒程序
    7,工作模式是定時器,工作方式是16位定時。TMOD=0x01。8,打開T0定時器開關,ET0=1;TR0=1;9,打開中斷總開關,EA=1;10,設置中斷響應函數。void T0_Routine() interrupt 1{}打開軟體,開始寫程序。(經過一段時間,程序寫完了)首先是定義一個用於顯示中斷的LED燈,通過控制閃爍來讓我們看到定時器的工作。
  • 51單片機程序——定時器控制蜂鳴器
    > //TMOD賦值,以確定T0和T1的工作方式 TH0=(65536-50000)/256; //計算初值,並將其寫入TH0、TL0或TH1、TL1TL0=(65536-50000)%6;EA=1; //打開總中斷
  • CD4518循環定時器電路
    打開APP CD4518循環定時器電路 發表於 2017-11-07 11:20:14   CD4518 為雙BCD 加計數器
  • 自學單片機第五十八篇:測量脈寬仿真實驗
    我打開示波器,然後運行仿真看下。按下測量開關前的狀態,波形選擇了1K,示波器是50微秒一格,從左向右數,高電位剛好是10格,也就是500微秒,符合計算的數值(不符合才怪)。接著按下測量開關。多次按下開關,測量多組數據,得出都是501微秒,估計跟我的計算程序有關,因為在關斷定時器時還要運行一個機器周期,所以,最少也要多個1微秒。還是比較精確了。在測量一組數據看下。這次打開5K的方波。測量值是101微秒,然後,示波器顯示的是2格,也就是100微秒。測量也比較精確了。
  • 簡單的1小時定時器電路圖
    打開APP 簡單的1小時定時器電路圖 網絡整理 發表於 2020-05-06 16:53:41   簡單的1小時定時器電路圖(一)   微妙到1小時定時器電路如下圖所示,該電路採用高輸入電阻場效應管輸入級運算放大器3140,可使555定時器定時範圍增加到100倍。
  • stm32_timer基本定時器配置及實現燈閃爍
    STM32中一共有11個定時器,其中2個高級控制定時器,4個普通定時器和2個基本定時器,以及2個看門狗定時器和1個系統嘀嗒定時器。TIM1和TIM8是能夠產生3對PWM互補輸出的高級登時其,常用於三相電機的驅動,時鐘由APB2的輸出產生;TIM2-TIM5是普通定時器;TIM6和TIM7是基本定時器,其時鐘由APB1輸出產生;本文引用地址:http://www.eepw.com.cn/article/201611/317027.htm本實驗要實現的功能是:用普通定時器TIM2每一秒發生一次更新事件
  • 秒定時控制電路圖_30秒定時器電路圖
    打開APP 秒定時控制電路圖_30秒定時器電路圖 網絡整理 發表於 2020-05-06 17:01:44 因此,該定時器是一種循環定時器。   30秒定時器電路圖
  • CoProcessFunction實戰三部曲之三:定時器和側輸出
    本篇概覽本文是《CoProcessFunction實戰三部曲》的終篇,主要內容是在CoProcessFunction中使用定時器和側輸出,對上一篇的功能進行增強;回顧上一篇的功能:一號流收到aaa後保存在狀態中,直到二號流收到aaa,把兩個aaa的值相加後輸出到下遊;
  • 如何用PLC的保持型定時器指令做一個電機運行的時間統計程序
    在PLC中一般的定時器時間都是以100ms,10ms或者1ms為計時單位,也就是定時器計數值與計時單位的乘積就是定時器的當前時間。以100ms計時單位為例,當某個定時器Txx的當前值為300時,說明定時器的計時時間為300*100ms=30秒。
  • 自學單片機第三篇:keil軟體
    關於軟體,我將分四篇介紹,因為這是以後學習的主陣地。要想使用,首先是下載軟體,個人推薦大家前往Keil官網下載。官網的軟體各方面都有保證,英文並不影響使用,因為我們能用的功能項目,位置就那幾個,記住就好了,而且不用擔心莫名其妙的問題。
  • STM32之TIMER定時器之間不同點
    STM32F1系類有1~14一共14個定時器;具體型號不一樣會有所不同。使用定時器預分頻器和RCC時鐘控制預分頻器,可以實現脈衝寬度和波形周期從幾個微秒到幾個毫秒的調節。 高級控制定時器(TIM1和TIM8)和通用定時器(TIMx)是完全獨立的,它們不共享任何資源。它們可以同步操作。TIM6和TIME7是基本定時器,他們通常作為通用定時器提供時間基準,特別地可以為數模轉換器(DAC)提供時鐘。
  • 三菱FX PLC入門之定時器和計數器
    三菱FX2N PLC的定時器分為通用型定時器和積算型定時器。通用型定時器又稱非積算定型時器或常規定時器,積算型定時器又稱斷電保持型定時器。接下來,我們一起看看它們兩者有什麼不同吧。1、通用型定時器T0~T245通用型定時器根據計數時鐘脈衝不同分為100ms定時器和10ms定時器。
  • 廚電配件自動化|空氣炸鍋定時器自動化生產線
    空氣炸鍋定時器、烤箱定時器等機械定時器產品,在市場上的銷量也忽然增大,很多廠家因為擴產、或相關配套需求,都紛紛尋求空氣炸鍋定時器自動化生產線。希望用自動化的生產方式代替傳統生產,從而提高生產效率、降低生產成本,也讓作業流程更標準化,空氣炸鍋定時器的生產品質得到保證。
  • 洛奇水火箭降落傘材料組裝教程 定時器技術
    洛奇水火箭降落傘定時器 機械定時原理組裝製作材料 拿出洛奇水火箭定時器製作材料包 注意定時器的方向
  • 獻給555定時器的一首詩
    它是Signetics定時器集成電路(IC)命名所採用的數字,由Hans R. Camenzind於1971年設計並於1972年上市。它包括25個電晶體、兩個二極體和15個電阻器,並利用到了一些巧妙的設計技術,例如用直接內部電阻來代替外部恆流源——Hans設法將此555塞入到8引腳的封裝中。vnIednc
  • 贛州市五屆人大常委會召開第五十四次主任會議
    贛州市五屆人大常委會召開第五十四次主任會議趙多仙主持4月30日上午,贛州市五屆人大常委會召開第五十四次主任會議。
  • 自製CPU,了解計算機工作原理——認識NE555定時器
    NE555定時器經典電路要講清楚NE555定時器的原理,必須從NE555的充放電的兩個過程中來講解。就這樣充放電交替,組成定時器。
  • [HK]中國鐵建:海外監管公告 - 第四屆董事會第五十四次會議決議
    [HK]中國鐵建:海外監管公告 - 第四屆董事會第五十四次會議決議 時間:2021年01月15日 19:26:15&nbsp中財網 原標題:中國鐵建:海外監管公告 - 第四屆董事會第五十四次會議決議公告
  • 聖鬥士Ω——第五十四集
    今天我們來聊第五十四集。光牙的聖衣自我升級了,但是蒼摩的還需要修理升級,於是他們就前往嘉米爾,而鋼鐵聖鬥士昴也想去見識一下傳說中的黃金聖鬥士,也一起隨行。這個時候尤娜已經來到了貴鬼的住處,希望貴鬼能幫忙修理天鷹座的聖衣。貴鬼當然願意了,修好了就有人替他打架了,他就可以安心划水了。