電工之家_電工基礎知識學習網站
當前位置:電工之家 > 電工知識 > 單片機 > 正文

單片機時鐘變慢會影響運行速度嗎

時間:2019-12-24 20:26 來源:電工之家

系統時鐘決定了CPU執行指令的時候
CPU的主頻大家都知道吧,記得上大學那會裝的第一臺電腦用的是433MH主頻的CPU。現在主流CPU主頻一般是3GHz,運算速度已經提升了很多個數量級了。單片機集成了CPU、RAM、ROM等,它的內部也有一個CPU。
單片機的時鐘周期、狀態周期、機器周期、指令周期是什么?
不同架構單片機的時鐘周期、狀態周期、機器周期、指令周期是不一樣的,以8051單片機為例:
時鐘周期:時鐘振蕩的周期叫做時鐘周期,如果使用外部晶振作為系統時鐘,晶振產生的一個振蕩脈沖叫做一個時鐘周期。
狀態周期:一個時鐘周期定義為一個節拍,兩個節拍定義為一個狀態周期(可以用S表示),所以一個狀態周期等于兩個時鐘周期。
機器周期:機器周期是指令周期的最小單位,它是讀取一條指令的最短時間,一個機器周期等于6個狀態周期。
指令周期:一條指令包括了一個或者多個機器周期,不同指令所需要的機器周期是不一樣的,單周期指令只需要一個機器周期,多周期指令就需要多個機器周期。
由此可見,不管是單周期指令還是多周期指令,它的執行最終還是與時鐘周期相關的。
最簡單的指令(單周期指令)它需要12個時鐘周期。
單片機時鐘決定了指令程序執行時間
我們編寫的單片機程序,最終會由編譯器翻譯為匯編語言,最后編譯為機器代碼下載到單片機的RoM中去,單片機上電時就會讀取并執行ROM的程序。以8051單片機為例:
單周期指令需要12個時鐘周期,雙周期指令需要24個時鐘周期。假如我們使用24MHz的晶振作為系統時鐘,那么12個時鐘周期的時間為0.5us(納秒),也就是說執行一條單周期指令需要0.50(納秒);如果把晶振改為12MHz,12個時鐘周期的時間為1us(納秒),執行一條單周期指令需要1us(納秒);

單片機時鐘變慢會影響運行速度嗎
程序的執行就是依靠芯片的時鐘的。
單片機時鐘選擇:內部時鐘源,外部時鐘源
一般單片機系統時鐘是可以選擇內部時鐘或者是外部時鐘的。根據不同的應用需求去具體選擇。例如一些小項目對精度的要求不是很大,是可以選擇使用內部時鐘的,這樣可以降低些成本,省去了外部時鐘電路。但精度,穩定度要求較高,就需要選型高可靠質量的外部晶振和與晶振匹配的電容,一起組成外部時鐘源。
芯片內部時鐘源:一般是內部RC時鐘,也就是由內部電阻電容組成的震蕩電路。時鐘的精度,穩定度都不是太好,容易受到外界溫度濕度的影響。所以每個芯片內部時鐘源都是不一樣的,都會有一定差異性。但這個差異性在一定的應用中根本感覺不到。感覺不到是由于一般芯片的運行系統時鐘都是幾MHZ-幾十MHZ的頻率。即便出現一定的偏差,但這個偏差和總時鐘幾十MHZ相比,還是相當小的。 一般內部RC的精度是幾十ppm-幾百ppm。1PPM的意義是1MHZ會偏差個正負1HZ。
芯片外部時鐘源:晶振和匹配電容。外部晶振的精度5ppm-20ppm。根據性能要求可具體選擇相應參數。
綜上:單片機的時鐘變慢是會影響運行速度的,不僅時鐘有可能變慢,還是有可能變快的。但這個快慢的差異對程序的影響會不會帶來一些錯誤的執行,還需要具體分析程序實現的功能和邏輯。但一般技術的實現都已經考慮了允許誤差。
上一篇:用單片機制作遙控燈的方法
下一篇:沒有了
看過《單片機時鐘變慢會影響運行速度嗎》的人還看了以下文章
用單片機制作遙控燈的方法 用單片機制作遙控燈的方法
用單片機制作遙控燈的方法還是比較多的,可以用無線電遙控燈、可以用藍牙技術控制燈、還可以用無線發射模塊nRF24L01實現無線射頻遙控遙控燈。當然我們根據題目的要求也可以用紅外發射與接受來遙控燈。其實這種紅外遙控方式在家電中用的也很多,比如空調的遙...
單片機的中斷程序是怎么執行的 單片機的中斷程序是怎么執行的
單片機的中斷就是類似的一個過程,發生中斷時,就會打斷正在執行的主程序,先處理完中斷任務,返回主程序繼續運行,當然在執行中斷函數之前,單片機需要把關鍵的數據保存下來,中斷函數執行完成后才可以正確的恢復主函數運行。 單片機的主程序是怎么運行的?...
單片機外部中斷程序為什么中斷不寫在主函數中 單片機外部中斷程序為什么中斷不寫在主函數
一、中斷的意義 中斷的意思就是打斷正在進行的任務去執行更緊急的任務,顯而易見至少要2套程序,一套主程序,一套中斷程序。 寫在主程序中就只能一步一步執行,達不到優先級高的目的了。所以這樣是不行的。 二、單片機有多個硬件入口 0X0000地址就是硬件復位...
學習單片機需要先學好C語言再去學單片機嗎 學習單片機需要先學好C語言再去學單片機嗎
首先肯定一點的是學習單片機不需要先學好C語言再去學單片機,而是在學習單片機的過程中可以促進C語言的學習! 我在學習單片機時對C語言也只是了解其皮毛,我對C語言比較深刻的了解是在學習單片機過程中逐漸形成的。通過編寫簡單的小程序慢慢驗證C語言語句的...
零基礎可以學單片機嗎 零基礎可以學單片機嗎
如何從零基礎學單片機是每位單片機愛好者或電子愛好者想得到的答案,我根據自己學單片機 一些經驗與各位朋友們分享一下我學習單片機的經驗,通過介紹我自己學習單片機的整個過程起到拋磚引玉的目的,同時希望能給單片機愛好者提供一個參考的作用。 單片機類...
hg0088代理