講解
簡介
定時器/計數器
定時器實際上也是計數器,只是計數的是固定周期的脈沖
定時和計數只是觸發來源不同(時鐘信號和外部脈沖)其他方面是一樣的。
定時器在單片機內部就像一個小鬧鐘一樣,根據時鐘的輸出信號,每隔“一秒”,計數單元的數值就增加一,當計數單元數值增加到“設定的鬧鐘提醒時間”時,計數單元就會向中斷系統發出中斷申請,產生“響鈴提醒”,使程序跳轉到中斷服務函數中執行。
中斷
中斷是指計算機運行過程中,出現某些意外情況需主機干預時,機器能自動停止正在運行的程序并轉入處理新情況的程序,處理完畢后又返回原被暫停的程序繼續運行。
假設一個人在家看電視,這時候突然門鈴響了,這個人此時就要停止看電視去開門,然后關上門后繼續回來看電視,這個例子當中看電視這個動作就是常規的計算機運行過程,門鈴響就相當于一個中斷信號(中斷請求),用戶這時停止看電視(中斷當前程序)起來開門(中斷響應),關上門后(中斷處理結束)繼續看電視(繼續執行當前程序)。這一整個過程就是中斷發生時,CPU的處理方式。
還是上面的例子,現在假設門鈴響的時候水燒開了,此時用戶可以選擇先開門后關水,也可以選擇先關水后開門,這個先后關系就是中斷優先級,假設門鈴的中斷優先級比燒水的優先級高,那就會先開門,后關水,反之,則會先關水,后開門,這就是針對兩個及兩個以上中斷同時發生的時候CPU根據中斷優先級執行中斷的過程。
51單片機
定時器/計數器
?
16位寄存器T0、T1分別由TH0、TL0和TH1、TL1四個8位計數器組成
定時器的區別
T0可分為2個獨立的8位定時器,而定時器1不能;
T1可作為串口的波特率發生器,而定時器0不能。
工作原理
用途:定時器和計數器
核心:加1計數器
原理:每來一個脈沖則加1計數器加1,當加到寄存器要溢出時再來一個脈沖使加1計數器歸零(溢出)同時使TCON寄存器中的TF0(或TF1)置1,向CPU發出中斷請求。
脈沖來源
定時器:由系統的時鐘晶振輸出脈沖源提供
計數器:脈沖來源是由T0或T1引腳輸入的外部脈沖源提供
注意: T0或T1都不能同時既做定時器也做計數器
TCON控制寄存器
啟動和停止定時/計數器的計數,并控制定時器的工作狀態,支持按位尋址。單片機復位后清0。
注意:TCON寄存器中的低四位和定時計數器無關,和外部中斷相關
位序 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
名稱 | TF1 | TR1 | TF0 |