返回
easy 51pro 2.162 免安装绿色版

easy 51pro

立即下载

小编提示:PC版不适合移动端,如下载有问题点击反馈!

软件介绍

easy 51pro是一款编程人员都在使用的单片机编程软件。操作最简单却不失功能的单片机编程软件easy 51pro。操作方便,受到了大家的热烈欢迎。许多用户已经感觉到ISP编程技术在完成之后的成就。今天的编辑器为您带来了2.0版,这也是最新版本。在中间,用户可以快速掌握如何将Easy 51Pro的支持扩展到设备。在使用之前,用户可以理解Keil C(如果扩展了Easy 51Pro串行编程器)或VC(如果扩展了Easy Isp下载线)。每个人都介绍基本原理。有关串行通讯和程序接口创建的详细信息,请参见源代码,其中有详细说明;如果您正在学习微控制器和PC之间的串行通信,那么这组信息将对您非常有用。功能强大且实用,需要它的用户可以下载体验。

常见问题::

在检测设备期间,有时它不可用,当严重时,根本无法检测到它,更不用说对设备进行编程了。这是下载线的不稳定性能。该问题主要是由SCK引起的。我使用74373闩锁来解决该问题。信号被锁存一次。这种方法比较稳定,但是

他的速度较慢。

参考Atmel的下载线后,将大约500欧姆的电阻连接到并行端口STROBE,然后卸下原始闩锁,然后发现它也可以运行。消除了闩锁过程后,速度提高了很多,但是在速度变快之后,我发现它有点不稳定。我在程序中设置了一定的延迟,然后再次稳定下来。

以上两种方法必须将并行端口设置为ECP模式。经过几个月的探索,新设计的下载线非常稳定,并且并行端口无需设置为ECP模式,也不需要HC设备。实际上,它是从Atmel和Altera下载行复制而来的。

您也可以去复制一下,注意SCK一定要掌握好。最好将它们全部复制。您也可以使用您的方法来解决此问题,并在成功后记得与您分享。该系统在我的机器上

运行非常稳定。在几天的疯狂测试中,基本上没有编程失败。我的机器的配置是Duron 1G,ddr 128m,升技主板,AMD761

写入设备时,请始终写入地址,然后暂停然后报告故障;

或者可以成功写入,但是测试期间数据不正确。最可能的原因是电源不稳定,电缆较长,焊接不良以及设备质量问题。这也可与计算机的性能有关,尤其是在打开许多程序时。

无法检测到设备,但可以正常读写,并且验证正确。这是您的微控制器的问题。某些模块可能损坏。

以下是我对下载行的步骤和经验的总结:

1.首先确保目标板上的微控制器可以正常运行,许多人忘记了EA / VPP应该连接到高电平。

2.制作下载电缆时,电缆不应太长。

3.注意单片机外围电路的影响。最可能的影响是单片机的复位电路。

电。

4.确保使用IspTest,可以控制信号,并且可以将电平控制到位。很多人

忘将电源连接到74373,结果在测试过程中变化仅为0-3V。

5.您可以在调试过程中将LE连接到高电平,将OE连接到低电平,而无需软件控制。

注意事项:

1.用户只需单击此网站上提供的下载地址即可将应用程序下载到磁盘

easy 51pro

easy 51pro

2.打开数据包并解压缩数据文件以获得可以直接使用的程序文件

easy 51pro

3.双击主程序以打开应用程序

easy 51pro

软件功能:

现在支持十六进制文件

用户可以扩展设备

重载文件对话框,因此您不必到处查找文件

热键支持,让您更高效地调试程序

灵的编程,甚至可以让整个软件在其他编程器硬件上运行

可以支持任何下载线,给您更多选择

设计了串行通信超时程序以减少断开连接

下载行和程序员都有相关的调试程序,可以使您的生产更加轻松,并提高成功率

开源代码和详细的原理描述,用户可以根据自己的要求进行修改

软件特色:

