AT89S51最小系統(tǒng)制做
C51最小系統(tǒng)電路在網(wǎng)上一搜一大把,大同小異。我略做改動后如圖:
加一個11.0592MHZ的晶振是為了以后做串口通信時和PC有相同的波特率。可用短路帽切換。
說說板子的布局:網(wǎng)上賣的最小系統(tǒng)都是把板子做的非常小,如果僅僅只學(xué)習(xí)最小系統(tǒng),那是可以的。我以后是要做擴(kuò)展的,所以不能做的太小。因此該有的應(yīng)留著,不該有的都去掉。很重要的是以后在做其它擴(kuò)展功能塊時的連接線就用一組排線而不能再有其它飛線。因此做一個好的布局是非常有必要的。
在板上除了最小系統(tǒng)外還有鍵盤輸入、數(shù)碼管、LCD、I2C存儲器。它們的數(shù)據(jù)接口和電源接口也是完全獨立的。其它的功能都準(zhǔn)備在以后通過上方的接口另外用板子擴(kuò)展。
圖上方的彎腳插針就是向外擴(kuò)展的接口。我在彎腳下方又安排了一組直插針。它是和彎腳插針并行連接的。這樣在擴(kuò)展功能塊時我先在AT89S51板上將要輸出的引線(包括數(shù)據(jù)線、控制線、電源線等)跳至直插針上。這樣通過彎腳插針引到擴(kuò)展板上的線就只有一組排線。不用再零亂地接上幾組連接線了。這也是我用買的學(xué)習(xí)板常常垢病而最終棄而自制的主要原因之一。因為當(dāng)時我擴(kuò)展LCD12864,我既要連上數(shù)據(jù)線,又要連電源線,LCD模塊上還拖著背光電源限流電阻線。還有液晶驅(qū)動電壓調(diào)節(jié)電位器。所以感覺拖的到處是線,很不方便。
實施:通過檢查各元件的好壞后便進(jìn)行焊接工作。焊接進(jìn)行的還是比較順利。見下圖:
完成了。在檢查了線路的正確性后,用萬用表測了是否有短路。一切正常!
之前我的AT89S51里已寫好了個最小系統(tǒng)測試程序,就是讓P1.0上的紅色發(fā)光管閃爍。
# include
void main(void)
{ unsigned char i,j,k;
while(1)
{
for(i=0;i<100;i++)
{
for(j=0;j<255;j++)
for(k=0;k<255;k++);
}
P1_0= !P1_0;
}
}
我把它先插在我買的學(xué)習(xí)板上運(yùn)行,一切正常。但插在我做的的最小系統(tǒng)上卻沒反應(yīng)。就那么點線路查來查去還是沒問題呀!是晶振不起振?在學(xué)習(xí)板上用手拿著改錐分別碰18腳(XTAL2)和19腳(XTAL1)。發(fā)現(xiàn)當(dāng)人體碰到19腳時程序會亂掉,就是說可能會停振。于是又把我的系統(tǒng)板上晶振位置的電路重焊一遍,盡量縮短了19腳處線的長度。C4、C5又分別換了15PF、20PF、30PF的電容試試。故障依然,沒辦法,得靜一靜,看書! 在看到介紹第31腳(EA/VPP)時猛然想到31腳沒有接到電源正啊!起來立即把31腳接到電源正,紅色發(fā)光管立即閃爍起來。此時的高興真不可名狀啊!
總結(jié):除了在焊接時要仔細(xì)外,先畫好電路圖也是很重要的。像上面的電路圖在89S51的31腳上就只寫了Vcc的字樣,因此焊接時就被忽視了。應(yīng)該先畫出一張完整的圖才行。
檢查分幾個部分:1.晶振部分、2.復(fù)位部分、3.電源部分(最不可以忘掉EA接V+5v),4.還有就是P1_0發(fā)光管最基本的一個應(yīng)用部分。
其實這個板子上的晶振電路是非常容易起振的。19腳上的引線也沒那么敏感。但處理19腳時可能的話還是要盡量短些的,畢竟它比18腳要對外界干擾敏感的多。手摸上去就停振了。
還有就是學(xué)習(xí)單片機(jī)怎么著也得先買塊最最簡單的板子。否則你焊好你的板子后有故障到底是程序問題還是線路問題就無從查起,查錯查得還不瘋掉呀! 程序也沒法寫進(jìn)片子里去。你可能會說再做一個ISP下載線呀。做下載線更加不穩(wěn)定,下一篇我會專門講做ISP下載線的問題。再來個特寫鼓勵一下自己。