找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 4078|回復(fù): 5
收起左側(cè)

AT89C5x單片機(jī)編程器制作

[復(fù)制鏈接]
ID:34607 發(fā)表于 2021-3-19 13:30 | 顯示全部樓層 |閱讀模式
用STC89C52RC制作的AT89C5x編程器,目前可以燒寫(xiě)3*1024字節(jié),燒好的芯片上機(jī)運(yùn)行工作正常。
                  1、編程器介紹
手頭上有兩塊AT89C52,閑來(lái)無(wú)事,用STC89C52RC制作了一個(gè)AT89C5x編程器。
電路板用的是老早雙龍公司NICE-SST-51學(xué)習(xí)板,99年12.20生產(chǎn),用于SST89F54/58/59燒寫(xiě)。
我把它改造成燒寫(xiě)AT89C52的電路,增加了VPP電壓轉(zhuǎn)換電路,根據(jù)編程要求,切換5V和12V。
12V電壓源,用早先電視機(jī)頂盒12V電源。2:電路板正面
圖1:編程器外形:
圖3:電路板背面

圖4:USB-串口TTL線(xiàn)

圖5:12V電源



圖6:USB延長(zhǎng)線(xiàn)

STC89C52RC編程程序參考了許多網(wǎng)上資料,AT89C52有不少年頭了,編程資料難找。
         STC89C52RC編程程序充分利用了STC89C52RC上的資源,STC89C52RC上有1024字節(jié)的附加RAM,用它作為編程數(shù)據(jù)暫存,STC89C52RC上有4K字節(jié)的EEPROM,用它作為編程數(shù)據(jù)保存區(qū)。
通過(guò)實(shí)際使用,用它燒寫(xiě)的程序可以正常運(yùn)行。
我找到的資料有:Easy 51Pro制作資料、51prog編程軟件(PC端)、“PGM89軟件完美漢化版”。AT89C52資料,其中Easy 51Pro制作資料內(nèi)容詳盡,是長(zhǎng)沙理工大學(xué) 電氣與信息工程學(xué)院,聶忠強(qiáng),2003.10.28制作編寫(xiě)的,還是WIN98年代,PC端軟件用VC6編寫(xiě)的,51芯片程序用的是KIEL環(huán)境,可以參考。
         我制作的AT89C5x編程器仍然用PC機(jī)作為上位機(jī),通過(guò)串行口與下位機(jī)的STC89C52RC通信,應(yīng)答、發(fā)送和接收命令、傳送數(shù)據(jù)都是通過(guò)串口。
        上位機(jī)的界面,我沒(méi)有采用Easy 51Pro、51prog、或者“PGM89軟件完美漢化版”。與這些界面適配,難度實(shí)在太大。我采用的是STC公司的編程軟件,其中的串口助手。如下圖:
圖7:編程器PC端界面
串口助手.jpg


右側(cè)的多字符串發(fā)送,用于命令發(fā)送,應(yīng)答。下方的發(fā)送緩沖區(qū),用于存放要燒寫(xiě)到AT89Cx中的代碼。上方的接收緩沖區(qū),用于顯示附加RAM中的數(shù)據(jù)、顯示STC89C52R內(nèi)部EEPROM中的數(shù)據(jù),顯示從AT89Cx固件中讀出的數(shù)據(jù)。

圖8:宇宙版12V/5V/0V控制電路


圖9:編程器12V/5V控制電路,控制信號(hào)從R5端輸入。
12V~5V轉(zhuǎn)換電路.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控制電路外,對(duì)比“圖7:宇宙版編程器電路圖”,編程器實(shí)際接線(xiàn)如下:
1、  數(shù)據(jù)線(xiàn)P0一一對(duì)接;
2、  地址線(xiàn)P1、P20~P24一一對(duì)接;
3、  模式控制線(xiàn):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、編程程序綜述
         從串口助手左側(cè)的“多字符串發(fā)送”,從上到下有“0F”、“00”、“01”、“02”、“03”、“04”、“05”、“06”、“07”、“08”,共11條字串,說(shuō)是字串,實(shí)際是單字節(jié)指令,
“0F”、是應(yīng)答指令,發(fā)送“0F”,STC89C回應(yīng)“F0”;
“00”、 是讀AT89特征字指令, STC89C回應(yīng)“00”,并把讀出的AT89特征字回傳;
“01”、 是讀AT89固件指令,即讀出AT89的內(nèi)部程序,并把讀出的AT89固件回傳;
“02”、 是擦除AT89固件指令,即擦除AT89的內(nèi)部程序,叫“片擦除”;
“03”、 是讀STC89C EEPROM指令,讀3*1024個(gè)字節(jié),并把讀出的數(shù)據(jù)回傳;
“04”、 是接收串口發(fā)來(lái)的1024個(gè)字節(jié),并保存在STC89C的附加RAM中;
“05”、 是回傳保存在STC89C的附加RAM中數(shù)據(jù)指令;
“06”、 是把保存在STC89C的附加RAM中數(shù)據(jù)寫(xiě)到STC89C的EEPROM中;
“07”、 是STC89C的EEPROM扇區(qū)擦除,一次擦除叁個(gè)扇區(qū)。
“08”、 是燒寫(xiě)AT89固件指令;
“09”、 是通過(guò)用戶(hù)接口,把EEPROM文件寫(xiě)入STC89C的EEPROM;
特征字說(shuō)明:
特征字(1E 52 FF):1E--ATMEL公司造;52--AT89C52;FF--12V編程電壓;
特征字(1E 51 FF):1E--ATMEL公司造;51--AT89C51;FF--12V編程電壓;

