單片機關(guān)鍵技術(shù)基礎詳解(二)
在上電或復位過程中,控制CPU的復位狀態(tài):這段時間內(nèi)讓CPU保持復位狀態(tài),而不是一上電或剛復位完畢就工作,防止CPU發(fā)出錯誤的指令、執(zhí)行錯誤操作,也可以提高電磁兼容性能。
本文引用地址:http://m.butianyuan.cn/article/201611/320947.htm無論用戶使用哪種類型的單片機,總要涉及到單片機復位電路的設計。而單片機復位電路設計的好壞,直接影響到整個系統(tǒng)工作的可靠性。許多用戶在設計完單片機系統(tǒng),并在實驗室調(diào)試成功后,在現(xiàn)場卻出現(xiàn)了“死機”、“程序走飛”等現(xiàn)象,這主要是單片機的復位電路設計不可靠引起的。
基本的復位方式
單片機在啟動時都需要復位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。89系列單片機的復位信號是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果RST引腳上有一個高電平并維持2個機器周期(24個振蕩周期)以上,則CPU就可以響應并將系統(tǒng)復位。單片機系統(tǒng)的復位方式有:手動按鈕復位和上電復位。
1、手動按鈕復位
手動按鈕復位需要人為在復位輸入端RST上加入高電平(圖1)。一般采用的辦法是在RST端和正電源Vcc之間接一個按鈕。當人為按下按鈕時,則Vcc的+5V電平就會直接加到RST端。手動按鈕復位的電路如所示。由于人的動作再快也會使按鈕保持接通達數(shù)十毫秒,所以,完全能夠滿足復位的時間要求。
圖1
2、上電復位
AT89C51的上電復位電路如圖2所示,只要在RST復位輸入引腳上接一電容至Vcc端,下接一個電阻到地即可。對于CMOS型單片機,由于在RST端內(nèi)部有一個下拉電阻,故可將外部電阻去掉,而將外接電容減至1?F。上電復位的工作過程是在加電時,復位電路通過電容加給RST端一個短暫的高電平信號,此高電平信號隨著Vcc對電容的充電過程而逐漸回落,即RST端的高電平持續(xù)時間取決于電容的充電時間。為了保證系統(tǒng)能夠可靠地復位,RST端的高電平信號必須維持足夠長的時間。上電時,Vcc的上升時間約為10ms,而振蕩器的起振時間取決于振蕩頻率,如晶振頻率為10MHz,起振時間為1ms;晶振頻率為1MHz,起振時間則為10ms。在圖2的復位電路中,當Vcc掉電時,必然會使RST端電壓迅速下降到0V以下,但是,由于內(nèi)部電路的限制作用,這個負電壓將不會對器件產(chǎn)生損害。另外,在復位期間,端口引腳處于隨機狀態(tài),復位后,系統(tǒng)將端口置為全“l”態(tài)。如果系統(tǒng)在上電時得不到有效的復位,則程序計數(shù)器PC將得不到一個合適的初值,因此,CPU可能會從一個未被定義的位置開始執(zhí)行程序。
圖2
3、積分型上電復位
常用的上電或開關(guān)復位電路如圖3所示。上電后,由于電容C3的充電和反相門的作用,使RST持續(xù)一段時間的高電平。當單片機已在運行當中時,按下復位鍵K后松開,也能使RST為一段時間的高電平,從而實現(xiàn)上電或開關(guān)復位的操作。
根據(jù)實際操作的經(jīng)驗,下面給出這種復位電路的電容、電阻參考值。
圖3中:C:=1uF,Rl=lk,R2=10k
圖3 積分型上電復位電路
二、編制單片機應用程序的步驟和難點
1前言
如何編寫單片機應用程序,這是一個實踐性很強的題目,也是1項艱苦而細致的工作。如果按照一定的步驟并且找出難點,事先對這些難點加以處理,能夠收到事半功倍的效果。下面根據(jù)實際工作中的經(jīng)驗,談談實際開發(fā)中必經(jīng)的幾個步驟和可能遇到的難處理。對于1個單片機應用程序,其編制過程如圖1所示。
2編制步驟
2.1搞清功能和編寫方案
接到一個單片機項目設計文件之后,并不是馬上動手編寫程序,而是仔細研究用戶提出的技術(shù)要求或者技術(shù)說明,根據(jù)這些技術(shù)要求和技術(shù)說明,也就是客戶要求,把程序應該具備的主要功能寫清楚,寫仔細,這是最關(guān)鍵的工作。如不清楚,應向客戶和使用者問清楚,否則在設計完成以后會發(fā)現(xiàn)有些功能由于事先沒有考慮清楚再重新設計將會很麻煩,可能有些需要重新增加的功能很容易補充,而有些可能由于沒有事先考慮周全而無法實現(xiàn)。
2.2編寫總流程圖和各功能模塊流程圖
根據(jù)要完成的程序功能寫出總流程圖,根據(jù)總流程圖把整個程序劃分成幾個主要的功能模塊,每個功能模塊都要寫出基本流程圖,這主要是為以后的程序編寫起到一個指導作用。當然,在實際的程序編寫過程中肯定會有一些改動,1個基本的流程會指導您在寫程序的過程中不會出現(xiàn)太大的偏差。例如,編寫鍵盤掃描并且區(qū)分是功能鍵還是數(shù)字鍵的子程序,如果是功能鍵就轉(zhuǎn)相應的功能處理程序;如果是數(shù)字鍵就在相應的數(shù)碼管上顯示出來;可以寫出其流程圖,如圖2所示。
2.3準備編程所需的資料
這些資料主要是編程語言方面的書籍、雜志等。因為程序語言的有些資料任何編程人員都不可能記得太清楚,如每條指令的含義,具體操作每條指令所牽涉的硬件電路等。如果資料準備得比較充分,可以放在案邊,若有需要,順手查閱。
2.4人機界面的編程
用單片機實現(xiàn)的項目人機界面相對簡單。若為LED顯示,應根據(jù)LED的位數(shù)選取簡單、明燎、用戶一看便知的提示符;顯示的數(shù)據(jù)位數(shù)應充分考慮用戶提出的技術(shù)要求。
評論