發布時間:2019-10-18所屬分類:科技論文瀏覽:1次
摘 要: 單片機被大量使用在工作生活的各個領域,而定時器/計數器是單片機芯片內集成的一個重要的功能模塊。本文對單片機內部定時器/計數器的工作原理及工作模式做了簡單介紹,通過例子說明了單片機的設置和應用。 1引言 基于單片機體積
單片機被大量使用在工作生活的各個領域,而定時器/計數器是單片機芯片內集成的一個重要的功能模塊。本文對單片機內部定時器/計數器的工作原理及工作模式做了簡單介紹,通過例子說明了單片機的設置和應用。
1引言
基于單片機體積小、性能穩定、價格便宜的優點,它具有良好的市場占有率,被廣泛使用于多種現場控制領域,與人們的工作生活息息相關。顧名思義,單片機是集成到一個芯片上的計算機(Single Chip Micro-computer,SCM),隨著技術的發展和更新,現在的單片機是把整個計算機和部分功能部件都集成到一塊芯片上的微控制器(Micro-Controller Unit,MCU)。例如,對于基本的a051系列單片機,在芯片上除了包含計算器、控制器、存儲器和輸入輸出設備這些計算機的基本結構組件外,還集成了中斷控制器、定時器/計數器、以及串行通信接口這些功能部件。單片機在自動控制系統設計中的應用,比如:定時器/it數器對時間進行精準控制,并且能對外部事件進行檢測和計數,是單片機非常重要的一個組成部分。
2定時器/計數器工作原理
單片計內部集成的定時器/計數器在本質上是計數器。計數器是對脈沖進行計數,分為加法計數器和減法計數器兩種。當每經過一個脈沖進行一次加一運算的計數器為加法計數器,而每經過一個脈沖做一次減一運算的計數器為減法計數器。8051系統單片機芯片內部集成了2個16位的加法計數器,分別記作To和TI.
2.1 計數器與定時器的區別
TO和TI有兩種工作形式:計數器和定時器,這是由計數脈沖的來源確定的。
當計數脈沖來自芯片外部時,它們是計數器,每來一個下降沿脈沖,此計數器會做一次加一的運算。其中T接收外部計數脈沖的引牌是P3.4,TI接收外部計數脈沖的引腳是P3.5,單片機每個機器周期會對這兩引腳的輸入電平進行采樣檢測.如果前一個機器周期的采樣值為1,后一個機器周期的采樣值為0,則意味這是一個下降沿,就會觸發對應的計數器做一次加一的運算。由此可知,單片機要確定一個計數脈沖,至少需要2個機器周期,所以一個計數脈沖的持續時間必須大于2個機器周期,而單片機的一個機器周期為12個時鐘周期,即意味著單片機可采用的計數脈沖的最高頻率為單片機時鐘頻率的124,如果單片機的時鐘頻率是12 MHz,此系統能接受的最高的外部計數頻率為500 kHz.
如果TO和TI的計數脈沖來自芯片內部,它們被稱之為定時器。因為此時的計數脈沖是一個頻率固定的信號,通過此固定頻率,計數器就可以和時間建立聯系,實現時間的精準控制。來自片內的計數脈沖是由單片機的時鐘振蕩器經12分頻產生,所以此計數信號的周期為12個時鐘周期,正好等于單片機的一個機器周期。這樣就決定了單片機的定時器是以其機器周期為基本單位來進行計時的,即定時器能夠實現定時的最小時間為1個機器周期。
2.2計數器/定時器的設置
單片機對To,T1的控制是通過對特殊功能寄存器的設置來進行的,起主要控制作用的是TMOD,特殊功能寄存器TMOD決定TTD和T的工作方式。除了可以設置它們為計數器或定時器外,還能決定它們的工作模式。定時器/數器有4種工作模式:模式0-模式3。模式0為13位的定時器/計數器;模式1為16位的定時器/計數器;模式2為8位的,可自動重載的定時器/計數器;模式3只有To才具有,當TO工作在模式3時,是1個獨立的8位定時器八計數器和1個獨立的8位定時器。其中定時器/i數器的位數決定了它們所能承載的最大數值,如果超過這個數值就會溢出。在8051系列單片機中,每一個定時器/計數器溢出都會觸發一個中斷請求,會有對應的中斷服務程序為其服務,所以對定時器/計數器我們的關注點在其溢出值。通過對特殊功能寄存器TMOD設置好定時器/i計數器的工作方式后,我們就可以根據具體要求來設置它的初值。因為:初值+計數值-溢出值,所以我們可以通過對初值的設定來實現要求的計數值。其中,溢出值是由工作模式決定的,n位的計數器,它的溢出值就是2的n次方。而對于定時器,我們需要把定時的時間轉換成計數的次數才能使用上述表達式。由前述可知,單片機的定時器每一個機器周期做一次加一的運算,它計時的基本單位是機器周期,所以用要求定時的時間除以機器周期就可以把定時時間轉換成計數的次數。
3計數器/定時器應用
3.1計數器應用
假設一個系統中,需要對下降沿脈沖
(此脈沖頻率小于5000 H2)進行統計每100個脈沖做一次報警,為了現這個要求,我們可以選擇TO充當計數器來工作。在硬件設計上,我們需要把待測脈沖信號接在單片機的P3.4(TO)引腳上。為了符合要求,需要對TMOD進行設置,選擇合適的工作模式。首先,要把To設置成計數器的工作形式,其次是對工作模式的選擇。本例子中需要計數的大小為100,小于8位計數器溢出值(2,256),所以工作模式0-模式3均可選擇,我們這里可選擇模式2。因為模式2可自動重載初值,設置時只需進行第一次初值賦值即可。接著對工作在模式2的計數器To進行初值的設置。初值應為256-100-160,因為對于模式2,溢出值為256,所以把初值設置成160,則計數100次就可溢出,系統就可執行對應的溢出中斷服務程序進行報警。
3.2定時器應用
如果要求單片機實現1ms的定時,此時我們需要采用定時器的工作形式。同樣的,需要在TMOD特殊功能寄存器中選擇一定時器/i數器,確定其定時器的工作形式和工作模式。假設我們單片機的時鐘頻率為12 MHz,則一個周期為12個時鐘周期,正好1 us。如果選擇模式2,此時定時器所能定時的最大值為256個機器周期,即256 Ls,小于要求的1ms,所以我們可選擇計數范圍最大的工作模式1(16位)。當定時器工作在模式時時,溢出值為65536(2"),即可定時的最大范圍為6556個機器周期,大約為65ms,可實現我們的要求。當我們設定好工作模式1后,需要對定時初值進行設置。在本例中,定時時間為1 ms,一個機器周期為1us,所以需要的計數次數為1ms/l us.正好為1000次;所以,定時初值就應該為65536-1000而模式1的定時初值賦值時需要把它拆分為高八位和低八位,其中高八位賦給TH,低八位賦給TL。在C語言中可以用此初值對256做一次除法運算,商即是高八位;同理,用此初值對256做一次求余運算,結果應該就是低八位。
4 結語
當今社會,單片機被廣泛應用于生產生活的各個領域,而定時器/計數器是集成在單片機芯片上的一個重要的功能部件。本文介紹了8051系列單片機片內集成的定時器/計數器的工作原理和其設置應用的注意事項。
SCISSCIAHCI