RTL8139改制AT89C51编程器

全部代码下载

   想玩89C51但没有编程器于是便想自制编程器找了很多自制的资料大多都是使用89C51做控制逻辑需要有编程器才能制作电路一般也比较复杂最ez的也要30个元件再看看不需要编程器的一看我就放弃太复杂了我手头甚至连一块74LS373那样的锁存器都没有一块可用到的元件又没多少

       天无绝人之路充分利用计算机硬件软件作出了这款编程器所有的数据地址和控制信号线都需要由计算机提供我借来一块rtl8139网卡非常常见的PCI百兆网卡一块新的rtl8139C才40元如果有更是这样省了不少米引用它的EEPROM的地址线和数据线因为rtl8139的EEPROM地址线和数据线是由一个32位寄存器提供一次操作必须锁存所有的地址线数据线和控制线因此不适合于提供89C51烧写所需的编程信号线只用它来锁存地址和数据线编程需要的控制线由EPP(SPP)并口提供下面是电路原理图

rtl8139的EEPROM插座一般至种28针和32针的28针的针脚定义与27C512相同32针的与29C010相同你需要引出它的地址线和数据线A0~A7接P1.0~P1.7, A8~A11接P2.0~P2.3,Q0~Q7接P0.0~P0.7,(我是用才排线和28针集成块插座制作的插座做成连接器将其连出)EPP并口D0提供读写信号D1提供编程脉冲D2控制变成电压Q1Q2R1R2R3为编程电压电路12V电源用PC机内部电源提供测一下最好能在12.5V~13VACK(并口pin10)接P3.4反映烧写状态为了防止误操作S1为H时为擦除芯片和用ܣL时为读写电路简单相信很容易看懂印刷电路板的土我就不给出我使用的是实验板做成的样子非常丑

然后是对EPP并口和rtl8139的编程LPT1 EPP并口的数据口地之一般为0x378控制rtl8139的EEPROM的寄存器地址为卡的I/O基地址+0xD4下表为该寄存器的定义

Flash Memory Read/Write Register

(Offset 00D4h-00D7h, R/W)

/

定义

描述

31-24

R/W

D7-D0

反映数据线状态当外部高阻时为输出否则为输入

23-21

-

-

保留

20

W(只写)

CS

设置CS线

19

W

OE

设置OE线

18

W

WR

设置WR线

17

W

SWRWEn

准许软件访问flash memory:

0: 不准许通过软件访问flash memory

1: 准许通过软件访问flash memory并且在通过软件访问flash memory期间不准许访问EEPROM(我也不太懂什么意思不过似乎没什么用下面是原文)

Enable software access to flash memory:

0: Disable read/write access to flash memory via software.

1: Enable read/write access to flash memory via software and disable the EEPROM access during flash memory access via software.

16-0

W

A16-A0

设置地址线

       如果不想自己写软件部以用我编写的软件软件还不完善不支持用ܣ不支持分文式的HEX文件烧写对于89c51的4K ROM来说用不着 因为所有的编程信号都由软件提供因此为了保证信号时序的正确降低了烧此度建议在Windows2000下使用98理论上可以但尚未测试软件界面如下

软件介绍

1  在计算机打开后接好制作好的编程器注意在计算机启动过程中最好关闭编程器上的12V电源以防止误编程打开软件选择读特征字如果出现30H=1E,31H=51,32=FF说明编程器连接成功如果不对关闭打开S2或者热拔插ROM连接器不会损坏硬件的多试复Σ如果还不成功检查你编程器上的地址数据线是否有连接错误

2  如果要烧写89c51先将编程卡12V电源打开S1置为L然后选择 读bin文件烧写89C51或者读HEX文件烧写89C51烧写完会在执行目录下生成烧写结果信息.txt保通过此文件你可以判断89C51的坏块修改你的程序代码使出只块的89C51有继续使用的可能或者检查编程器的错误比如写地址0x0失败,写数据0x2,效验数据42保则很有可能说明是编程器的数据线7出了问题

3  要读取89c51S1置为L关闭12V电源选择读89c51并保存

4  要擦除89c51S1置为H打开12V电源选择擦除89c51

5  此软件完全免费开放原代码如果想自己做软件可做为参考或者改动硬件需要修改软件部随意修改软件无版权限制因为此代码造成的计算机爆炸不要找也偿医药费^_^

此编程器因为线路简单不需另外的编程器和MCU支持而且预留的控制线还有很多因此有很大的功能扩展空间只要简单改动几条控制线再在软件上稍有改就可以支持别的芯片由于篇幅问题无法为大家详细介绍该编程器的硬件和软件编程方面的原理如果你想通过本文中的技术完全自主的制作自己的编程器或者想让本文中介绍的编程器烧写更多种类的芯片并能够使用其他网卡你可以去看本文附带的软件包中提供详细的资料包括RTL8139datasheet 89C51烧录的资料与本编程器相关的PCI.和并口的硬件软件开发的资料还有HEX文件格式如果还有什次题或者好的意见可以在CSDNwww.csdn.net论坛VC硬件低版给我留言我是版主AthlonxpX86或者发贴我的邮件E-mail: yds_086@163.com

版权所有:单片机教程网 2007
Email:erd51@163.com qq:58565254
2019ֻ߹ۿ