1.使用串行通讯,芯片自动识别。编程期间的擦除,编程和验证各种操作完全由编程器上的监视芯片89C51控制。它不受PC配置及其主频率的影响,因此被编程为高功率可以达到100%,编程速度非常快,并且编程速度与微型计算机的等级无关。

2. 57600高速波特率用于数据传输。编程速度可以与普通并行编程器相媲美。经过测试,刻录4K ROM的AT89C51仅需9.5S,而读取和验证仅需3.5S。

3.体积小巧,省去了体积庞大的外接电源适配器,直接使用USB端口的5V电源供电,携带方便,非常初学者学习51单片机的要求。

4.友好的软件界面,完整的菜单,工具栏,快捷键,全中文操作,提供加密功能,可以保护您的创作财产权。可以说,尽管麻雀虽小,却拥有所有的内脏!

5.完善的功能,具有编程,读取,检查,空检查,擦除,加密等一系列功能。

6、40针和20针锁定插座,所有设备均与第一个针对齐,无需额外的跳线,DIP封装芯片无需适配器。

7.采用优质的万能锁紧插座,告别接触不良等问题,可以写40针MCU芯片和20针MCU芯片,

8.改进的编程深度可确保每个C51系列芯片的重复编程时间可以超过1000次!保留内部数据至少10年。

9.由于使用9针直通通信,它将不再与打印机争用打印端口,并且可以随时随地刻录,这使芯片编程变得很轻松。

使用说明:

不要看界面与以前的版本相似,所有内容都可以更改,用法还是一样。单击“自动完成”后,它将一一掉下来。最佳设置如上图所示。缓冲区1将自动刷新您打开的最后一个文件,因此您不必在每次刻录芯片时都打开文件。您也可以在此界面中单击“自动完成”,而不是单击“输入”。当您不在此界面中时,可以使用“热键”,因此,只要您完成了程序的编译,就只需按热键(默认热键Ctrl + Shift + P)。在调试期间频繁刻录芯片时,此功能非常重要。要将按钮设置为“自动”非常简单,只需单击“鼠标右键”即可。操作成功或失败时,将出现不同的声音提示。成功的语音提示可能会使您在编程时更加兴奋和更有效率。如果您觉得声音听起来不好,请在设置中将其“错误”。

easy 51pro

下面有一个提示,您将一目了然地知道该怎么做。有4个编程器选项。 Easy 51Pro串行编程器也是新设计的,原始的一个

在该电路中,将12v / 5v开关电路更改为12v / 5v / 0v开关电路,以便可以烧毁AT89C2051。但是仍然需要使用一对跳线或开关(“ Homemade Easy 51Pro Serial Programmer”中的详细信息)。

简易ISP下载线可以是任何一种并行端口下载线,因为我的设计是这样的:

打开程序目录中的EasyIsp.ini文件,以编辑控制ISP时使用的并行端口引脚。文件下方有详细说明。编辑此文件可以支持您现有的下载线,也可以解决软件的向上兼容性问题。如果您是旧版用户,请删除此文件。但是我仍然建议我使用新设计的下载线,即上面的配置(实际上,用电阻器焊接每根电线比电线更容易,然后与Atmel的图片相同):

easy 51pro

实际上,该电路是从Altera下载行和Atmel下载行复制而来的。我认为有必要使用74373 OE。编程后,可以将其设置为高阻抗,这样就不会影响微控制器的几个引脚。使用LE可以维持当前信号状态并增加抗干扰能力。 R1,R2保留用于将来其他设备的扩展。该电路在我的计算机上运行非常稳定。如果您仍然对电路的稳定性有疑问,可以复制适合您的电路,但是请记住要特别注意SCK引脚,否则下载电缆会很不稳定。

Altera ByteBlaster下载线用于下载AT89S51的示意图:

注意:软件设置中有一个新的“下载行性能”,有3个选项“常规”,“更快”,“最快”。选择“常规”更改信号一次,将有一个控制LE的操作(一个脉冲,开,关);每次信号改变时,“更快”将打开LE,但不会关闭,这是因为并行端口已被访问。即使设备没有LE或LE连接到高电平,它也可能会延迟; “最快”不使用LE。请遵循自制下载线的稳定性设置。

