單片機復位電路的作用是:使單片機的狀態處于初始化狀態,讓單片機的程序從頭開始執行,運行時鐘處于穩定狀態、各種寄存器、端口處于初始化狀態等等。目的是讓單片機能夠穩定、正確的從頭開始執行程序。
單片機有兩種復位方式:一是高電平復位,二是低電平復位。基本上所有單片機都有一個復位端口(隨著單片機技術的發展,現在有些單片機內部集成了復位電路,這樣它的復位端口有可能和I/O端口等復用)。簡單講就是給單片機的復位端口施加一定時間的高電平(或者低電平),單片機就能完成初始化過程,從頭開始執行程序。這個時間就稱為復位時間,一般單片機的復位時間都很短,不過每種單片機的復位時間都不等,這個就需要查閱相應單片機的數據手冊來獲得該種單片機的復位時間。需要注意的是,單片機復位后,一定要給單片機的復位端口施加單片機正常工作時的電平,例如對于低電平的復位電路,復位后,復位端口應當處于高電平狀態。
小訣竅:對于單片機是高電平還是低電平復位,我們可以通過觀察單片機的引腳圖進行一個直觀的判斷,當單片機引腳圖中復位端口的名稱上面有一個“-”時,該單片機就是低電平復位,沒有“-”時,該單片機就是高電平復位,例如單片機端口名稱是RST,那它是高電平復位,是/RST(/是上劃線)時,它是低電平復位
剛才我們已經說過,現在已經有很多單片機內部集成了復位電路。那么我們在進行這種單片機電路設計的時候,就不用再單獨設計復位電路了。
下面來介紹幾種常用復位電路。
1、上電復位電路
單片機的復位有高電平復位和低電平復位的區別,那就自然有高電平復位電路和低電平復位電路兩種。
圖1 上電復位電路
圖1左邊的電路是高電平復位電路。
這個電路是利用電容的充電來實現復位的,當電源接通的瞬間,單片機復位端的電位與VCC相同,隨著充電電流的減少,復位端的電位逐漸下降。直至電容充滿電,復位端的電壓變為低電平。
電路中R和C的值可以根據下面的式子計算,其中T是復位時間。
T=(1/9)*R1*C1
圖1右邊的電路是低電平復位電路
該電路的復位原理跟高電平復位電路的原理相反,這里就不多說了。
同樣的,低電平復位電路中R和C的值可以根據下面的式子計算得出,其中T是復位時間。
T=9*RC
2、按鍵復位電路
前面介紹的上電復位電路只能在單片機電路上電后,自動完成高電平復位或低電平復位,但是如果在單片機運行過程中,強制讓單片機復位該怎么做呢?最簡單的方法是通過按鍵實現:按下按鍵,單片機立馬停止當前正在執行的操作,進入復位狀態,然后從頭開始運行。
圖2左邊是高電平按鍵復位電路,右邊是低電平按鍵復位電路。
圖2 按鍵復位電路
對于高電平復位電路,當按下復位按鍵時,復位端被直接拉到高電平,使單片機復位。而對于低電平復位電路,按下復位鍵后,復位端被直接拉到地端,使單片機復位。
3、改進后的按鍵復位電路
上面的按鍵復位電路有一個缺點:當電源因某種干擾瞬間斷電時,由于C不能迅速將電荷放掉,待電源恢復時,單片機不能上電自動復位,導致程序運行失控。電源瞬間斷電干擾會導致程序停止正常運行,形成程序“亂飛”或進入“死循環”。
所以有了下面這個增加了二極管的復位電路。如圖3所示。
圖3 改進后的按鍵復位電路
如果有了這個二極管就可以快速將電容上的電壓釋放,保證復位信號正確無誤。也能快速為下次復位做好準備。
4、專用復位芯片
隨著單片機系統越來越復雜,應用環境越來越多樣化,單純的RC復位電路已經不能確保單片機的正確復位,復位芯片也就應運而生。下圖是一種復位芯片的應用電路。可以看出,復位芯片使用起來非常簡單。
圖4 復位芯片應用電路
圖5 復位芯片應用電路