24小時聯(lián)系電話:18217114652、13661815404
中文
行業(yè)資訊
淺談單片機最小系統(tǒng)
我們已經(jīng)大概知道了單片機是一個什么東西,那么接下來我們就正式開始單片機的學習吧。
單片機是一門實踐性很強的課程,假如單純的去學習理論知識,而不實踐,是很難完全把握單片機的。
單片機雖然是一個只能化的集成芯片,其本質上還是一個電子元件的。既然是電子元件,那么,就必須在一定的電路中才能運行起來,才能實現(xiàn)它的功能。這就像電阻一樣,如果把一個電阻獨立的放著,是沒有任何意義的,只有將電阻接在電路中,才能實現(xiàn)它的功能,畢竟是分壓,分流,還是限流,還得看詳細電路。
單片機里雖然集成了很多電路,但仍舊不能獨立運行,必須要外連一些電路,才能使單片機運行起來。這種能使單片機工作的最簡電路,我們叫做單片機最小系統(tǒng)。圖2-1中,有40個引腳的就是AT89C51單片機,這是單片機家族眾多型號中的一種,為什么選擇這個單片機來學習呢,是因為這款單片機的核心是MCS-51單片機,而MCS-51單片機是一款非常經(jīng)典的單片機,簡樸易學,而且資料非常豐富。當然,如果有特別的需求,也可以選擇其他的單片機進行學習。
閑話少說,現(xiàn)在我們就來分析圖2-1所示電路。
首先,我們來看看單片機的時鐘電路,如上圖用紅圈包著的并且有晶振兩字的部分。通過連接一個晶振和兩個30pF的電容,構成了單片機的時鐘電路。晶振是一種能夠輸出穩(wěn)定的震蕩周期的元件,通過它,單片機才能有了時間的概念。
不過晶振并不能獨立的使用,必須配合合適的負載電容,否則會產生錯誤,或者是使晶振不能工作。
負載電容的選擇可以根據(jù)單片機的技術文檔上的說明來選擇。對于51單片機一般選擇不大于40pF的瓷片電容。既然我們知道由晶振和晶振負載電容組成的時鐘振蕩電路,那么為什么要加這個電路呢?
我們來看一個例子:
一個人在某一時刻,在正常情況下是只能做一件事請(當然三心二意的不算),可是一個人卻不可能一整天就做一件事啊,于是我們得把這一天需要做的事按照某一個時間順序進行安排,那么用什么東西來對時間進行劃分呢?智慧的古代人在很早就是用了日晷來進行時間的標記,通過日晷,將一日劃分成12個等分,就是我們常說的時辰。有了,時辰這個時間概念,我們就可以方便的進行時間安排了單片機是一個智能設備,能處理很多事情,那么這些事情的安排,又是怎樣實現(xiàn)的呢?
為了給單片機一個“日晷”,我們使用了能夠輸出振蕩時鐘的晶振。通過晶振輸出的時鐘脈沖,來安排單片機的工作。于是,我們就能對單片機做一些安排,第一個時鐘脈沖出現(xiàn),單片機做什么,第二個時鐘脈沖出現(xiàn),單片機又做什么?……第n個時鐘脈沖出現(xiàn),單片機又做什么……一直這樣的安排下去,我們就能通過使用單片機來實現(xiàn)我們想要做的事了,而我們這種安排從專業(yè)的角度上來講就叫做編程。
其次,我們來看看,51單片機的復位電路,它由一個10uF的電容和一個4.7K的電阻組成。為什么要這樣接線了,原因是這樣的:在設計51單片機的時候,規(guī)定在51單片機的第9引腳為復位功能引腳。當在這個引腳有連續(xù)兩個以上機器周期(2us以上)【注2】的高電平時,這個單片機就會復位。而我們的電路設計是,電容充電的瞬間,是導通,在這個瞬間,電流通過電容器,然后想電阻方向放電,此時,電容的“-”端就能有一個很高的電勢,在高于3V的情況下,均可認為是高電平。而電容的充電是有時間的,當選擇合適的電容,其充電時間會大于2us,這時,復位的條件就成立了。當然,我們?yōu)榱四軌蚋€(wěn)定的復位,我們經(jīng)常會把單片機的復位引腳的高電平時間控制得更長一點,通常會達到ms級別。
你也許會問,為什么要復位呢?
在我回答你的問題之前,我先反問你幾個問題,如果能將這幾個問題解決了,那么你的答案也能夠找到了。
問題1:當你要做一件事的時候,是希望從什么地方開始?是重最初位置開始,還是中間階段亦或者是末尾階段。
問題2:當你的機器出現(xiàn)故障了,你希望他能還能回到正常工作?
顯然,我們在開始工作或是出現(xiàn)故障時,都希望能回到原來的初始狀態(tài)下。
那么,我們的答案躍然紙面,復位的作用是時單片機的工作能回到設定的最初工作狀態(tài)下開始工作。
知道了復位和晶振電路,現(xiàn)在讓我們來看看,單片機右邊的電路,該電路時將單片機的31引腳EA上接到電源VCC端。
在單片機的引腳定義中,EA口是訪問外部存儲器使能端,因為在“EA”這兩個字母上加了一個橫線,就表示,在該引腳,是低電平有效,(在數(shù)字電路數(shù),常用這種方法表示,如果字母上邊沒有橫線,就表示高電平有效,有橫線,就表示低電平有效)即當“EA”引腳為低電平時,就直接訪問外部存儲器。
當EA引腳為高電平時,訪問內部存儲器,當要訪問的存儲器地址,超出內部存儲器的地址范圍時,自動會訪問外部存儲器相應的地址。
我們現(xiàn)在使用的單片機,我們學習用的單片機是有內部存儲器的,其存儲器空間為4kb,為了不浪費這些存儲空間,我們就將EA引腳直接接高電平,這樣單片機會首先運行內部存儲器的程序。不過,有一種單片機除外,那就是8031單片機,該單片機也是基于8051單片機內核的,不過,在設計這種單片機時,是沒有將存儲器集成在單片機里邊的,需要外置存儲器,這時,這必須將EA引腳接地,否則,該單片機沒辦法工作。
常常有人說,單片機系統(tǒng),單片機是整個系統(tǒng)中最重要的部分,可是我卻覺得并不是這樣的,既然是一個系統(tǒng),那么系統(tǒng)中的各部分都是統(tǒng)一不可分割的,缺了任何哪一部分,單片機系統(tǒng)就不能正常的工作。就像一個人身上,并不是除了大腦其他器官就都不怎么重要一樣,事實上其他器官也非常重要。
單片機是一個電子設備,所以必須要有電源才能工作,否則,任你能力再強,也就一個小小什么都不是的“黑色百腳怪”。
我們使用的51單片機需要在+5V的直流電的壞境下,才能夠穩(wěn)定的工作(并不是所有的單片機都是工作在+5V,有的低電壓單片機的工作電壓為3.3V,有的甚至更低)。而在直流電源中,一般會有正電源和地兩根線。單片機的接+5V的引腳為40引腳VCC,而接地引腳為20引腳GND。
供應單片機工作的+5V直流電源,必須是很穩(wěn)定的,否則可能會導致單片機頻頻復位,這在單片機正常工作中,是必須避免的,除非是有特定需要或者是出現(xiàn)故障。
單片機時鐘周期
在幾十年前,因為技術原因,單片機的速度很慢,晶振的時鐘脈沖相對于單片機來說太過迅速,無法做到來一個脈沖就執(zhí)行一條指令,為了解決這個問題,我們偉大的工程師就做出了一點點改進,設定為幾個脈沖出現(xiàn),才執(zhí)行一次指令,這樣,單片機的速度就能夠按照時鐘工作了。
這就像秒對于我們一般人來說,也太過細,我們在日常工作中很難精確到秒,為了解決這一問題,就出現(xiàn)了分和小時這些時間概念。
在51單片機中,晶振輸出的脈沖周期為脈沖周期,12個脈沖周期為機器周期,單片機工作時間的最小單片機是機器周期。