AT89S52超简单的并口ISP下载线之DIY亲测成功

AT89S52超简单的并口ISP下载线之DIY亲测成功
AT89S52超简单的并口ISP下载线之DIY亲测成功

AT89S52单片机学习经验2号文件——AT89S52超简单的并口ISP下载线之DIY

AT89S52单片机学习经验2号文件

——AT89S52超简单的并口ISP下载线之DIY 经过五天的奋斗,我终于找到了一种对初学者来说超简单的并口ISP下载线制作方法。(资源都来自网络,百度、Google 真是好东西啊!)

制作S51的ISP下载线,网络上有一堆资料,但到底哪个对自己适合呢?这是个大问题,对我这个初学者就犯了个很大的错误——一上来就想整难的(制作AT89S52的串口ISP下载线,这浪费我三天的时间啊)。现在市面上买的ISP下载线一般都是并口或USB口的,串口的很少。因为串口制作比并口难,下载速度较慢,网络上非常成熟的DIY方法很少,极易出问题。而制作USB口的ISP下载线,目前来说就非常专业了,制作这个对初学者来比登天还难呀,网上资料极少!而并口线下载速度快,制作简单,资料很全。

废话不多说了,入正题。我是按照网络上的资料,自己整理做的一根并口下载线(就一个针头并口,六根线,一个接插件)。上图

我做这根下载线实际就花了30多分钟,调了半个小时。当然之前,我还按照网友txz01的方法(方案见

https://www.360docs.net/doc/7119024743.html,/txz01/blog/item/11c1c85089cf1b608435246e.html)用74HC373做了一个并口下载线,但用软件Easy 51Pro v2.0宇宙版调试总读不出正确的特征字,而我用软件ISPtest测试并口是正常的,最小系统也是正常的(尽管当时只知道晶振正常,但是后来下载线做好后,最小系统可以用下载线来正确地烧写程序——哈哈,事后诸葛亮啊!以后,我会注意拿事实说话。PS:想了想事后拿事实验证也是可以的)。我估计是74HC373处有问题(以后有时间,我再测试一下看看)。

按上图,做好下载线后,就到了这关键的一步,软件调试。我是在软件IsPlay v1.5.0.1上调试成功的。(注:我在Easy 51Pro v2.0宇宙版和PonyProg2000软件上也测试过,发现调试不成功。)

特别说明软件的具体设置完全参考引用王洪江同学(联系方式dianzijie0115@https://www.360docs.net/doc/7119024743.html,)的设置说明,非常感谢他先前的工作。

在下载程序前要先对软件设置以下才行,否则不能用的。具体设置如下:

首先设置见图2:用记事本打开图中所示的ini文件,见图3:打开时有可能与此图的引脚配置不一样,以此管脚配置为准。

修改完要保存,一定要养成这个习惯,不管做什么都要边做边存盘。接下来见图4:双击指定的图标打开后见图5:

在图5中首先点击程序设置(左下角),出现图6所示,把刚才修改过的ini文件(图3所示的)加载进去,确定。又回到图5所示的界面,然后点击检测器件,见图7的所示的现象。

到这里大部分工作已经做完了,接下来就是生成hex文件,建议大家用keil软件,因为这是一个很成熟的单片机软件,支持差不多所有的单片机,具体怎么用keil生成hex文件这里就不多说了,可以去网上下载。生成hex文件后就可以把该文件烧写到单片机里面。

个人小经验:

1、方案很重要,对初学者来说,尽量先做一个最简单的isp下载线方案(简单肯定有些弊病,我将在以后再进行

说明)。哈哈,我做这个并口下载线是我知道的最简单的一个。这点要狠狠地鼓励一下自己!也期待有高人给出更简单的方案。

2、在做下载线时要注意下载线不能太长,最好不超过1米,目的是抗干扰,太长会造成下载不成功,大家一定要引

起注意。我做下载线长不到半米。

3、软件可以多试几个看看效果,你试就会发现各有各的优点。比如:IsPlay软件比较专一,在并口下载方面可靠

性较优,而Easy 51Pro v2.0宇宙版和PonyProg2000软件都支持串并口isp下载,但界面设置麻烦些,并口的效果也

没IsPlay软件好。但IsPlay和Easy 51Pro v2.0宇宙版软件没有好的并口测试(单独的IspTest也用起来不方便),最好下载前先测试一下你的并口是否接好,这点PonyProg2000做的很好,直接点软件就可以非常方便的测试出你的并口线是否接好。(具体测试方法可以百度一下哦!)

附测试程序代码:

(程序功能就是让P1.0上的LED闪烁发光)

文件LED1.c

#include

void main(void)

{ unsigned char i,j,k;

while(1)

{

for(i=0;i<100;i++)

{

for(j=0;j<50;j++)

for(k=0;k<10;k++);

}

P1_0= !P1_0;

}

}

相关主题
相关文档
最新文档