easy 51pro

完成下载线后,您必须对其进行调试。我为每个人开发了一个行调试软件“ IspTest”,该功能比以前的版本更强大,使用更方便。

它还共享EasyIsp.ini中的配置。单击按钮后,使用万用表测量该引脚的电平是否可以控制到位。

虽然这个东西是免费的,但是我的服务可以被认为是细致的。 Easy 51Pro串行编程器还有一个调试程序。它是我之前写的,主要是为了当时帮助学习CPLD并测试逻辑是否可以实现。但是,后来增加了调试单片机子程序的功能,可以用来测试编写程序员时线路是否连接良好以及12v / 5v / 0v是否可以控制。

该软件的设计非常灵活,可以从上面下载线的支持中看到,但是最重要的是支持设备。一个人做这件事不可能支持很多设备,没有时间,没有钱做。所以我设计了这样的东西:

上面显示的设备与Easy 51Pro中的下拉列表相同。每次Easy 51Pro启动时,它将从“ ChipList.chip”中加载设备信息。使用此软件打开“ ChipList.chip”将类似于上图。如果列表中没有您想要的设备,请不要担心,自己动手做。我自己简化了这个DIY流程,再简单不过了。

easy 51pro

您可以将新设备直接添加到此列表中,填写一些设备信息,也可以“从文件导入”,即将这些列表合并到另一个“ * .chip”文件中。设备列表用于Easy 51Pro软件识别设备。这还不够。您必须让它知道如何对设备进行编程。

这需要您进行编程。 Easy 51Pro串行编程器的控制器MCU程序是用Keil C编写的,具有详细的注释和较高的可读性,并且我已经建立了一个框架,可以对该程序进行分层和模块化。为了支持其他设备,您可以修改我作为模板编写的AT89C51,AT89C0251,AT89S51编程器程序。如果您想扩展Easy Isp下载线的功能,并不难,只要您了解一点C ++。有关扩展设备的详细信息,请参阅“ Easy 51Pro原理和扩展”。

easy 51pro

Easy 51Pro程序员原理和Easy ISP文章的扩展

如果您已阅读“ The Principles and Ext

的“ Easy 51Pro Programmer”,那么您将更容易阅读本文。您会发现ProWork和类CIsPro具有相同的原理。实际上,ProWork模仿了CIsPro。我将CIsPro称为“ ISP编程方法类”。

查看本文,您可能需要一些C ++的基础知识。本文主要是为了帮助用户掌握扩展EasyISP的原理和方法,因此,讨论的重点将放在CParlPro和CIsPro上,您需要了解其他详细信息才能查看源程序。附带VC源代码,可以在VC6.0上编译EPro.exe的可执行文件。但是,该程序使用Code Jock的Xtreme Toolkit界面解决方案,该解决方案需要下载并安装(至少15分钟)。如果提示在编译过程中找不到dll,请复制winio.dll,winio.sys,hook.dll,XT2000Lib.dll到程序所在的目录

easy 51pro

Easy 51Pro应用程序框架:

CEProDlg:对话框界面接收用户操作,并将用户操作转换为CPro对象中的函数调用

CPro:根据用户的选择创建CParlPro对象(如果使用并行端口下载电缆)或CSerialPro对象(如果使用串行编程器);管理CParlPro对象和CSerialPro对象,以使其与用户界面进行通信;建立两个快速的64k缓冲区1和缓冲区2提供一些功能来管理缓冲区;管理设备列表,您可以通过功能词查询匹配的设备。

CParlPro派生自CParallelPort

CParallelPort:负责安装驱动程序,提供丰富的功能以促进并行端口的操作。

CParlPro:封装ISP编程一般过程,并控制并行端口以通过CIsPro派生的类对象对设备进行编程。 CSerialPro衍生自CSerialPort

easy 51pro

CSerialPort:提供丰富的功能以促进串行通信

CSerialPort:将CPro传递的用户操作信息转换为编程命令,并根据协议发送给编程器

由于CParallelPort设计以下功能:

BOOL SetPinLogic(int nPin,BOOL bLogic); //设置指定的引脚,bLogic = 1高电平,bLogic = 0低电平

BOOL GetPinLogic(int nPin); //获取指定引脚的电平

BOOL SetPinL(int nPin); //将指定的引脚设置为低电平

BOOL SetPinH(int nPin); //将指定的引脚设置为高电平

它们可以通过并行端口的针脚编号在并行端口的针脚上操作,这使Easy ISP本质上能够支持任何下载线。查看如何支持:

Int m_nPinMosi; //控制MOSI使用的并行端口引脚

Int m_nPinMiso; //控制MISO使用的并行端口引脚

Int m_nPinRst; //控制RST使用的并行端口引脚

Int m_nPinSck; //控制SCK使用的并行端口引脚

Int m_nPinLe; //并行引脚用于控制设备锁存器

Int m_nPinOe; //控制设备OE使用的并行端口引脚

Int m_nPinR1; //保留引脚1

Int m_nPinR2; //保留引脚2

BOOL m_bLe; //锁存器有效的级别

布尔m_b2Le; //锁存器无效的级别

BOOL m_bOe; // OE有效时的级别

BOOL m_b2Oe; // OE无效时的级别

easy 51pro

上面的变量保存下载线使用的所有并行端口引脚号。如此多的引脚资源就足够了。要了解这些MOSI,MISO,SCK引脚的用途,请参见“ Easy 51Pro编程器的原理和扩展”。在初始化期间,将为这些变量分配值。

如果(nProType

== 1)//简易ISP下载行

{

CString strEasyIspIni;

StrEasyIspIni = m_strAppPath +“ EasyIsp.ini”; //从EasyIsp.ini文件中获取引脚配置信息

//如果没有“ EasyIsp.ini”文件,请使用默认的下载行配置(旧版本)

M_nPinMosi = GetPrivateProfileInt(“ Pin Control”,“ MOSI”,14,strEasyIspIni);

M_nPinMiso = GetPrivateProfileInt(“ Pin Control”,“ MISO”,15,strEasyIspIni);

M_nPinSck = GetPrivateProfileInt(“ Pin Control”,“ SCK”,1,strEasyIspIni);

M_nPinRst = GetPrivateProfileInt(“ Pin Control”,“ RST”,16,strEasyIspIni);

M_nPinLe = GetPrivateProfileInt(“ Pin Control”,“ LE”,17,strEasyIspIni);

M_nPinOe = GetPrivateProfileInt(“ Pin Control”,“ OE”,2,strEasyIspIni);

M_nPinR1 = GetPrivateProfileInt(“ Pin Control”,“ R1”,3,strEasyIspIni);

M_nPinR2 = GetPrivateProfileInt(“ Pin Control”,“ R2”,4,strEasyIspIni);

M_bLe= GetPrivateProfileInt(“闩锁控制(LE)”,“启用”,1,strEasyIspIni);

M_b2Le = GetPrivateProfileInt(“闩锁控制(LE)”,“禁用”,0,strEasyIspIni);

M_bOe = GetPrivateProfileInt(“输出控制(OE)”,“启用”,0,strEasyIspIni);

M_b2Oe = GetPrivateProfileInt(“输出控制(OE)”,“禁用”,1,strEasyIspIni);

}

如果在“程序员”设置中选择了EasyISP,则程序将从EasyIsp.ini加载引脚配置信息。

如果程序目录中不存在该文件怎么办?即支持默认的下载行,此下载行是最初设计的,以解决程序的向上兼容性问题。如果在“程序员”设置中选择了Atmel ByteBlaster下载行或Altera ByteBlaster下载行,则将执行以下配置。

否则if(nProType == 2)// Atmel ByteBlaster下载行

{

M_nPinRst = PIN_SELIN; // PIN_SELIN在ParllelPort.h中定义,这是并行端口引脚的功能号

M_nPinMosi = PIN_D0;

M_nPinMiso = PIN_ACK;

M_nPinSck = PIN_STROBE;

M_nPinLe = PIN_D2; //如果没有LE,则假定引脚不起作用以进行延迟

M_bLe = 0;

M_b2Le = 0;

M_nPinOe = 0; //没有OE

M_nPinR1 = m_nPinAf = PIN_AUTO; //保留

M_nPinR2 = m_nPinIni = PIN_INIT; //保留

}

否则if(nProType == 3)// Altera ByteBlaster下载行

{

M_nPinRst = 3;

M_nPinMosi = 8;

M_nPinMiso = 11;

M_nPinSck = 2;

M_nPinLe = 14; //控制74244的LE

M_bLe = 0;

M_b2Le = 0; // LE始终设置为低电平

SetPinL(14); //将74244'LE预设为低电平优先

M_nPinOe = 0; //没有OE

M_nPinR1 = 0;

M_nPinR2 = 0; //没有保留的引脚

}

有些事情要提醒。 m_nPinOe是控制设备锁存器的并行端口的引脚号,但是74244没有OE。我应该怎么做,然后将m_nPinOe分配为0,并且并行端口没有PIN0。还有对设备LE的控制。 m_bLe表示锁存器有效时的电平,例如,LE高电平74373有效,因此m_bLe = 1

M_b2Le代表锁存器无效时的电平,因此m_b2Le = 0 of 74373;如果74373 LE需要经常打开怎么办? m_bLe = 1,m_b2Le = 1,您不解决问题吗?也有m_bOe,m_b2Oe。查看主要使用m_nPinLe的位置。

Void CParallelPro :: SetSck(BOOL bLogic)//设置SCK引脚的电平

{

如果(bLogic)

SetPinH(m_nPinSck);

其他

SePinL(m_nPinSck);

If(m_nIspSpd == 2)//如果性能设置为“最快”

{

返回;

}

否则if(m_nIspSpd == 1)//如果性能设置为“更快”

{

SetPinLogic(m_nPinLe,m_bLe); //打开闩锁

返回;

}

否则//如果性能设置为“常规”

{

SetPinLogic(m_nPinLe,m_bLe); //打开闩锁

For(int n = 0; n <= 1000; n ++)//延迟,在LE中生成脉冲宽度

{

}

SetPinLogic(m_nPinLe,m_b2Le); //关闭闩锁

}

}

此程序意味着,如果将演奏组设置为“ Normal”,则SCK上的信号将更改一次,然后将其锁存一次。如果将演奏设置为“更快”,请打开LE,但不要将其关闭。您必须问,即使LE再也没有关闭过,为什么每次都应该打开它呢?因为您可以再访问并行端口一次,所以访问并行端口会消耗一定的时间,这可以看作是很短的延迟。因此,即使该器件没有LE或74244的LE连接到GND,也可以假设一个吗?如果设置为“最快”,则无需闩锁。当性能设置为“常规”时,将有一个闩锁过程,可以在闩锁后增强抗干扰性。

以下程序可以参考“ Easy 51Pro的本质和专业”中无效的SendInstrc(BYTE nByte)的说明。原理是相同的,但是这里的程序并不像单芯片计算机那样容易获得“位”。

Void CParallelPro :: SckBytes(int nBytes)//通过下载线与设备进行通信

{

对于(int n = 0; n

{

SetSck(0);

SetMosi((OutBuf [n]&0x80)); //当SCK为低电平时,发送一位

SetSck(1);

If(GetMiso())//当SCK为高电平时,接收一位

{

InBuf [n] = In

Buf [n] | 0x80;

}

其他

{

InBuf [n] = InBuf [n]&0x7f;

}

SetSck(0);

SetMosi((OutBuf [n]&0x40));

StSck(1);

}

以上程序主要是为了控制并行端口,主要是为了您的方便。下面介绍CParlPro控制编程的主要思想。首先介绍什么是CIsPro?只是说CIsPro是“ ISP编程方法类”。它是一个纯虚拟类,仅具有函数定义而没有函数实现。这就像一张尚未填写的支票,但是当然不能兑现。

CIsPro类

{

上市:

BYTE FID; //此类支持的FID

CParallelPro * m_pParlPro; //方便调用CParallelPro中的资源

虚拟虚函数InitIsPro(CParallelPro * pParlPro);

虚拟虚空PreparePro()= 0; //在编程之前工作

虚拟无效ReadSign(BYTE * pBuf)= 0; //读取签名

虚拟虚空Erase()= 0; //擦除设备

虚拟BOOL写(BYTE数据,int nAddr)= 0; //写一个单位

虚拟字节读取(int nAddr)= 0; //读一个单元

虚拟BOOL LockBit(int nBit)= 0; //写锁定位

虚拟虚空ProOver()= 0; //编程后工作

CIsPro();

虚拟〜CIsPro();

};

此类定义了设备编程的一般操作,是否类似于串行编程器中的ProWork?从该类派生一种用于对设备进行编程的特定方法。让我们看看如何应用此CIsPro类。以AT89S51为例(因为我手上只有这个芯片)。现在该填写支票了。

//At89s51Isp.h

CAt89s51Isp类:公共CIsPro

{

上市:

CAt89s51Isp();

虚〜CAt89s51Isp();

虚拟虚函数InitIsPro(CParallelPro * pParlPro);

虚拟虚空PreparePro(); //在编程之前工作

虚拟无效ReadSign(BYTE * pBuf); //读取签名

虚拟虚空Erase(); //擦除设备

虚拟BOOL写入(BYTE数据,int nAddr); //写一个单位

虚拟BYTE读取(int nAddr); //读一个单元

虚拟BOOL LockBit(int nBit); //写锁定位

虚拟虚空ProOver(); //编程结束后工作

};

择一些出来看看最好的是什么,最好是将DataSheet上的表进行比较。

//At89s51Isp.cpp

Void CAt89s51Isp ::擦除()//擦除设备

{

M_pParlPro-> OutBuf [0] = 0xac; //根据设备手册中指定的命令协议

M_pParlPro-> OutBuf [1] = 0x80;

M_pParlPro-> SckBytes(4); //向设备发送编程命令,4字节

睡眠(500); // 500ms擦除设备

}

BOOL CAt89s51Isp ::写(BYTE数据,int nAddr)//写一个单元

{

Int nTimeOut = 0;

M_pParlPro-> OutBuf [0] = 0x40; //根据设备手册中指定的命令协议

M_pParlPro-> OutBuf [1] =((BYTE *)&nAddr)[1]; //高位地址

M_pParlPro-> OutBuf [2] =((BYTE *)&nAddr)[0]; //低位地址

M_arlPro-> OutBuf [3] =数据;

M_pParlPro-> SckBytes(4); //将编程命令发送到设备

While(Read(nAddr)!= Data)//效果:循环读取,直到读取的数字与写入的数字相同

{

NTimeOut

+;

If(nTimeOut> = 1000)//如果超时,则写入失败

返回FALSE;

}

返回TRUE;

}

BYTE CAt89s51Isp ::读取(int nAddr)//读取一个单元

{

M_pParlPro-> OutBuf [0] = 0x20; //根据设备手册中指定的命令协议

M_pParlPro-> OutBuf [1] =((BYTE *)&nAddr)[1]; //高位地址

M_pParlPro-> OutBuf [2] =((BYTE *)&nAddr)[0]; //低位地址

M_pParlPro-> SckBytes(4); //将编程命令发送到设备

返回m_pParlPro-> InBuf [3]; //该单位的数据

}

无效的CAt89s51Isp :: PreparePro()//编程前的准备

{

M_pParlPro-> SetRst(0); // RST设置为低电平

M_pParlPro-> SetMosi(0); // Mosi设置为低

M_pParlPro-> SetSck(0); // SCK设置为低

睡眠(10);

M_pParlPro-> SetRst(1); //必须在编程之前将RST设置为高

睡眠(10);

M_pParlPro-> OutBuf [0] = 0xac; //在进行任何编程操作之前,请根据ATMEL DataSheet规定在此处注意

M_pParlPro-> OutBuf [1] = 0x53; //必须先发送“编程启用”命令,此处最合适的安排

M_pParlPro-> SckBytes(4);

}

让我们发布并查看!

还有另一个功能,请不要忘记:

CAt89s51Isp :: CAt89s51Isp()

{

M_pParlPro = NULL;

FID = 0x02; //此类支持的FID

}

最后看看CParlPro如何使用CIsPro:

CParlPro具有以下内容:

CArray m_arIsp; // Isp编程方法队列

在CParlPro的构造函数中:

CParallelPro :: CParallelPro()

{

M_arIsp.Add(新的CAt89s51Isp); //将所有Isp编程方法对象添加到队列中

}

对所选设备进行编程时,用户必须首先获取设备的编程方法

CIsPro * CParallelPro :: GetIsPro(BYTE FID)//查找支持FID的“ Isp编程方法对象”

{

对于(int n = 0; n

If(m_arIsp.GetAt(n)-> FID == FID)//从队列中找出支持设备FID的编程方法

返回m_pIsPro = m_arIsp.GetAt(n); //设置当前的“ Isp编程方法对象”指针

回NULL;

}

例如,在用户发出擦除AT89S51的命令后:

无效CParallelPro ::擦除(BYTE FID)

{

If(m_bThread)//如果最后一个操作线程尚未结束

{

M_pPro->通知(PRO_INVALID);

返回;

}

If(GetIsPro(FID)== NULL)//查询是否支持FID并获取编程方法

{

M_pPro->通知(PRO_WORK_INVALID);

返回;

}

M_nCurWork = 2; //当前的操作ID

AfxBeginThread(ProWorkThread,this);

}

获得编程方法当然是要使用编程方法。 ProWorkThread线程中使用了编程方法。创建另一个线程以避免读取和编写这些编程过程。窗口界面停止响应。通过查看源代码,您将了解ProWorkThread如何使用这些编程方法。

最后总结一下扩展Easy ISP的步骤:

步骤1、2和3与“ Easy 51Pro原理和扩展”中描述的步骤相同。

4.从CIsPro派生一个类以实现该类中的所有功能。最好使用CAt89s51Isp作为模板,只需对其进行修改。还要记住这里:

CParallelPro :: CParallelPro()

{

M_arIsp.Add(新的CAt89s51Isp); //将所有Isp编程方法对象添加到队列中

M_arIsp.Add(新的Isp方法类); // <<<<<<<<<<<<<<<<<<<<<<<<<

}

5.测试您的程序,将其发布并在成功后与您共享,您可以先给我发送电子邮件。

系统原理

Easy 51Pro v2.0 Universe版

|

| ------软件

| | ------ Easy 51Pro.exe(主程序)

| | ------ IspTest.exe(下载行调试程序)

| | ------ ChipManager.exe(设备列表管理器)

|

| ------文件

| | ------简单的51Pro生产和使用说明.htm

| | ------自制Easy 51Pro串行编程器.htm

| | ------ Easy 51Pro.htm的原理和扩展

| | ------ Easy 51Pro程序员原理和Easy ISP章节的扩展.htm

| | ------并行下载line.txt的常见问题

|

| ------ Easy 51Pro串行编程器

| |

| | ------简易的51Pro电路

| | ------ E51Pro.hex(将其刻录到微控制器)

| | ------线路调试程序

| |

| | ------ SubProc Assi.exe

| | ------ SUBPROC.BIN(在调试期间将其刻录到微控制器)

| | ------ SubProc.asm

|

| ------ EasyIsp下载线

| |

| | ------ Easy Isp_2.Sch(下载线路电路)

| | ------旧版电路

| | ------ EasyIsp-1 .jpg

| | -------- v1.2版本的circuit.jpg

| | ------ v1.4版本的circuit.jpg

|

|

| ------ Easy 51Pro v2源程序(VC)

|

| ------串行编程器源程序(Keil C)

精品推荐
猜你喜欢
用户评论