單片機最小系統(tǒng)的調(diào)試方法
首先應(yīng)該確認電源電壓是否正常。用電壓表測量接地引腳跟電源弓|腳之間的電壓,看是否是電源電壓,例如常用的5V。接下來就是檢查復位引腳電壓是否正常。分別測量按下復位按鈕和放開復位按鈕的電壓值,看是否正確。然后再檢查晶振是否起振了,一 般用示波器來看晶振引|腳的波形,注意應(yīng)該使用示波器探頭的“X10”檔。另一個辦法是測量復位狀態(tài)下的I0口電平,按住復位鍵不放,然后測量I0口(沒接外部上拉的P0口除外)的電壓,看是否是高電平,如果不是高電平,則多半是因為晶振沒有起振。另外還要注意的地方是,如果使用片內(nèi)ROM的話(大部分情況下如此,現(xiàn)在已經(jīng)很少有用外部擴ROM的了),- 定要將EA弓|腳拉高,否則會出現(xiàn)程序亂跑的情況。有時用仿真器可以,而燒入片子不行,往往是因為EA引腳。沒拉高的緣故(當然,晶振沒起振也是原因之一)。經(jīng)過上面幾點的檢查, -般即可排除故障了。如果系統(tǒng)不穩(wěn)定的話,有時是因為電源濾波不好導致的。在單片機的電源弓|腳跟地弓|腳之間接上一個0.1uF的電容會有所改善。如果電源沒有濾波電容的話,則需要再接一個更大濾波電容 ,例如220uF的。遇到系統(tǒng)不穩(wěn)定時,就可以并上電容試試(越靠近芯片越好)。
另外,調(diào)試系統(tǒng)時一定要有耐性,靜下心來-點點的調(diào),千萬不要著急。
復位電路:
當MCS- 5|系列單片機的復位引|腳RST(全稱RESET)出現(xiàn)2個機器周期以上的高電平時,單片機就執(zhí)行復位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復 位狀態(tài)。
根據(jù)應(yīng)用的要求,復位操作通常有兩種基本形式:上電復位和上電或開關(guān)復位。
上電復位要求接通電源后,自動實現(xiàn)復位操作。常用的上電復位電路如下圖A中左圖所示。圖中電容C1和電阻R1對電源十5V來說構(gòu)成微分電路。上電后 ,保持RST一段高電平時間,于單片機內(nèi)的等效電阻的作用,不用圖中電阻R1 ;也能達到上電復位的操作功能
單片機復位后的狀態(tài):
單片機的復位操作使單片機進入初始化狀態(tài),其中包括使程序計數(shù)器PC= 0000H ,這表明程序從0000H地址單元開始執(zhí)行。單片機冷啟動后,片內(nèi)RAM為隨機值,運行中的復 位操作不改變片內(nèi)RAM區(qū)中的內(nèi)容, 21個特殊功能寄存器復位后的狀態(tài)為確定值,見下表。
值得指出的是,記住一些特殊功能寄存器復位后的主要狀態(tài),對于了解單片機的初態(tài),減少應(yīng)用程序中的韌始化部分是十分必要的。
說明:表中符號*為隨機狀態(tài);
A= 00H ,表明累加器已被清零;
特殊功能寄存器初始狀態(tài)特殊功能寄存器初始狀態(tài)
單片機最小系統(tǒng)調(diào)試方法
A 00H TMOD 00H
B 00H TCON 00H 。
PSW 00H THO 00H
SP 07H TLO 00H
DPL
00H TH1 00H
DPH 00H TL1 00H
PO~P3 FFH SBUF不定
IP ***00000B SCON 00H
IE 0**00000B PCON *******B
PSW = 00H ,表明選寄存器0組為工作寄存器組;
SP =07H ,表明堆棧指針指向片內(nèi)RAM 07H字節(jié)單元,根據(jù)堆棧操作的先加后壓法則,第-個被壓入的內(nèi)容寫入到08H單元中;
Po-P3= FFH ,表明已向各端口線寫入1 ,此時,各端口既可用于輸入又可用于輸出;IP= xx x00000B ,表明各個中斷源處于低優(yōu)先級;
IE = 0x x00000B ,表明各個中斷均被關(guān)斷;
系統(tǒng)復位是任何微機系統(tǒng)執(zhí)行的第一步,使整個控制芯片回到默認的硬件狀態(tài)下。51單片機的復位是由RESET引腳來控制的,此弓|腳與融平相接超過24個振蕩周期后, 51單片機即進入芯片內(nèi)部復位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET引腳轉(zhuǎn)為低電平后,才檢查EA弓腳是高電平或低電平,若為高電平則執(zhí)行芯片內(nèi)部的程序代碼,若為低電平便會執(zhí)行外部程序。
51單片機在系統(tǒng)復位時,將其內(nèi)部的一些重要寄存器設(shè)置為特定的值,( 在特殊寄存器介紹時再做詳細說明)至于內(nèi)部RAM內(nèi)部的數(shù)據(jù)則不變。
單片機最小系統(tǒng)調(diào)試過程中會遇到哪些問題
2.用示波器確定晶振是否起振。
3.單片機的是否工作。比如,有些單片機一上電,它的有些管腳會輸出脈沖,可以通過示波器查看。
單片機最小系統(tǒng)設(shè)計制作及開發(fā)流程
在電子設(shè)計中,單片機作為系統(tǒng)的控制核心廣泛應(yīng)用。通過對單片機最小系統(tǒng)硬件的設(shè)計制作,可以加深對單片機的了解,最小系統(tǒng)也是初學單片機要求掌握的最基本的知識和實踐內(nèi)容。當初,軒酷電子就是通過自己焊接第一塊最小系統(tǒng)開啟自己的單片機學習生涯的。
單片機最小系統(tǒng)電路板可選用stc89C51、stc89C52等DIP-40封裝的單片機作為MCU。最小系統(tǒng)包括時鐘電路,復位電路,由此再拓展到各類制作。
單片機時鐘信電路原理圖如圖所示。在引腳XTAL1和XTAL2跨接晶振Y1和微調(diào)電容C5,C6就構(gòu)成了內(nèi)部振蕩方式,由于單片機內(nèi)部有一個高增益反相放大器,當外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。其中Y1是可插拔更換的,默認值是11.0592MHz
系統(tǒng)板采用上電自動復位或按鍵手動復位方式。上電復位要求接通電源后,自動實現(xiàn)復位操作。手動復位要求在電源接通的條件下,在單片機運行期間,用按鈕開關(guān)操作使單片機復位。
附帶一個最簡單的拓展例程:單片機驅(qū)動發(fā)光二極管的設(shè)計:
首先做設(shè)計呢我們需要電路原理圖,這個可以上網(wǎng)查找,也可以自己去畫,我們給出這個設(shè)計的電路原理圖:
然后就是軟件設(shè)計了,這個例程很簡單,我們貼出程序,對于比較復雜的例程,就需要好好查閱資料,學習元器件的相關(guān)協(xié)議和使用規(guī)則,然后進行編程,如果遇到實在沒有頭緒的問題,可以借鑒前人的經(jīng)驗,好好地分析程序,弄明白程序的原理,然后自己再去嘗試著書寫,如此才能夠?qū)W有所成。
程序:
#include 《reg51.h》 //包含頭文件,在“reg51.h”上右鍵單擊,并打開,可以看到它里面的定義
//當然也可以改成 reg52.h STC.H 功能一樣的,只是定義的IO口有一點區(qū)別,51單片機可以通用。
sbit led=P1^0; //定義一個LED 為P1.0 IO口
void main() //C語言主函數(shù)
{
led=0; //單片機IO P1.0腳輸出一個低電平,點亮發(fā)光管。 高電平為5V 低電平為0。
while(1);
}
最后呢,我們將硬件連接好,焊接好,將程序下載到單片機中,就實現(xiàn)了我們的功能,當然,對于復雜的例程也可能不會一次成功,這時候就需要我們查找原因,分析。
小編推薦閱讀:
-
單片機最小系統(tǒng)
+關(guān)注
關(guān)注
8文章
62瀏覽量
48415
發(fā)布評論請先 登錄
相關(guān)推薦
評論