RTL8139改制AT89C51編程器

全部(bu)代碼(ma)下載(zai)

   想玩89C51,但(dan)沒有編程器,于(yu)是便想自制編程器,找了很多自制的資料,大多都是使用89C51做控制邏(luo)輯,需(xu)要有編程器才能制作,電路(lu)一般(ban)也比(bi)較復雜(最ez的也要30個元件),再看看不需(xu)要編程器的,一看ci)揖頭fang)棄,太復雜了,我(wo)手頭甚(shen)至連(lian)一塊74LS373那樣(yang)的鎖存器都沒有一塊,可用到的元件又沒多少。

       天無絕人之路(lu),充(chong)分利用計算機硬件軟件,作出了這款編程器,所有的數據地址(zhi)和控制信號線都需(xu)要由(you)計算機提供,我(wo)借來一塊rtl8139網(wang)卡(非常常見的PCI百兆網(wang)卡,一塊新(xin)的rtl8139C才40元,如果有,更是這樣(yang)省了不少米(mi))引用它的EEPROM的地址(zhi)線和數據線,因為rtl8139的EEPROM地址(zhi)線和數據線是由(you)一個32位寄存器提供,一次(ci)操作必須(xu)鎖存所有的地址(zhi)線數據線和控制線,因此不適(shi)合于(yu)提供89C51燒寫(xie)所需(xu)的編程信號線,只用它來鎖存地址(zhi)和數據線,編程需(xu)要的控制線由(you)EPP(SPP)並口提供,下面是電路(lu)原(yuan)理圖。

rtl8139的EEPROM插(cha)座(zuo)一般(ban)分兩種,28針和32針的,28針的針腳定義(yi)與27C512相同,32針的與29C010相同,你需(xu)要引出它的地址(zhi)線和數據線A0~A7接P1.0~P1.7, A8~A11接P2.0~P2.3,Q0~Q7接P0.0~P0.7,(我(wo)是用硬盤排線和28針集成塊插(cha)座(zuo)制作的插(cha)座(zuo)做成連(lian)接器將其連(lian)出)EPP並口D0提供讀寫(xie)信號,D1提供編程脈沖,D2控制變成電壓,Q1,Q2,R1,R2,R3為編程電壓電路(lu),12V電源用PC機內(na)部(bu)電源提供(測一下最好能在(zai)12.5V~13V)ACK(並口pin10)接P3.4,反映燒寫(xie)狀態,為了防止誤操作,S1為H時(shi)為擦除芯片和加密(mi),L時(shi)為讀寫(xie),電路(lu)簡(jian)單,相信很容易看懂,印刷電路(lu)板的土我(wo)就不給出,我(wo)使用的是實驗板做成的,樣(yang)子(zi)非常丑。

然後是對EPP並口和rtl8139的編程。LPT1 EPP並口的數據口地之一般(ban)為0x378,控制rtl8139的EEPROM的寄存器地址(zhi)為卡的I/O基地址(zhi)+0xD4,下表為該寄存器的定義(yi)

Flash Memory Read/Write Register

(Offset 00D4h-00D7h, R/W)

/寫(xie)

定義(yi)

描(miao)述

31-24

R/W

D7-D0

反映數據線狀態,當外部(bu)高(gao)阻時(shi)為輸出,否則(ze)為輸入

23-21

-

-

保留

20

W(只寫(xie))

CS

設(she)置CS線

19

W

OE

設(she)置OE線

18

W

WR

設(she)置WR線

17

W

SWRWEn

準(zhun)許(xu)軟件訪問flash memory:

0: 不準(zhun)許(xu)通過軟件訪問flash memory

1: 準(zhun)許(xu)通過軟件訪問flash memory並且在(zai)通過軟件訪問flash memory期間不準(zhun)許(xu)訪問EEPROM(我(wo)也不太懂什麼意思,不過似(si)乎沒什麼用,下面是原(yuan)文)

Enable software access to flash memory:

0: Disable read/write access to flash memory via software.

