在网上找了一番,图很多,大同小异。上一张最通用的图:
上图是可以烧写很多器件的电路,它的PCB板在网上也很容易找。但因为是实验制做,没用PCB,就用万用板吧。由于宽体的器件都有支持ISP的器件,所以我去掉了40脚宽体IC座,只留了个20脚窄体IC座用来烧写C2051,修改电路后电路图如下:
1/8w 4.7k 6 (一共6个)
560r 3 (一共3个)
2k2 1
4.7 欧姆 1 串联于供电电路起保护作用
10k排阻 1 用于cpu p0口上拉
1n4148 2 用于vpp高压供给 (注意4148 的一头是黑色的)
12v 1 用于vpp高压供给 (注意12V 的一头是白色的不要搞混)
4.7uf/50v 8 所有的电解都用同一个型号的, 注意方向哦
104 2 用于电源滤波
22p 2 用于晶体电路
11.0592 1 晶体
2n5401 1 注意看型号和插入的方向, 不要错!
2n5551 2
发光管 2 3mm白发红(用于电源指示和通信指示)(注意方向)
db9 1 串口头
20pin 卡座 1 烧写 2051等用
40pin ic座 1 插入监控用89s51
16pin ic座 1 插入 max232芯片
usb座 1 供电用
串口电缆 1 通信用
usb 电缆 1 供电用
At89s51 1 用于监控
max232cpe 1 通信用集成电路
pcb 1 电路板
实际板子今天已做好,先秀一下吧。接着再讲详细调试方法和步骤:
(点击后看大图)
第二部分是MAX232,包括那个+12v电压稳压电路。MAX232是TTL转RS232专用IC。它内部提供了一个正10v,和负10v的升压电路。我们正是利用了它的升压电路又获得了个+12v的电源。
第三部分是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
#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;
}
}
这个程序就是让S51第10脚(P3.0)接的那个LED闪烁。能闪烁就说明晶振起振,S51电路工作正常了,编译,然后用ISP将这个程序写进S51片内,再插到我们做好的2051烧写器上。接上电源,我的电路立即就正常工作了,LED在闪烁。如果LED无反应,你就得检查你的S51电路是否连接正常,晶振是否焊接正确等。
S51电路正常后,我们就要将刚才断开的MAX232的第9脚和S51的第10脚焊上。这时我们再编个测试程序:
#include
#include
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");
}
}
这个程序就是打开单片机S51的串口,不断的送出字符串“hello World"。编译成HEX文件,再用ISP将程序写进S51片内。然后插到2051烧写板上。将串口线接到PC上。打开PC,运行串口调试器:
上面几步都正常后,就是将这几步调试正常的电路整合了。将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座的电源,地接上。
好了,掸一掸尘土,大功告成。终于可以闪到一边喝口茶凉快会儿去了!也给点掌声啊!容易嘛?我。。。!
总结:养成逐步调试的习惯,对电路的一次成功是非常有益的。有了问题对除错的范围也可以缩至最小。
上一篇:74LS165 C51程序(并入传出芯片)
下一篇:时钟程序(LED+DS1302+AT89S52)
推荐阅读最新更新时间:2024-03-16 15:20