資料介紹
本連載主要介紹為了應用單片機而無法避開的必需的外設功能。本連載中,將以搭載了瑞薩電子的單片機--RX63N的電路板“GR-SAKURA”為例進行說明,請你也實際操作試試看!
一手包辦有關時間和時刻的處理!
在單片機中,不僅頻繁地使用“○月○日○點○分”這種時刻顯示,顯示過去的時間和一定的周期這種形式也被頻繁地使用。例如,“該程序從運行開始過去了多少時間?”、“每秒輸送128次信號”等等。另外,還經常被用于“等待指定的時間”、“經過指定的時間后將轉移到下一個處理”這樣的情況。對這些與時間和時刻有關進行處理的外設功能就是定時器(圖1)。
圖1:定時器就是進行與時間、時刻有關的處理
我們也可以不使用外設功能(硬件)的定時器,而是通過軟件來計算時間。下面通過圖2來說明使用軟件來定時的示例,圖中假設循環(重復)部分的處理需要費時1μs(微秒:100萬分之1秒)。由此可以計算出該循環部分重復1000次需要花費1ms(毫秒:千分之1秒),重復100萬次則需費時1秒。即:通過“等待經過循環處理所指定的時間”來計算時間。但是,CPU將會集中進行時間計算的處理而無法進行其他處理。而且,只能計算一個周期的時間。而現實當中,單片機需要對應0.1秒和1/1024秒等各種周期的時間。
另外,CPU的計時器頻率(驅動速度)也將對軟件產生影響。如果將100MHz驅動的CPU改為50MHz,那么循環1次所需的時間將變為原來的兩倍。因此,需要對計算時間的軟件進行修正。如上所述,由于在管理上既花時間又容易出錯,所以要極力避免通過軟件來計算時間。
圖2:通過軟件定時的定時器示例
稍微介紹一下中斷的內容……
下面,我們簡單介紹一下和定時器不可分割的技術——“中斷功能”。單片機中的“中斷功能”是指某個程序在執行過程中,因某種原因而發出“開始進行其他處理”的請求。由于可以使用中斷功能,所以可使CPU不集中進行一個處理。
讓我們想象一下日常生活中用到“中斷功能”的情景,當我們把熱水倒入方便面盒中后,如果我們在3分鐘內一直盯著時鐘看,那么這段時間內我們就不能做其它事情。但如果用廚房定時器設定3分鐘的時間,在廚房定時器的警報響起之前我們便可以去做其它事情。在這個例子中,“一直盯著時鐘看”就相當于前一節中所介紹的“等待經過循環處理所指定的時間”,所以在處理結束之前不能去做其它事情。同時,廚房定時器的警報就相當于中斷功能。在中斷發生前還可以去做其它事情。
單片機的外設功能中有各種各樣的定時器,這些定時器在經過指定的時間或處理結束時向CPU發送中斷信號。不僅是定時器,很多外設功能都會在“產生變化”、“處理開始/結束”時將中斷信息傳送給CPU。所以,CPU在中斷功能發生前還可以繼續做其它工作,因此可提高作業效率。關于中斷功能的詳細內容,將在本系列第4期的《外部中斷功能IRQ》中做詳細介紹。本期中,我們先事先了解一下“從外設功能以中斷的形式向CPU傳送信息”的內容。
各式各樣的定時器中,還有“看門狗定時器”!
在單片機的外設功能中,最貼心的定時器是計算到指定時間的定時器和每隔一段時間便發生中斷的定時器。另外,在瑞薩電子的RX63N單片機中,搭載了為控制伺服電動機而產生脈寬調制解調(PWM)信號的定時器、計算輸入信號間隔的定時器、顯示現在時刻的RTC(實時時鐘)等各種各樣的定時器。
在定時器中,最具特色的是WDT(看門狗定時器)。其名字Watch Dog Time中的Watch dog意思為“看門狗”,它的工作就是監視程序是否出現失控。由WDT監視的程序通過事先將設定的值寫入WDT后啟動。WDT每隔一定時間便減掉寫入的值,當程序正常運行時,處理結束前會對WDT清零再結束。但是,如果程序失控(進入意料之外的重復狀態且無法停止)時,寫入WDT的值將小于0(稱為下溢),因此向CPU通知程序出現了失控。在不允許睡眠的重要系統中,單片機中搭載的“看門狗定時器”―WDT發揮了極其重要的作用。
輕松嘗試使用定時器
雖然說:“我們就通過程序來實際使用定時器……”,但是實際上,要想熟練運用定時器,必須先理解單片機的操作步驟。而且,不僅需要了解通過軟件進行操作的步驟,還需理解單片機的硬件(結構)以及所使用的零部件的規格等。
因此,需要幫助時請使用“數據庫”。對于搭載了RX63N單片機的GR-SAKURA電路板,我們準備了幾個與時間和時刻有關的數據庫(參照以下鏈接)。
(僅英文版)
在這個程序中,要讓GR-SAKURA上的LED在一定周期內發光。雖然僅是很簡單的操作,但是要想讓LED在正確的周期內發光就需要使用定時器。在上述櫻花程序庫的“時間”選項內,有計算經過時間的數據庫,所以我們就使用它。
程序如圖3所示。第14行的millis函數以從程序開始時經過的時間ms(毫秒:千分之一秒)為單位送回,沒有參數。使用該函數,通過獲取和最初的測定(第14行)之間的差距來取得1秒后、2秒后的結果。用while語言生成循環,從a的值等待1秒或2秒(第15行、第19行)。于是,1秒后LED0(GR-Sakura電路板的D1)亮燈,2秒后滅燈。滅燈后結束loop函數,但是該操作會再次反復繼續執行。另外,millis函數沒有符號,將返回long型的整數。
圖3:使用定時器功能使LED亮燈的程序。此例中,以1秒鐘為周期閃爍。
※//~是用于進行評價,對程序的執行不產生影響
將程序輸入Web編譯器,再將編譯完成后的二進制文件傳送給GR-SAKURA。傳送結束后,4個LED燈將暫時熄滅后再開始執行,LED0(GR-Sakura電路板的D1)開始閃爍。
本期我們講解了必要的外設功能之一“定時器”。有關時間和時刻的處理,在各種場合都需要。請大家借此機會實際操作各種數據庫。
但是,文中的“毎秒128次”和“1/1024秒”這些數字突然冒出來,是否讓你吃了一驚呢?128是2的7次方,1024是2的10次方。RTC中具有每1/128秒產生一次中斷的功能……這是在單片機的世界中經常看到的數字。?
(mbbeetchina)
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 使用單片機實現定時器的使用C語言程序免費下載 12次下載
- 使用單片機實現定時器控制播放生日快樂歌的仿真設計實例資料合集 4次下載
- 使用51單片機實現定時器控制單燈閃爍的仿真文件免費下載 10次下載
- 使用單片機實現按鍵控制定時器選播多段音樂的程序和仿真資料免費下載 16次下載
- 使用單片機實現定時器的程序免費下載 6次下載
- 51單片機通過定時器0實現硬件延時的代碼免費下載
- 使用單片機實現定時器的程序代碼免費下載
- 單片機定時器的程序免費下載 28次下載
- 使用51單片機的定時器實現LED閃爍的程序免費下載
- 使用555定時器和單片機實現定時功能的應用實例程序和電路圖免費下載
- 使用單片機的中斷及定時器實現時鐘功能的程序和資料免費下載
- 如何使用51單片機定時器實現LED閃爍程序和資料免費下載
- 使用51單片機定時器實現LED燈閃爍的應用源代碼免費下載
- 單片機定時器的學習資料匯總免費下載
- 單片機定時器控制循環彩燈的程序資料免費下載 11次下載
- 單片機定時器的用法 1147次閱讀
- 51單片機定時器和中斷的介紹 2030次閱讀
- 基于單片機的定時器的設計方法 1w次閱讀
- 單片機定時器賦初值的方法解析 7251次閱讀
- 51單片機計數器和定時器的本質區別及應用方法 1.4w次閱讀
- 單片機學習心得1:89c51單片機定時器應用! 9516次閱讀
- 如何基于51單片機利用定時器的實現PWM的方法詳細概述 3.3w次閱讀
- MSP430單片機定時器A結構及其應用范例 3928次閱讀
- 基于555定時器和單片機的RC測量系統設計 4843次閱讀
- 什么是單片機仿真器_單片機仿真器有什么用_單片機仿真器怎么用 1.6w次閱讀
- 51單片機定時器工作原理 9.3w次閱讀
- 詳細剖析單片機定時器的寄存器 1w次閱讀
- 單片機定時器周期計算公式 4w次閱讀
- 單片機中各種周期的關系與定時器原理 1w次閱讀
- 單片機C語言程序設計之定時器控制單只LED 3826次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多