1: Enable read/write access to flash memory via software and disable the EEPROM access during flash memory access via software.

16-0

W

A16-A0

設(she)置地址(zhi)線

       如果不想自己寫(xie)軟件,也bu)梢雜夢wo)編寫(xie)的軟件,軟件還不完善,不支持(chi)加密(mi),不支持(chi)zhi)佷文Jshi)的HEX文件燒寫(xie)(對于(yu)89c51的4K ROM來說用不著 ),因為所有的編程信號都由(you)軟件提供,因此為了保證信號時(shi)序的正(zheng)確,降低(di)了燒寫(xie)速度,建議在(zai)Windows2000下使用(98理論上可以,但(dan)尚未測試),軟件界面如下︰

軟件介紹︰

1.  在(zai)計算機打開後接好制作好的編程器,注意在(zai)計算機啟動過程中最好關閉(bi)編程器上的12V電源,以防止誤編程,打開軟件,選擇讀特征字,如果出現30H=1E,31H=51,32=FF說明編程器連(lian)接成功,如果不對,關閉(bi)打開S2,或者熱拔插(cha)ROM連(lian)接器(不會(hui)損壞硬件的),多試幾(ji)次(ci),如果還不成功,檢查(cha)你編程器上的地址(zhi)數據線是否有連(lian)接錯誤。

2.  如果要燒寫(xie)89c51,先將編程卡12V電源打開,S1置為L,然後選擇 讀bin文件燒寫(xie)89C51或者讀HEX文件燒寫(xie)89C51,燒寫(xie)完會(hui)在(zai)執行目錄下生成“燒寫(xie)結果信息.txt”,通過此文件,你可以判(pan)斷89C51的壞塊,修改你的程序代碼(ma)使出現壞塊的89C51有繼續(xu)使用的可能,或者檢查(cha)編程器的錯誤,比(bi)如“寫(xie)地址(zhi)0x0失敗(bai),寫(xie)數據0x2,效驗數據42”,則(ze)很有可能說明是編程器的數據線7出了問題(ti)。

3.  要讀取89c51,S1置為L,關閉(bi)12V電源,選擇讀89c51並保存。

4.  要擦除89c51,S1置為H,打開12V電源,選擇擦除89c51

5.  此軟件完全免(mian)費(fei)開放(fang)原(yuan)代碼(ma),如果想自己做軟件,可做為參考(kao),或者改動硬件需(xu)要修改軟件,也bu)傷嬉廡薷娜砑 薨嬡ㄏ拗啤#ㄒ蛭 舜ma)造(zao)成的計算機爆(bao)炸(zha),不要找我(wo)補(bu)償醫藥(yao)費(fei)!^_^)

此編程器因為線路(lu)簡(jian)單,不需(xu)另外的編程器和MCU支持(chi),而且預留的控制線還有很多,因此有很大的功能擴展(zhan)空間,只要簡(jian)單改動幾(ji)條控制線,再在(zai)軟件上稍(shao)加修改,就可以支持(chi)別(bie)的芯片。由(you)于(yu)篇(pian)幅問題(ti),無法為大家詳細介紹該編程器的硬件和軟件編程方面的原(yuan)理,如果你想通過本文中的技(ji)術(shu)完全自主的制作自己的編程器或者想讓本文中介紹的編程器燒寫(xie)更多種類的芯片並能夠使用其他網(wang)卡,你可以去看本文附帶(dai)的軟件包中提供詳細的資料,包括RTL8139datasheet 89C51燒錄的資料,與本編程器相關的PCI.和並口的硬件軟件開發的資料,還有HEX文件格(ge)式(shi),如果還有什麼ci)侍ti)或者好的意見,可以在(zai)CSDN(www.csdn.net)論壇VC硬件系di)tong)版給我(wo)留言(yan)(我(wo)是版主AthlonxpX86),或者發貼(tie),我(wo)的郵件E-mail: yds_086@163.com

版權所有:單片機教程網(wang) 2007
Email:erd51@163.com qq:58565254
手机快三官网 | 下一页