用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電源
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 (73.1 KB, 下載次數: 79)
下載附件
2021-3-19 18:41 上傳
右側的多字符串發送,用于命令發送,應答。下方的發送緩沖區,用于存放要燒寫到AT89Cx中的代碼。上方的接收緩沖區,用于顯示附加RAM中的數據、顯示STC89C52R內部EEPROM中的數據,顯示從AT89Cx固件中讀出的數據。
圖8:宇宙版12V/5V/0V控制電路
圖9:編程器12V/5V控制電路,控制信號從R5端輸入。
12V~5V轉換電路.jpg (27 KB, 下載次數: 81)
下載附件
2021-3-19 18:41 上傳
電路元件清單: 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 (119.27 KB, 下載次數: 72)
下載附件
2021-3-19 18:42 上傳
比對EEPROM文件和EEPROM讀出數據,完全準確。說明:通過用戶接口下載EEPRO文件到EEPROM中,辦法可用。 關于用戶接口:上位機在用戶接口界面設置好,要寫入EEPROM的文件打開,點“下載/編程”按鈕,用戶接口會發出軟啟動命令,啟動用戶程序,進入監控程序區,自動把EEPROM文件燒寫到STC89C52RC的EEPROM里面。 要注意!通過用戶接口進入監控程序區,下載完EEPROM數據之后,程序并不會回到用戶程序區,而是留在監控程序區。要回到用戶程序區,要再次下載原先運行的程序到程序區,好在STC下載程序很方便。 AT89C5x的“片擦除”和“燒寫程序”,在“EA/VPP”引腳要加12V電壓,必須事先插入12V電源。
3、AT89C52編程原理: 圖12:AT89C5x編程電路
AT編程電路.jpg (11.97 KB, 下載次數: 80)
下載附件
2021-3-19 18:43 上傳
圖13:AT89C5x編程真值表
真值表.jpg (42.81 KB, 下載次數: 85)
下載附件
2021-3-19 18:44 上傳
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, 下載次數: 15)
2021-3-20 13:29 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
Easy_51Pro_v20.rar
(833.13 KB, 下載次數: 14)
2021-3-20 13:25 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|