圖11:用戶(hù)接口下載EEPROM文件
STC用戶(hù)接口.jpg


比對(duì)EEPROM文件和EEPROM讀出數(shù)據(jù),完全準(zhǔn)確。說(shuō)明:通過(guò)用戶(hù)接口下載EEPRO文件到EEPROM中,辦法可用。
關(guān)于用戶(hù)接口:上位機(jī)在用戶(hù)接口界面設(shè)置好,要寫(xiě)入EEPROM的文件打開(kāi),點(diǎn)“下載/編程”按鈕,用戶(hù)接口會(huì)發(fā)出軟啟動(dòng)命令,啟動(dòng)用戶(hù)程序,進(jìn)入監(jiān)控程序區(qū),自動(dòng)把EEPROM文件燒寫(xiě)到STC89C52RC的EEPROM里面。
要注意!通過(guò)用戶(hù)接口進(jìn)入監(jiān)控程序區(qū),下載完EEPROM數(shù)據(jù)之后,程序并不會(huì)回到用戶(hù)程序區(qū),而是留在監(jiān)控程序區(qū)。要回到用戶(hù)程序區(qū),要再次下載原先運(yùn)行的程序到程序區(qū),好在STC下載程序很方便。
AT89C5x的“片擦除”和“燒寫(xiě)程序”,在“EA/VPP”引腳要加12V電壓,必須事先插入12V電源。


3、AT89C52編程原理:
圖12:AT89C5x編程電路
AT編程電路.jpg


圖13:AT89C5x編程真值表
真值表.jpg



A: 由其ROM的容量可知其地址線(xiàn)需要13條,硬件連接如圖11所示,整個(gè)P1口和P2口的低5位為編程地址輸入線(xiàn), P0口為數(shù)據(jù)輸入端,P2.6、P2.7、P3.6、P3.7為編程模式.其電平組合見(jiàn)圖12:(表9.).
B: 以下是編程過(guò)程:
1. 將RST接高電平,PSEN接低電平.
2. 擦除芯片,每次重新編程前都要首先把原來(lái)ROM里面的程序擦除掉,將編程模式組合為擦除模式,送ALE\VPP端一個(gè)10ms寬度的低電平脈沖即可.
3. 在地址線(xiàn)上輸入所需編程的存儲(chǔ)單元的地址.
4. 將正確的控制信號(hào)組合為有效(寫(xiě)模式).
5. 在數(shù)據(jù)線(xiàn)上輸入相應(yīng)的字節(jié).
6. 將EA升至12V.
7. 給ALE\PROG一個(gè)50us的低電平脈沖.
8. 效驗(yàn)數(shù)據(jù),將控制信號(hào)組合為讀模式,數(shù)據(jù)即出現(xiàn)在P0口.
9. 改變地址和數(shù)據(jù),重復(fù)步驟3~8步,直至程序?qū)懲?

以上資料51hei下載地址:
at89c52編程.docx (15.06 MB, 下載次數(shù): 15)
Easy_51Pro_v20.rar (833.13 KB, 下載次數(shù): 14)

評(píng)分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:328014 發(fā)表于 2021-3-20 16:08 | 顯示全部樓層
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

ID:897089 發(fā)表于 2021-3-27 13:09 | 顯示全部樓層
我好像也有片at89c52,不知道怎么燒錄,看看能不能仿制一個(gè)
回復(fù)

使用道具 舉報(bào)

ID:517951 發(fā)表于 2021-3-31 11:50 | 顯示全部樓層
這個(gè)51串口電路板和 Easy 51pro V2.0 版的PC機(jī)軟件我都有,燒寫(xiě)AT89C52是一直正常,就是AT89C55不行,下載燒寫(xiě)2/3進(jìn)度處會(huì)報(bào)錯(cuò),不知道什么原因。
回復(fù)

使用道具 舉報(bào)

ID:34607 發(fā)表于 2021-4-8 11:18 | 顯示全部樓層
tsfrhym 發(fā)表于 2021-3-27 13:09
我好像也有片at89c52,不知道怎么燒錄,看看能不能仿制一個(gè)

搞清編程原理之后,參考Easy 51宇宙版,作一個(gè)PC與單片機(jī)接口,就可以調(diào)試。
回復(fù)

使用道具 舉報(bào)

ID:876226 發(fā)表于 2021-4-12 16:04 | 顯示全部樓層
好帖,要承認(rèn)其作品的強(qiáng)大,值得試著研究
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表