| 現(xiàn)在都用S52了,還用C2051干嘛!價(jià)格也差不多。但是C2051的體積要比S51、S52小很多,而且引腳只有20只,在一些簡單的控制中,這些引腳已足夠了,小的體積更具有優(yōu)勢些。但目前好像還沒有支持在線編程(ISP)的S2051。因此試著做個(gè)C2051的編程器,更主要的是與大家分享一下在電路制做過程中硬件、軟件的除錯(cuò)技巧,盡量做到一次成功的經(jīng)驗(yàn)和方法。 在網(wǎng)上找了一番,圖很多,大同小異。上一張最通用的圖: ![]() 上圖是可以燒寫很多器件的電路,它的PCB板在網(wǎng)上也很容易找。但因?yàn)槭菍?shí)驗(yàn)制做,沒用PCB,就用萬用板吧。由于寬體的器件都有支持ISP的器件,所以我去掉了40腳寬體IC座,只留了個(gè)20腳窄體IC座用來燒寫C2051,修改電路后電路圖如下: ![]() 元件清單如下: 1/8w 4.7k 6 (一共6個(gè)) 560r 3 (一共3個(gè)) 2k2 1 4.7 歐姆 1 串聯(lián)于供電電路起保護(hù)作用 10k排阻 1 用于cpu p0口上拉 1n4148 2 用于vpp高壓供給 (注意4148 的一頭是黑色的) 12v 1 用于vpp高壓供給 (注意12V 的一頭是白色的不要搞混) 4.7uf/50v 8 所有的電解都用同一個(gè)型號的, 注意方向哦 104 2 用于電源濾波 22p 2 用于晶體電路 11.0592 1 晶體 2n5401 1 注意看型號和插入的方向, 不要錯(cuò)! 2n5551 2 發(fā)光管 2 3mm白發(fā)紅(用于電源指示和通信指示)(注意方向) db9 1 串口頭 20pin 卡座 1 燒寫 2051等用 40pin ic座 1 插入監(jiān)控用89s51 16pin ic座 1 插入 max232芯片 usb座 1 供電用 串口電纜 1 通信用 usb 電纜 1 供電用 At89s51 1 用于監(jiān)控 max232cpe 1 通信用集成電路 pcb 1 電路板 實(shí)際板子今天已做好,先秀一下吧。接著再講詳細(xì)調(diào)試方法和步驟: ![]() (點(diǎn)擊后看大圖) 這個(gè)電路對于初學(xué)者可能復(fù)雜了一點(diǎn),它分為幾個(gè)部分,如果你先將電路板規(guī)劃好,然后把元件一次都焊上,再進(jìn)行調(diào)試,成功的概率很小。那應(yīng)該怎么做呢?先規(guī)劃一下元件的位置布局,然后分幾個(gè)單元,一個(gè)單元做好后進(jìn)行調(diào)試,正常后再進(jìn)行下一個(gè)單元的制做調(diào)試。我的規(guī)劃如下,先是電源部分包括那個(gè)電源指示LED: ![]() 先將USB座焊上,確認(rèn)無短路后插上USB電源,用萬用表找出A、B兩點(diǎn)中哪個(gè)是5v的正極,哪個(gè)是地。然后去掉電源將剩下的幾個(gè)電容、電阻和LED焊上,再確認(rèn)無短路后接上電源,LED應(yīng)亮起。我是將LED的限流電阻改為了2K,因?yàn)槲铱此褖蛄亮恕k娏?.5毫安。實(shí)物如右邊紅色圈出的圖。 第二部分是MAX232,包括那個(gè)+12v電壓穩(wěn)壓電路。MAX232是TTL轉(zhuǎn)RS232專用IC。它內(nèi)部提供了一個(gè)正10v,和負(fù)10v的升壓電路。我們正是利用了它的升壓電路又獲得了個(gè)+12v的電源。 ![]() 我們先將9針串口焊上,但不接上MAX232。在你規(guī)劃的MAX232區(qū),按上圖左側(cè)電路將MAX232座和四個(gè)電容焊好。檢查無短路后,插上MAX232,接上電源,在A點(diǎn)應(yīng)能測到+9v-+10v的電壓。在B點(diǎn)應(yīng)有-9v--10v的電壓,將10腳接地,那7腳就應(yīng)該是+10V。若10腳接+5v,那么7腳就變成-10v。這樣MAX232就正常了。將串口的2腳接MAX232的7腳。串口的3腳接MAX232的8腳。接上電將MAX232的10腳分別接地和+5v看看串口的2腳是否跟剛才一樣變化。以上的調(diào)試正確后,將上圖右邊的12V穩(wěn)壓電路焊上。如下圖: ![]() 用萬用表在穩(wěn)壓管兩端應(yīng)測得穩(wěn)定的+12V電壓。這樣你的這個(gè)串口轉(zhuǎn)換和12v電源電路就調(diào)試正常了。 第三部分是12V燒寫控制部分:電路和實(shí)物圖如下: ![]() 這部分電路焊好后,接上第二部分調(diào)試正常的+12v和電源+5V。先測量電路上+12v接入點(diǎn)和電源電壓+5v是否正常確。再測量上圖的A點(diǎn)也應(yīng)該是+5v。然后你把VO13用導(dǎo)線接+5V,那么A點(diǎn)是+9v-+11v就對了。好!斷開VO13,再將V014用導(dǎo)線接+5v,A點(diǎn)應(yīng)該是接近0。這樣12V燒寫控制電路也調(diào)試正確了。 下面就是S51部分的電路,如下圖: ![]() 這部分電路包括P0口的上拉排阻和那個(gè)接收指示LED接在S51的10腳。別忘了將S51的第31腳(EA / VP)也接電源+5v。先確認(rèn)將MAX232的第9腳與S51第10腳的連接斷開(因?yàn)镸AX232在調(diào)試正常后9腳就輸出+5v高平會點(diǎn)亮接收指示LED,妨礙S51工作性能的檢查)。檢查電路無誤后插上S51片子接上電源,靜態(tài)電流應(yīng)在9-12mA左右。好!打開KEIL寫個(gè)測試程序: #include <AT89X51.H> #define uchar unsigned char main(void) { uchar i,j,k; while(1) { for(i=0;i<1;i++) { for(j=0;j<255;j++) for(k=0;k<255;k++); } P3_0=~P3_0; } } 這個(gè)程序就是讓S51第10腳(P3.0)接的那個(gè)LED閃爍。能閃爍就說明晶振起振,S51電路工作正常了,編譯,然后用ISP將這個(gè)程序?qū)戇M(jìn)S51片內(nèi),再插到我們做好的2051燒寫器上。接上電源,我的電路立即就正常工作了,LED在閃爍。如果LED無反應(yīng),你就得檢查你的S51電路是否連接正常,晶振是否焊接正確等。 S51電路正常后,我們就要將剛才斷開的MAX232的第9腳和S51的第10腳焊上。這時(shí)我們再編個(gè)測試程序: #include<at89x51.h> #include<stdio.h> void main(void) { SCON=0x50; TMOD=0x20; PCON=0x80; TCON=0x40; TH1=0xfd;//比特率19200 TL1=0xfd; TI=1; TR1=1; while(1) { printf("hello World!\n"); } } 這個(gè)程序就是打開單片機(jī)S51的串口,不斷的送出字符串“hello World"。編譯成HEX文件,再用ISP將程序?qū)戇M(jìn)S51片內(nèi)。然后插到2051燒寫板上。將串口線接到PC上。打開PC,運(yùn)行串口調(diào)試器: ![]() 將紅圈畫出位置的波特率設(shè)為19200。確認(rèn)為COM1口。然后將2051燒寫器的電源給上,我的PC串口調(diào)試器上立即就出現(xiàn)了“hello World”。 ![]() 這樣,與PC的串口通訊就調(diào)試成功了。如果你沒有出現(xiàn)正確結(jié)果,而上面幾步的調(diào)試又是正常的,那就是從PC串口端到你S51的接線有錯(cuò)誤了。仔細(xì)檢查你的接線,會找到錯(cuò)誤的。 上面幾步都正常后,就是將這幾步調(diào)試正常的電路整合了。將12v燒寫控制端VPP接到2051的第1腳,VO13、VO14分別接到S51的第13、14腳。S51的第15腳VST接到2051的第9腳。S51的第1腳(P1.0)接到2051的第11腳。S51的5、6、7、8分別接到2051的第5、6、7、8腳。S51的P0口(第32-39腳)分別接到2051座的第12-19腳。別忘了將2051座的電源,地接上。 ![]() ![]() 好!檢查無誤后,接上電源再試一次串口通訊是否正常(以防在焊接后焊錯(cuò)使S51不工作)后。拔下S51,用ISP將那個(gè)E51Pro.HEX的驅(qū)動固件寫進(jìn)S51,再將它插到40腳S51座上,在20腳IC座上插上AT89C2051,連好PC串口,PC上運(yùn)行那個(gè)Easy 51Pro V2.0,然后將2051燒寫器給上電源。在PC軟件上先擇AT89C2051,點(diǎn)擊檢測器件,我的,1e 21 FF。然后試著打開一個(gè)HEX文件,點(diǎn)自動完成,它就一路完成器件的檢測、擦除、寫入,校驗(yàn)等工作,如下圖: ![]() 如果你的器件沒找到,但前面的串口通迅等調(diào)試是正常的,那么你最后一步的那些接線可能有誤。仔細(xì)檢查你的接線,及C2051座的電源、接地是否正常。 好了,撣一撣塵土,大功告成。終于可以閃到一邊喝口茶涼快會兒去了!也給點(diǎn)掌聲啊!容易嘛?我。。。! 總結(jié):養(yǎng)成逐步調(diào)試的習(xí)慣,對電路的一次成功是非常有益的。有了問題對除錯(cuò)的范圍也可以縮至最小。 (2009,03,17) |
| 歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |