DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5763|回复: 5
打印 上一主题 下一主题

EASY51PRO源码小析

[复制链接]
跳转到指定楼层
楼主
发表于 2011-4-15 17:02:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Easy51Pro是由聂忠强设计的一款优秀的单片机编程器,而且作者早就无私地公开该程序的源代码,在下不才,抱着学习的心态读一读,若有不妥之处,还请指正。
在分析之前,我们首先要知道究竟编程器是如何工作的?也就是说,例如,对一片AT89C52来说,我们怎样才能把我们的程序烧进芯片里呢?这个问题可是做编程器的重中之重,其实只要我们打开Atmel的网站找一下,就可以找到89C52的DATASHEET,好可惜是英文的,英语不好的朋友可以找一下中文版的,只是不是每一个芯片都有中文资料的,所以学好英语还是有好处的啦。
从DATASHEET中我们可以知道,AT89C52的编程方法:
1,在地址线上加上要编程单元在地址信号(图9,)
2,在数据线上加上要写入的数据字节(图9)
3,激活相应的控制信号(看表格示)
4,在高电压编程方式时,将EA/VPP端加上+12V编程电压(看表格示)
5,每对Flash存储阵列写一个字节或每写入一个程序加密位,加上一个ALE/PROG编程脉冲。每个字节写入周期是自身定时的,通常约为1.5ms。重复1-5步,改变编程单元的地址和写入的数据,直到全部文件编程结束


对于并行编程器来说,它们的作用就是完成上面的5步而已。现在我们来看文件AT89C51PRO.C其中一个擦除函数(命令)
void Erase00()//擦除器件
{
InitPro00();
//根据器件的DataSheet,设置相应的编程控制信号
P2_6=1;
P2_7=0;
P3_6=0;
P3_7=0;
Delay_ms(1);
SetVpp12V();//将EA/VPP端加上+12V编程电压
Delay_ms(1);
P3_2=0;
Delay_ms(10);
P3_2=1;
Delay_ms(1);
ProOver00();
}
看完再对比一下编程真值表的第3行,Chip Eraser,呵呵,对应着呢,而且,整个的AT89C51PRO.C文件就是对89C51/52的所有读,擦,写等操作,同样的,另外两个AT89C2051PRO.C和AT89S51PRO.C也是同样对其所对应的芯片的一系列操作,但你应该注意到,对89S51/52等具有ISP功能的单片机,该编程器是用ISP的方式来编程,当然你也可以自行修改为用并行方式编程。
到现在你是否会奇怪,程序是如何调用不同的子程序对不同型号的芯片进行操作呢?答案可以看主程序包含的文件E51PRO.H一个结构
struct _prowork//定义编程器的一般操作,具体器件的编程器实现下列函数
{
void (*fpInitPro)();//编程前的准备工作
void (*fpReadSign)();//读特征字
void (*fpErase)();//擦除器件
BOOL (*fpWrite)(BYTE);//写器件
BYTE (*fpRead)();//读器件
void (*fpLock)();//写锁定位
void (*fpProOver)();//编程结束后的工作
};
typedef struct _prowork ProWork;
ProWork
pw;
再看看AT89C51PRO.C中的PreparePro00()函数里面搞了些什么?
void PreparePro00()
//
设置pw中的函数指针,让主程序可以调用上面的函数
{

pw.fpInitPro=InitPro00;


pw.fpReadSign=ReadSign00;

pw.fpErase=Erase00;

pw.fpWrite=Write00;

pw.fpRead=Read00;

pw.fpLock=Lock00;

pw.fpProOver=ProOver00;
}
类似地,我们也能在AT89C2051PRO.C和AT89S51PRO.C中找到相似的函数。
到这里,你接下来要做的事,就是好好读一下主程序E51P.C了
最后若各位有什么见解或问题的话,欢迎一起探讨
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏2 分享分享 支持支持 反对反对
沙发
发表于 2017-12-25 15:08:28 | 只看该作者
细节 都讲到了,版主 耐心。
板凳
发表于 2018-8-13 18:46:49 | 只看该作者
感谢分享, 感谢分享
地板
发表于 2021-8-13 06:55:30 | 只看该作者
这个每次看看都有收获,感谢楼主
5#
发表于 2021-8-17 09:21:32 | 只看该作者
好帖不能沉
6#
发表于 2023-11-30 11:40:03 | 只看该作者
谢谢楼主经验分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-23 19:02 , 耗时 0.091188 秒, 20 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表