【導讀】在單片機的學習過程中,單片機定時器的合理設置和應用是非常關鍵的一步,也是剛開始接觸單片機知識的新人工程師們比較容易出錯誤的一個環節之一。在今天的文章中,我們為大家總結了單片機定時器應用過程中的兩大常見問題進行實時解析,希望能夠對各位新人工程師的學習提供一定幫助。
問題一:51單片機的T0、T1定時器四種工作方式各有什么特點?
在單片機定時器的應用過程中,定時器在進行設置時會有四種不同的工作方式,合理選擇相應的工作方式可以幫助工程師快速完成及時設置。下面我們就來逐一講解一下這四種不同的計時方式。方式0是單片機計時器的第一種計時方式,這一方式13位計數模式。方式1則采用16位計數模式,方式2采用8位自動重裝入計數模式,這兩種技術模式也是目前在單片機應用過程中最常使用的及時方式。最后一種單片機定時器的計時方式是方式3,這一模式下只有T0有的雙8位計數模式。
問題二:在設置單片機定時器的過程中出現了錯誤,應該怎么進行誤差糾正?
在使用單片機定時器進行計時設置的過程中,出現設置錯誤的情況是在所難免的,這就需要我們采取一些方法對已經造成的錯誤進行糾正了。由于單片機的機器周期通常為1μs~2μs,因此定時誤差一般應在0μs~20μs之內,對于一般應用,此誤差可以忽略,但是對于精確度要求比較高的應用場合,此誤差必須進行校正。定時誤差是定時溢出后轉入執行定時處理語句段之間所耗費的時間,此時間主要由定時溢出轉入定時處理語句段所必須執行的指令或硬件過程產生。
定時誤差校準的一個比較簡單的方法式,在定時溢出響應后,立刻停止定時器的計數工作,同時快速讀出當時計數值,然后將完成這一任務的程序段執行時間考慮進去,作為修正因子校正定時初值,以下程序段以中斷處理方式為例來進行說明。需要注意的是,由于執行從指令clrTR0(停止計數)到指令setbTR0(重新開啟計數)之間的指令需8個機器周期,應將此消耗考慮進去,因此該程序將定時誤差縮小在1個機器周期內。這一糾正程序的設計如下圖所示:
1
以上就是本文針對單片機定時器使用過程中常見的兩種問題,所進行的分享和解析,希望能夠對各位新人工程師的單片機學習提供一定的幫助。