笔者参考国外资料,实际设计制作了一款简单的AT89C51/52/55单片机编程器。由于单片机编程时序不同,这一款编程器仅仅支持ATMEL公司的AT89C51、AT89C52、 AT89C55芯片,不支持华邦或飞利浦兼容芯片。
硬件原理

图1是它的硬件电路图。VT2、VT4以及周围的几个元件构成了电平转换电路,这样节省了1片MAX 232芯片。在要求不高的场合,这个电路在单片机通信中可以取代MAX232。
VT1、R2、R4、VD3这4个元件为编程器提供烧写用的12V电压,其中,R4,R2构成了分压电路。平时,监控芯片89C51(P3.3)输出高电平,VT1导通,R2(1k)将VD2(12V)拉低,此时VD2电压由R4、R2 分压,为3~5V。当写程序时,监控芯片输出低电平,VT1截止,VD2(12V)直接送到被烧芯片的,从而提供烧写电压。该电路经过本人数百台的实验证明非常稳定可靠。
电源变压器要求供给15V的交流电源,如常见的3~12V直流可调电源。注意其空载电压不要低于13V,滤波应好一些,否则可能出现编程不可靠的情况。
监控芯片用IC座安装,将监控程序EZ51.HEX烧写入监控芯片后插入,方便调试。组装好后通电,用万用表检查:
1. 7805输出5V,VD3 电源指示灯亮(图中笔者用的是78L05)。
2. VD2电压为3~5V。
3. 将VT1的基极对地短接,VD3电压为12V。
4.IC1(AT89C51)的电压分别为2.2V、 2.1V,此电压可作为电路是否起振的依据。
连接电缆用9对9一端阴一端阳的串口线。 注意市场上有些串口线两端的②、③脚是交叉的,最好用万用表检查一下是否一一对应。如果没有串口线,也可拆一个老式的串口鼠标自制,只要把两端的②、③、⑤脚连接好即可。本电路对元件没有特殊要求, 电阻用1/8W普通碳膜,三极管用的是2SA1015、2SC1815电阻,实际上很多小功率管都可以, 如9014、9015,只是需要注意它们的管脚排列区别。二极管1N4148可以用1N4004替代。另外12V稳压管最好挑选一下,精度要求5%以内。有条件的话应当测试一下11.0592M晶振,市场零售的晶振有些不起振。
此编程器的制作材料见文后表格。
印制板设计

图2是笔者设计的双面板小型PCB线路图,元件数值已经标在板上了,直接按照板上的标注焊接即可。注意监控芯片在反面贴片安装。

PCB板的实物照片见图3。注意中间一排6个白黑相间的半圆圆圈,是4个10μF/50V电解电容和两个发光管的位置。这几个零件都是长脚为正,短脚为负,具体到电路板上则白色的为负极,黑色的为正极了。
电路中R18为10k×8的一个排阻,其位置在一排电容和卡座的中间,它的公共脚插在向边界的方向。
监控芯片的①脚小箭头所指的位置有一个1PIN的字样,千万别插反了。
安装步骤
1.安装电阻,共11个。元件插到位后焊接、剪脚。
2.安装二极管,3个1N4148 和1个12V稳压管VD2。请仔细看管子的表面,稳压管印有12V字样,千万别弄错了。二极管是有极性的,二极管的黑头方向插向PCB板上印有白色的一边就对了,元件插到位后焊接、剪脚。
3.安装2个104和2个30pF电容、11.0592MHz晶体, 这些元件都没有方向性。
4.插入三极管、电解电容、发光管。注意这些东西都是有极性的,电解电容和发光管都是负极向下。三极管(2个2SC1815,一个2SA1015)以及一个78L05的稳压IC的安装方向在PCB上可以看到,管子半圆的方向就是PCB半圆圈的方向。
5.插入排阻,排阻有一个白点的一端是公共端,其位置在靠近PCB边缘的一端。
6.插入监控芯片的插座。
7.插入烧写卡座。由于它和监控芯片是面对面的, 因此必须先焊接监控芯片插座,最后焊烧写卡座。
8.最后检查一下电路板的各处有没有插错、短路的,再按照前面的调试方法进行调试。
编程器的背面如图4所示。
软件使用
这款编程器的烧写软件EZ31.EXE界面很简单,全兼容于Windows9X~2000,仅有几个按钮,分别为打开文件(SEND)、读芯片(READ)、 退出(EXIT)、 COM选择、加密(LOCK CODE)以及校验(FAST VERILY)。
连接好编程器的电源以及串口线,并插入烧写的芯片,点击COM1或COM2(以实际连接为准,本例中笔者连接的是COM2),窗口右下角将显示89C51Found。 此时应当看到信号指示灯每2秒亮一下,表示联机工作。
选择一个需要烧写的hex文件开始烧写,如果一切正常,显示的界面如图5所示。
该编程器的原理图、PCB文件、编程软件EZ31.EXE、 监控芯片文件EZ51.HEX和升级版驱动程序均可在本期配刊光盘的“本期程序”文件夹里找到,也可在51测试网www.51c51.com下载。
(石学军)
