|
|
以前我也回答不了這個問題。現在明白了: 樓上的回答都不全面。 芯片說明書上說的是: 主時鐘可以是內部R/C時鐘,也可以是外部輸入的時鐘或外部晶體震蕩的時鐘。 現在的51單片機中,低檔的,一般都是外部晶振為主時鐘,而高級的51單片機,可以是外部輸入時鐘或外部晶振的時鐘,更多的是內部R/C時鐘。 這個內部的時鐘,是可以調節的,調節方法就是下載程序時進行設定。 看你這個程序片斷,我認為可能就是高級一點的51單片機的程序。這種程序對應的單片機是內部時鐘,在寫程序時,先定義一個主時鐘,方便計算初值,到了下載時,也好設置。以前的老芯片程序根本不會這樣寫,因為外部晶振基本都是確定的。 |
zl2168 發表于 2017-10-28 22:01 我已經在補了...但是好像沒看到這個 |
Laptop 發表于 2017-10-26 23:39 建議從單片機基礎理論學起,補補前面的基礎,否則,后面類似問題多多。 |
|
在硬件設計的時候可以選擇使用的晶體,12M的,11.0592M的都可以,根據實際情況。從你的程序來看,顯然硬件上用的是11.0592M的,晶體在電路板上就在主控芯片的旁邊,帶有金屬外殼,上面標的有11.0592字樣。 程序中經常定義這種主振是為了程序便于移植。定義主振以后,程序中的波特率、定時器初值、分頻器輸出等,我們會直接用帶主振的計算公式表示,而不是給具體的值。這樣一來,即使將來我們把電路板上的主振換成12M(12000000Hz)了,只需要把主振的宏定義改一下程序就可以接著用,不需要把程序中定時器初值、波特率等等再手動計算一遍一個個的修改。 |
| 11.0592M,硬件決定的,你的晶振是多少就是多少,這里只是定義來給程序參考用! |
wulin 發表于 2017-10-19 09:25 嗯嗯 說的很清晰 |
13476011951 發表于 2017-10-18 22:10 那要怎么看啊? |
zl2168 發表于 2017-10-18 21:53 我的意思是 為什么要用這個,這個時鐘是怎么得來的 |
| 這里只是對主時鐘頻率做了宏定義,方便程序中與此相關的運算,如軟件延時、定時器設置等等。如果改用其他主時鐘頻率只要重新定義一下,不必把程序中所有相關程序都改動。 |
| 任何一個自動化的處理器,都必須有一個跳動的心臟,它就是主頻,主頻由振蕩器產生的脈沖構成。由于它決定了處理器運行的節拍,也就決定了計算機的速度。 |
syw2074 發表于 2017-10-18 22:24 好像根據晶振來算, |
| 宏定義主時鐘 |
要看是什么單片機 每個時鐘不一樣![]() ![]() ![]() ![]() ![]() |
| 要看是什么單片機 |
| 你不是已經有了注釋?:宏定義主時鐘HZ!但你提的問題卻讓人不懂什么意思?! |