發表於 2019-04-26 16:24:25
復位是單片機的初始化操作,只需給AT89S51的復位引腳RST加上大於2個機器周期(即24個時鐘振蕩周期)的高電平就可使AT89S51復位。
復位操作
當AT89S51進行復位時,PC初始化為OOOOH,使AT89S51單片機從程序存儲器的OOOOH單元開始執行程序。除了進入系統的正常初始化之外,當程序運行出錯(如程序「跑飛」)或操作錯誤使系統處於「死鎖」狀態時,也需按復位鍵即RST腳為高電平,使AT89S51擺脫「跑飛」或「死鎖」狀態而重新啟動程序。
除PC之外,復位操作還對其他一些寄存器有影響,這些寄存器復位時的狀態見表2-7。由表2-7可以看出,復位時,SP-07H,而4個I/O埠PO~P3的引腳均為高電平。在某些控制應用中,要注意考慮PO~P3引腳的高電平對接在這些引腳上的外部電路的影響。例如,Pl口某個引腳外接一個繼電器繞組,當復位時,該引腳為高電平,繼電器繞組就會有電流通過,吸合繼電器開關,使開關接通,可能會引起意想不到的後果。
表2-7復位時片內各寄存器的狀態
復位電路設計
AT89S51的復位是由外部的復位電路實現的。AT89S51片內復位電路結構如圖2-17所示
。
復位引腳RST通過一個施密特觸發器與復位電路相連,施密特觸發器用來抑制噪聲,在每個機器周期的S5P2:施密特觸發器的輸出電平由復位電路採樣一次,然後才能得到內部復位操作所需要的信號。
復位電路通常採用上電自動復位和按鈕復位兩種方式。
最簡單的上電自動復位電路如圖2-18所示
。對於CMOS型單片機,由於在RST引腳內部有一個下拉電阻,故可將電阻R去掉,而將電容C選為10 μF。
上電自動復位是通過外部復位電路給電容C充電加至RST引腳一個短的高電平信號,此信號隨著VCC對電容C的充電過程而逐漸回落,即RST引腳上的高電平持續時間取決於電容C的充電時間。因此為保證系統能可靠地復位,RST引腳上的高電平必須維持足夠長的時間。
除了上電復位外,有時還需要按鍵手動復位。按鍵手動復位有電平和脈衝兩種方式。
按鍵手動電平復位是通過RST端經電阻與電源Vcc接通來實現,具體電路如圖2-19所示
。當時鐘頻率選用6 MHz時,C的典型取值為10μF,R取值為2kΩ。
脈衝復位是利用RC微分電路產生的正脈衝來實現的,脈衝復位電路如圖2-20所示
。圖中的阻容參數適於6 MHz時鐘。
圖2-21所示電路能輸出高、低兩種電平的復位控制信號,以適應外圍I/O接口晶片所要求的不同復位電平信號。圖2-21中,74LS122為單穩電路。實驗表明,電容C選擇約為0.1μF較好
。
在實際應用系統設計中,若有外部擴展的I/O接口電路也需初始復位,如果它們的復位端和AT89S51的復位端相連,復位電路中的R、C參數要受到影響,這時復位電路中的R、C參數要統一考慮,以保證可靠復位。如果AT89S51與外圍I/O接口電路的復位電路和復位時間不完全一致,使單片機初始化程序不能正常運行,外圍I/O接口電路的復位也可以不與AT89S51復位端相連,採用獨立的上電復位電路。若RC上電復位電路接施密特電路輸入端,施密特電路輸出接AT89S51和外圍電路復位端,則能使系統可靠地同步復位。一般來說,單片機的復位速度比外圍I/O接口電路快些。為保證系統可靠復位,在初始化程序中應安排一定的復位延遲時間。
打開APP閱讀更多精彩內容
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