首先解釋一下單片機為什么需要晶振。
晶振是什么?全稱是石英晶體振蕩器,是一種高精度和高穩定度的振蕩器。通過一定的外接電路來,可以生成頻率和峰值穩定的正弦波。而單片機在運行的時候,需要一個脈沖信號,做為自己執行指令的觸發信號,可以簡單的想象為:單片機收到一個脈沖,就執行一次或多次指令。
第二個問題,是不是外接晶體的值可以隨意選擇呢?
當然不是,這就像不同的發動機有不同的最大功率一樣,每種型號的的單片機都有最大能接受的晶體頻率。先說51,它能夠外接的最大晶體是24M,AVR單片機能夠外接的最大晶振是16M。更高級的可編程芯片,例如FPGA,ARM,可以達到幾百M,不過暫時不在我們的考慮范圍之內。
第三個問題,為什么51最大可外接24M(不同廠家的值略有不同),而AVR等高級單片機只有16M?這設計到單片機的指令結構。
51單片機用的是復雜指令集,最直接的體現就是,它需要12個時鐘周期來運行一條指令,當它外接12M晶體時,時鐘周期為1/12M秒,運行一條簡單的指令需要1/1M秒;而430和AVR單片機使用的是精簡指令集,只需要一個時鐘周期就能運行一條指令。這樣看來,51最快的指令執行速度也就是2M每秒,而430或者AVR單片機的指令執行速度是16M每秒。
第四個問題,是不是所有的單片機都需要晶體?這就要回到我們最初的目的,我們給單片機接上晶體的目的是什么?
獲取穩定的脈沖!那只要有合適的方法生成穩定的脈沖,那就可以去掉外接的晶體。舉例,AVR單片機,它在單片機內部集成了一個RC振蕩電路,通過對熔絲位進行編程,可以內部生產1M,2M,4M,8M的震蕩頻率,進而替代相應的晶體。
缺點是振蕩電路在環境比較惡劣的情況下,不是很穩定,對一些計時要求比較嚴格的儀器和設備,不建議使用。如果對時間要求不高,多一個毫秒少一個毫秒無所謂的話,那就可以放心用了。
第五個問題,12M晶體和11.0592M晶體有什么區別?
呵呵,其實單從指令的執行速度來看,區別不大。采用11.0592M的唯一目的是為了獲得精準的串口通信頻率,簡稱就是波特率,它能夠精準的生成9600的波特率,在串口通信中較常用。
-
單片機
+關注
關注
6037文章
44569瀏覽量
636208 -
晶振
+關注
關注
34文章
2875瀏覽量
68094
原文標題:單片機為什么要晶振?
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論