找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3026|回复: 5
收起左侧

AT89C5x单片机编程器制作

[复制链接]
ID:34607 发表于 2021-3-19 13:30 | 显示全部楼层 |阅读模式
用STC89C52RC制作的AT89C5x编程器,目前可以烧写3*1024字节,烧好的芯片上机运行工作正常。
                  1、编程器介绍
手头上有两块AT89C52,闲来无事,用STC89C52RC制作了一个AT89C5x编程器。
电路板用的是老早双龙公司NICE-SST-51学习板,99年12.20生产,用于SST89F54/58/59烧写。
我把它改造成烧写AT89C52的电路,增加了VPP电压转换电路,根据编程要求,切换5V和12V。
12V电压源,用早先电视机顶盒12V电源。2:电路板正面
图1:编程器外形:
图3:电路板背面

图4:USB-串口TTL线

图5:12V电源



图6:USB延长线

STC89C52RC编程程序参考了许多网上资料,AT89C52有不少年头了,编程资料难找。
         STC89C52RC编程程序充分利用了STC89C52RC上的资源,STC89C52RC上有1024字节的附加RAM,用它作为编程数据暂存,STC89C52RC上有4K字节的EEPROM,用它作为编程数据保存区。
通过实际使用,用它烧写的程序可以正常运行。
我找到的资料有:Easy 51Pro制作资料、51prog编程软件(PC端)、“PGM89软件完美汉化版”。AT89C52资料,其中Easy 51Pro制作资料内容详尽,是长沙理工大学 电气与信息工程学院,聂忠强,2003.10.28制作编写的,还是WIN98年代,PC端软件用VC6编写的,51芯片程序用的是KIEL环境,可以参考。
         我制作的AT89C5x编程器仍然用PC机作为上位机,通过串行口与下位机的STC89C52RC通信,应答、发送和接收命令、传送数据都是通过串口。
        上位机的界面,我没有采用Easy 51Pro、51prog、或者“PGM89软件完美汉化版”。与这些界面适配,难度实在太大。我采用的是STC公司的编程软件,其中的串口助手。如下图:
图7:编程器PC端界面
串口助手.jpg


右侧的多字符串发送,用于命令发送,应答。下方的发送缓冲区,用于存放要烧写到AT89Cx中的代码。上方的接收缓冲区,用于显示附加RAM中的数据、显示STC89C52R内部EEPROM中的数据,显示从AT89Cx固件中读出的数据。

图8:宇宙版12V/5V/0V控制电路


图9:编程器12V/5V控制电路,控制信号从R5端输入。
12V~5V转换电路.jpg


电路元件清单:
D--1N4148;
Q1--BD139;
Q3—9012;
R5—4.3K
R6—10K;
R8—1.5K;
R9—10K;
R4、Q2、R7不用;


除上述12V/5V/0V控制电路改为12V/5V控制电路外,对比“图7:宇宙版编程器电路图”,编程器实际接线如下:
1、  数据线P0一一对接;
2、  地址线P1、P20~P24一一对接;
3、  模式控制线:AP37—BP37;AP36—BP36;AP35—BP27;AP34—BP26;
4、  EA/VPP接12V/5V控制输出;
5、  ALE/PROG接AP32;
6、  PSEN接地;
7、  RST接5V;
8、  AXTAL2接BXTAL1;
注:1、用A表示STC89C52RC引脚,B表示AT89C52引脚。
注:2、上述4~7表示AT89C52引脚。
                  2、编程程序综述
         从串口助手左侧的“多字符串发送”,从上到下有“0F”、“00”、“01”、“02”、“03”、“04”、“05”、“06”、“07”、“08”,共11条字串,说是字串,实际是单字节指令,
