用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電源
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端界面
右側(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端輸入。
電路元件清單: 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文件
比對(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編程電路
圖13:AT89C5x編程真值表
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)
2021-3-20 13:29 上傳
點(diǎn)擊文件名下載附件
Easy_51Pro_v20.rar
(833.13 KB, 下載次數(shù): 14)
2021-3-20 13:25 上傳
點(diǎn)擊文件名下載附件
|