20AT89C烧写器的制做与调试.docx
《20AT89C烧写器的制做与调试.docx》由会员分享,可在线阅读,更多相关《20AT89C烧写器的制做与调试.docx(12页珍藏版)》请在冰豆网上搜索。
20AT89C烧写器的制做与调试
20、AT89C2051烧写器的制做与调试
2009-03-1522:
28
现在都用S52了,还用C2051干嘛!
价格也差不多。
但是C2051的体积要比S51、S52小很多,而且引脚只有20只,在一些简单的控制中,这些引脚已足够了,小的体积更具有优势些。
但目前好像还没有支持在线编程(ISP)的S2051。
因此试着做个C2051的编程器,更主要的是与大家分享一下在电路制做过程中硬件、软件的除错技巧,尽量做到一次成功的经验和方法。
在网上找了一番,图很多,大同小异。
上一张最通用的图:
上图是可以烧写很多器件的电路,它的PCB板在网上也很容易找。
但因为是实验制做,没用PCB,就用万用板吧。
由于宽体的器件都有支持ISP的器件,所以我去掉了40脚宽体IC座,只留了个20脚窄体IC座用来烧写C2051,修改电路后电路图如下:
元件清单如下:
1/8w4.7k 6(一共6个)
560r 3(一共3个)
2k2 1
4.7欧姆 1串联于供电电路起保护作用
10k排阻 1用于cpup0口上拉
1n4148 2 用于vpp高压供给(注意4148的一头是黑色的)
12v 1用于vpp高压供给(注意12V的一头是白色的不要搞混)
4.7uf/50v 8 所有的电解都用同一个型号的,注意方向哦
104 2用于电源滤波
22p 2用于晶体电路
11.0592 1晶体
2n5401 1注意看型号和插入的方向,不要错!
2n5551 2
发光管 23mm白发红(用于电源指示和通信指示)(注意方向)
db9 1串口头
20pin卡座1烧写2051等用
40pinic座1插入监控用89s51
16pinic座1插入max232芯片
usb座 1供电用
串口电缆 1通信用
usb电缆 1供电用
At89s51 1用于监控
max232cpe 1通信用集成电路
pcb 1电路板
实际板子今天已做好,先秀一下吧。
接着再讲详细调试方法和步骤:
(点击后看大图)
这个电路对于初学者可能复杂了一点,它分为几个部分,如果你先将电路板规划好,然后把元件一次都焊上,再进行调试,成功的概率很小。
那应该怎么做呢?
先规划一下元件的位置布局,然后分几个单元,一个单元做好后进行调试,正常后再进行下一个单元的制做调试。
我的规划如下,先是电源部分包括那个电源指示LED:
先将USB座焊上,确认无短路后插上USB电源,用万用表找出A、B两点中哪个是5v的正极,哪个是地。
然后去掉电源将剩下的几个电容、电阻和LED焊上,再确认无短路后接上电源,LED应亮起。
我是将LED的限流电阻改为了2K,因为我看它已够亮了。
电流1.5毫安。
实物如右边红色圈出的图。
第二部分是MAX232,包括那个+12v电压稳压电路。
MAX232是TTL转RS232专用IC。
它内部提供了一个正10v,和负10v的升压电路。
我们正是利用了它的升压电路又获得了个+12v的电源。
我们先将9针串口焊上,但不接上MAX232。
在你规划的MAX232区,按上图左侧电路将MAX232座和四个电容焊好。
检查无短路后,插上MAX232,接上电源,在A点应能测到+9v-+10v的电压。
在B点应有-9v--10v的电压,将10脚接地,那7脚就应该是+10V。
若10脚接+5v,那么7脚就变成-10v。
这样MAX232就正常了。
将串口的2脚接MAX232的7脚。
串口的3脚接MAX232的8脚。
接上电将MAX232的10脚分别接地和+5v看看串口的2脚是否跟刚才一样变化。
以上的调试正确后,将上图右边的12V稳压电路焊上。
如下图:
用万用表在稳压管两端应测得稳定的+12V电压。
这样你的这个串口转换和12v电源电路就调试正常了。
第三部分是12V烧写控制部分:
电路和实物图如下:
这部分电路焊好后,接上第二部分调试正常的+12v和电源+5V。
先测量电路上+12v接入点和电源电压+5v是否正常确。
再测量上图的A点也应该是+5v。
然后你把VO13用导线接+5V,那么A点是+9v-+11v就对了。
好!
断开VO13,再将V014用导线接+5v,A点应该是接近0。
这样12V烧写控制电路也调试正确了。
下面就是S51部分的电路,如下图:
这部分电路包括P0口的上拉排阻和那个接收指示LED接在S51的10脚。
别忘了将S51的第31脚(EA/VP)也接电源+5v。
先确认将MAX232的第9脚与S51第10脚的连接断开(因为MAX232在调试正常后9脚就输出+5v高平会点亮接收指示LED,妨碍S51工作性能的检查)。
检查电路无误后插上S51片子接上电源,静态电流应在9-12mA左右。
好!
打开KEIL写个测试程序:
#include
#defineucharunsignedchar
main(void)
{
uchari,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;
}
}
这个程序就是让S51第10脚(P3.0)接的那个LED闪烁。
能闪烁就说明晶振起振,S51电路工作正常了,编译,然后用ISP将这个程序写进S51片内,再插到我们做好的2051烧写器上。
接上电源,我的电路立即就正常工作了,LED在闪烁。
如果LED无反应,你就得检查你的S51电路是否连接正常,晶振是否焊接正确等。
S51电路正常后,我们就要将刚才断开的MAX232的第9脚和S51的第10脚焊上。
这时我们再编个测试程序:
#include
#include
voidmain(void)
{
SCON=0x50;
TMOD=0x20;
PCON=0x80;
TCON=0x40;
TH1=0xfd;//比特率19200
TL1=0xfd;
TI=1;
TR1=1;
while
(1)
{
printf("helloWorld!
\n");
}
}
这个程序就是打开单片机S51的串口,不断的送出字符串“helloWorld"。
编译成HEX文件,再用ISP将程序写进S51片内。
然后插到2051烧写板上。
将串口线接到PC上。
打开PC,运行串口调试器:
将红圈画出位置的波特率设为19200。
确认为COM1口。
然后将2051烧写器的电源给上,我的PC串口调试器上立即就出现了“helloWorld”。
这样,与PC的串口通讯就调试成功了。
如果你没有出现正确结果,而上面几步的调试又是正常的,那就是从PC串口端到你S51的接线有错误了。
仔细检查你的接线,会找到错误的。
上面几步都正常后,就是将这几步调试正常的电路整合了。
将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座的电源,地接上。
好!
检查无误后,接上电源再试一次串口通讯是否正常(以防在焊接后焊错使S51不工作)后。
拔下S51,用ISP将那个E51Pro.HEX的驱动固件写进S51,再将它插到40脚S51座上,在20脚IC座上插上AT89C2051,连好PC串口,PC上运行那个Easy51ProV2.0,然后将2051烧写器给上电源。
在PC软件上先择AT89C2051,点击检测器件,我的,1e21FF。
然后试着打开一个HEX文件,点自动完成,它就一路完成器件的检测、擦除、写入,校验等工作,如下图:
如果你的器件没找到,但前面的串口通迅等调试是正常的,那么你最后一步的那些接线可能有误。
仔细检查你的接线,及C2051座的电源、接地是否正常。
好了,掸一掸尘土,大功告成。
终于可以闪到一边喝口茶凉快会儿去了!
也给点掌声啊!
容易嘛?
我。
。
。
!
总结:
养成逐步调试的习惯,对电路的一次成功是非常有益的。
有了问题对除错的范围也可以缩至最小。
(2009,03,17)
类别:
默认分类|添加到搜藏|浏览(2766)|评论 (30)
上一篇:
19、KEIL的混合编程操作 下一篇:
21、时钟IC_DS1302的应用之一…...
最近读者:
登录后,您就出现在这里。
123hyguanglin
eyoui
lengshine
137********
自己教自己
sun111888
chnews
47okey