“0F”、是应答指令,发送“0F”,STC89C回应“F0”;
“00”、 是读AT89特征字指令, STC89C回应“00”,并把读出的AT89特征字回传;
“01”、 是读AT89固件指令,即读出AT89的内部程序,并把读出的AT89固件回传;
“02”、 是擦除AT89固件指令,即擦除AT89的内部程序,叫“片擦除”;
“03”、 是读STC89C EEPROM指令,读3*1024个字节,并把读出的数据回传;
“04”、 是接收串口发来的1024个字节,并保存在STC89C的附加RAM中;
“05”、 是回传保存在STC89C的附加RAM中数据指令;
“06”、 是把保存在STC89C的附加RAM中数据写到STC89C的EEPROM中;
“07”、 是STC89C的EEPROM扇区擦除,一次擦除叁个扇区。
“08”、 是烧写AT89固件指令;
“09”、 是通过用户接口,把EEPROM文件写入STC89C的EEPROM;
特征字说明:
特征字(1E 52 FF):1E--ATMEL公司造;52--AT89C52;FF--12V编程电压;
特征字(1E 51 FF):1E--ATMEL公司造;51--AT89C51;FF--12V编程电压;

图11:用户接口下载EEPROM文件
STC用户接口.jpg


比对EEPROM文件和EEPROM读出数据,完全准确。说明:通过用户接口下载EEPRO文件到EEPROM中,办法可用。
关于用户接口:上位机在用户接口界面设置好,要写入EEPROM的文件打开,点“下载/编程”按钮,用户接口会发出软启动命令,启动用户程序,进入监控程序区,自动把EEPROM文件烧写到STC89C52RC的EEPROM里面。
要注意!通过用户接口进入监控程序区,下载完EEPROM数据之后,程序并不会回到用户程序区,而是留在监控程序区。要回到用户程序区,要再次下载原先运行的程序到程序区,好在STC下载程序很方便。
AT89C5x的“片擦除”和“烧写程序”,在“EA/VPP”引脚要加12V电压,必须事先插入12V电源。


3、AT89C52编程原理:
图12:AT89C5x编程电路
AT编程电路.jpg


图13:AT89C5x编程真值表
真值表.jpg



A: 由其ROM的容量可知其地址线需要13条,硬件连接如图11所示,整个P1口和P2口的低5位为编程地址输入线, P0口为数据输入端,P2.6、P2.7、P3.6、P3.7为编程模式.其电平组合见图12:(表9.).
B: 以下是编程过程:
1. 将RST接高电平,PSEN接低电平.
2. 擦除芯片,每次重新编程前都要首先把原来ROM里面的程序擦除掉,将编程模式组合为擦除模式,送ALE\VPP端一个10ms宽度的低电平脉冲即可.
3. 在地址线上输入所需编程的存储单元的地址.
4. 将正确的控制信号组合为有效(写模式).
5. 在数据线上输入相应的字节.
6. 将EA升至12V.
7. 给ALE\PROG一个50us的低电平脉冲.
8. 效验数据,将控制信号组合为读模式,数据即出现在P0口.
9. 改变地址和数据,重复步骤3~8步,直至程序写完.

以上资料51hei下载地址:
at89c52编程.docx (15.06 MB, 下载次数: 14)

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:328014 发表于 2021-3-20 16:08 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:897089 发表于 2021-3-27 13:09 | 显示全部楼层
我好像也有片at89c52,不知道怎么烧录,看看能不能仿制一个
回复

使用道具 举报

ID:517951 发表于 2021-3-31 11:50 | 显示全部楼层
这个51串口电路板和 Easy 51pro V2.0 版的PC机软件我都有,烧写AT89C52是一直正常,就是AT89C55不行,下载烧写2/3进度处会报错,不知道什么原因。
回复

使用道具 举报

ID:34607 发表于 2021-4-8 11:18 | 显示全部楼层
tsfrhym 发表于 2021-3-27 13:09
我好像也有片at89c52,不知道怎么烧录,看看能不能仿制一个

搞清编程原理之后,参考Easy 51宇宙版,作一个PC与单片机接口,就可以调试。
回复

使用道具 举报

ID:876226 发表于 2021-4-12 16:04 | 显示全部楼层
好帖,要承认其作品的强大,值得试着研究
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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