1樓
wangxinxin 發(fā)表于:2010-12-7 13:02:45
大家如果覺得買個現(xiàn)成的試驗板貴的話,可以自己動手做個,下面是詳細(xì)做的過程 :
首先用一塊萬能板(圖1)(有人也叫洞洞板)做一個單片機(jī)的最小
系統(tǒng).
(圖1)
C51最小系統(tǒng)電路在網(wǎng)上一搜一大把,大同小異。我略做改動后如圖2
(圖2)
加一個11.0592MHZ的晶振是為了以后做串口通信時和PC有相同的波特率。可用短路帽切換。說說板子的布局:網(wǎng)上賣的最小系統(tǒng)都是把板子做的非常小,如果僅僅只學(xué)習(xí)最小系統(tǒng),那是可以的。我以后是要做擴(kuò)展的,所以不能做的太小。因此該有的應(yīng)留著,不該有的都去掉。很重要的是以后在做其它擴(kuò)展
功能塊時的連接線就用一組排線而不能再有其它飛線。因此做一個好的布局是非常有必要的如圖3。
(圖3)
在板上除了最小系統(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)行的還是比較順利。見下圖4,圖5
(圖4)
(圖5)
完成了。在檢查了線路的正確性后,用萬用表測了是否有短路。一切正常!
之前我的AT89S51里已寫好了個最小系統(tǒng)測試程序,就是讓P1.0上的紅色發(fā)光管閃爍。
C語言
# include <at89x51.h>
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;
}
}
匯編語言
ORG 0000H
START:MOV P1,#11111110B;LED點亮
LCALL DELAY;延時1秒
MOV P1,#11111111B;LED滅
AJMP START;反復(fù)循環(huán)
;延時子程序,12M晶振延時約250毫秒
DELAY:
MOV R4,#2
L3: MOV R2 ,#250
L1: MOV R3 ,#250
L2: DJNZ R3 ,L2
DJNZ R2 ,L1
DJNZ R4 ,L3
RET
END
如果程序在學(xué)習(xí)板上運行,不正常。那么重點檢查以下幾個部分(見圖6)
1.晶振部分、2.復(fù)位部分、3.電源部分(最不可以忘掉EA接V+5v),4.還有就是P1_0發(fā)光管最基本的一個應(yīng)用部分。。
(圖6)
處理19腳時可能的話還是要盡量短些的,畢竟它比18腳要對外界干擾敏感的多。手摸上去就停振了。