這是89S系列的燒錄程式
之前我都是用mosquito520寫的programmer
在用了一陣子之後
發覺m大的programmer寫入的速度稍嫌不足。
而在昨天竟然寫好程式下載後沒有辦法執行,
找了很久的BUG之後才發現原來m大的程式沒有辦法燒錄超過256Bytes的程式。
當下就想說自己也來寫一個應該也不錯。
##CONTINUE##
寫好後發現程式寫入速度增快很多,目前也沒發現什麼BUG。
目前能燒入4KByte的程式碼,剩下的等下次改版吧!!反正Keil只能compile 2k的程式
應該是夠用了。
現在可以燒錄64KBytes的程式碼了。
使用方法很簡單,只要照著程式上的步驟一步一步照著做就好了。
這是利用RS232的溝通腳位(DTR、RTS、CTS、DSR)進行SPI通訊傳輸,所以速度沒有其他ISP的MCU這麼快。
特色
1.介面簡潔!!
2.快速燒錄,page mode跟byte mode混合使用
燒錄到現在還沒有出錯過,所以我沒有意願要寫檢查程式碼的功能。
支援的IC有
89S51/98S52/89S53/89S1051/89S2051/89S4051
按這裡下載Mahdi's Programmer最新版本
這是陽春的版本,如果需要更強大的版本,請下載Mahdi's Digital Studio(快寫好了@@")。
提供記憶體檢視、指令程式化、HEX編輯、反編譯等功能。
線路圖可以參考
http://www.ourchip.com/NZILIAO/Other/89S_ISP/index.htm
線路圖目前是參考上面的網站,利用輸出產生脈波和資料串列,輸入讀取資料。
(這種方法不能用PL-2303來USB一下,速度不是普通的慢!!!)
改天再來個改版
目前有一個想法是CLK在實驗版上由震盪電路(LMC555...)產生,同時傳入MCU和傳回電腦,而電腦轉換資料往前半個相位,這樣就能少一隻輸出腳位而可以連接Reset,充分利用所有的腳位,不過工程太浩大,還要改硬體,目前沒有這個體力可以去研究,再等等吧.....
心得是
VB和Keil C左寫寫右寫寫的感覺還真不好受= ="
之前我都是用mosquito520寫的programmer
在用了一陣子之後
發覺m大的programmer寫入的速度稍嫌不足。
而在昨天竟然寫好程式下載後沒有辦法執行,
找了很久的BUG之後才發現原來m大的程式沒有辦法燒錄超過256Bytes的程式。
當下就想說自己也來寫一個應該也不錯。
##CONTINUE##
寫好後發現程式寫入速度增快很多,目前也沒發現什麼BUG。
應該是夠用了。
現在可以燒錄64KBytes的程式碼了。
使用方法很簡單,只要照著程式上的步驟一步一步照著做就好了。
這是利用RS232的溝通腳位(DTR、RTS、CTS、DSR)進行SPI通訊傳輸,所以速度沒有其他ISP的MCU這麼快。
特色
1.介面簡潔!!
2.快速燒錄,page mode跟byte mode混合使用
燒錄到現在還沒有出錯過,所以我沒有意願要寫檢查程式碼的功能。
支援的IC有
89S51/98S52/89S53/89S1051/89S2051/89S4051
按這裡下載Mahdi's Programmer最新版本
提供記憶體檢視、指令程式化、HEX編輯、反編譯等功能。
線路圖可以參考
http://www.ourchip.com/NZILIAO/Other/89S_ISP/index.htm
線路圖目前是參考上面的網站,利用輸出產生脈波和資料串列,輸入讀取資料。
(這種方法不能用PL-2303來USB一下,速度不是普通的慢!!!)
改天再來個改版
目前有一個想法是CLK在實驗版上由震盪電路(LMC555...)產生,同時傳入MCU和傳回電腦,而電腦轉換資料往前半個相位,這樣就能少一隻輸出腳位而可以連接Reset,充分利用所有的腳位,不過工程太浩大,還要改硬體,目前沒有這個體力可以去研究,再等等吧.....
心得是
VB和Keil C左寫寫右寫寫的感覺還真不好受= ="
你上面網址所參考的電路圖是屬於89S51/52的,在那個網站並沒有說能燒錄89S2051/4051/10518阿。
回覆刪除是因為軟體的關係嗎,所以才能燒錄?
那如果是這樣子的話,我要燒錄89S2051時的腳位位置應該是跟89S51一樣吧,還是說在燒錄時安裝的IC位置要換掉?
電源部分目前沒有辦法吃USB電源嗎?那以這樣來說只能先吃直流電池的電囉~
我手邊沒有20pin的S51能測試,不過我想應該是可以的,不過要注意的是腳位的改變
回覆刪除MOSI是17(P1.5,本來S51的接腳6),
MISO是18(P1.6,S51的接腳7),
SCK是19(P1.7,S51的接腳8),
RST是1(S51的接腳9)
如果程式有問題再跟我回報,我再作修正,謝謝!!
電源可以使用USB電源喔,注意極性!!
你是說電路圖是對的,但是在於IC接腳部分要做修正囉?
回覆刪除那以這樣來說的話,是改硬體囉?
也就是說要能燒錄S2051及S51的話可能必須要做兩個IC座囉?
你給的網址中有說到電路會不穩定,要加個LS型驅動器,應該不會影響到S2051吧...畢竟原本電路是燒錄S51......
直接做兩個IC座是比較方便省錢的方法...
回覆刪除我也是有用74LS244來做穩定,S2051的電氣特性跟S51很相似,加上去並不會影響到S2051的...
話說最近好多人在討論S2051,是買的到了嗎?我找了好多地方都找不到= =...
今天去找s系列的2051/1051/4051,結果全部摃龜......根本都沒有在賣。都是賣c系列的,真搞不懂,既然買不到還開什麼材料店阿!還說貨物齊全,根本是騙人的嘛!
回覆刪除也蠻奇怪的,s系列的都買不到,不知道是不是ATMEL在搞鬼,而且又不太想用c系列的......真是夠麻煩的~看來還得再找找看囉~~~
應該是代理廠商的問題,想當初89S51兩三年前就出來了,也是最近才比較容易買到。
回覆刪除如果真的已經出來的話前幾天買了一小包C2051的我應該會吐血吧...
至於同時能燒錄S2051跟S51我已經有解決的辦法了,我改天再寫一篇吧!!
目前既然都買不到S2051/1051/4051,就只能先用C系列的了,你有關於C系列的燒錄器電路圖嗎?當然也包括燒錄程式囉...
回覆刪除順便問一下,你撰寫的"燒錄軟體"是用哪種語言阿?實際上我一直很佩服能自己寫出一套軟體的人,真希望我也有機會能夠自己寫一套出來,那種感覺應該很棒吧!!!
哈哈,我正打算再寫一篇有關燒錄20pin C族的51...
回覆刪除現在程式已經寫好了,不過介面要整理一下= =
我是用VB寫的,VB裡面就有Com port的控制元件,寫起來是不難的,只要稍微研究一下DATASHEET就可以了...
天阿~~VB!!!!
回覆刪除對我來說真是難如登天阿~連個九九乘法表都還寫不好...我看想學C語言也沒望了...
我看我還是乖乖的玩組合語言好了...嗚嗚嗚
T_T
會組語很厲害阿!!
回覆刪除每次用Keil C 編譯之後的HEX檔都很肥...
擔心哪一次程式寫太大就塞不進51裡面了= =
是喔~~但是你都能寫出燒錄程式...
回覆刪除組合語言能寫嗎???
我怎麼都沒聽別人提過...可能要學的太多了,希望能好好學變成我的另一個專長
您好
回覆刪除您使用的這個燒錄器可以使用usb轉rs232的線嗎?
燒錄成功率高嗎?
不好意思 問題有點多
謝謝
應該不行喔...
回覆刪除這燒錄器是利用DTS等腳位進行燒錄的(本來是電腦跟數據機用來確認狀態的),並不是用標準的串列通訊
我的USB轉換晶片是PL-2303X,燒錄起來很慢,在燒錄完成之前燒錄程式就會當掉了...
用手插麵包版變換零壹還比較快= ="(開玩笑的...)
如果真要用USB的話,則必須用到URAT轉SPI的元件才能燒錄
您好:
回覆刪除小弟是8051的新手
目前使用您的電路和程式後
以能正常燒89s52
想更進一步的學習
不知您是否能開放或mail燒寫程式的source code呢?
小弟的mail:dan_de_li_on@hotmail.com
沒問題!!
回覆刪除但是因為原始碼很亂,所以我整理一下程式和相關資料,再寫一篇文章來說明好了。
真是太感謝了
回覆刪除小弟就等著拜讀大作了 :D
Opensource的版本我已經重製好了
回覆刪除http://hayden0828.01.googlepages.com/S51pgmer_1.0os.rar
壓縮檔裡面有S51和HEX檔案格式的資料,給你參考看看囉!
有問題可以再問我!
好的
回覆刪除小弟先來學習了
有問題在請教大大了
感謝
請問板主
回覆刪除那個NZLIAO的網站電路已經連不上了,可否提供一下元件電阻電容的資料,另外如果買好一點的USB-RS232,完整支援RS232,是否還能工作呢?
THANKS
NIPS
抱歉我網誌設定的問題,所以沒有看到你的意見。
回覆刪除規格如下所示
C5~C8 10uf
CX1CX2 20p
USB-RS232這就沒有辦法提供你相關的資訊了,
不過我覺得可以找高速(USB2.0)的產品來試試看。
請問10uf 多少v?
回覆刪除沒有特別註明,選25V以上的就好了,
回覆刪除不過25V以下的也不太容易找就是了XD
它話請將Reset重新置於高電壓.要怎解決?不是把它連接就可以嗎? 還有這個ISP是不是可以重燒的?
回覆刪除可以斷電重啟,或是將RESET接地再接到高電位。
回覆刪除還有它是可以重燒的。
還是不行.可否幫我看看?
回覆刪除http://i777.photobucket.com/albums/yy57/kelivn000/123.jpg
如果指的是這張電路圖的話
回覆刪除石英震盪器的接腳應該錯了,還有MAX232第六與第二支腳接電容之後分別接到VCC與GND這部分要注意
是不是這樣接?
回覆刪除http://i777.photobucket.com/albums/yy57/kelivn000/8052.jpg
看下來應該是沒有錯,不過要注意電路圖中的9Pin是公座,而你給的圖我沒有辦法判斷是公座還是母座@@"
回覆刪除你說麵包板中 9 pin ? 紅正 黑負.
回覆刪除我是指你銲的那個RS232插座,不知道是公的還是母的,設計圖是公座的
回覆刪除要連進電腦只能用母頭.
回覆刪除電腦出來是公座沒錯,8051這邊也要用公座,然後再用母對母的線連接,如果8051這邊是母座(用公對母的線),記得腳位要反轉。
回覆刪除聖誕節快樂XDDD!!!
試試先. RS232頭腳位要反轉? 1-9 pin 左右反轉?
回覆刪除5<-->1
回覆刪除4<-->2
9<-->6
8<-->7
大概是這樣吧
喔! 原來我把6和9看錯,所以7和8插錯了.現在不需要轉公頭.好似也燒到了.
回覆刪除http://i777.photobucket.com/albums/yy57/kelivn000/iSP.jpg
如果 8051 9pin 連接著電阻和電容也能正常燒嗎?
這個才對
回覆刪除http://i777.photobucket.com/albums/yy57/kelivn000/ISP.jpg
I打錯了i =.="
可以把pin9接上RC重置電路(應該就是你說的電阻電容)
回覆刪除當重置按鈕按著時就能燒錄。
燒成功了嗎??最近我用這個電路燒的時候都要加Buffer(像74LS244)
要在9pin加上按鈕?
回覆刪除是阿.燒了好似沒有反應.
MAX232連接74LS244,是否9,11,12腳連到74LS244輸入,例2,4,6腳,再用輸出14,16,18連到8051. pin9 就沒有變?
回覆刪除MISO (8051pin7) 注意是輸出不是輸入
回覆刪除我是將74244腳位 16,17,18 接到8051的 8,7,6
232的腳位 12,11,9 接到74244的 2,3,4
http://sites.google.com/site/hayden0828/blog/20100110227.jpg
這樣比較好接,也比較整齊。
8051 9pin綠色條線不用接正?
回覆刪除要接正,或者接上本來電路的Reset開關
回覆刪除像下面這張圖的驅動晶片Pin9一樣的接法
開關按著就可以燒錄,放開就執行。
http://4.bp.blogspot.com/_YGCobP2xvzk/SQnQONh85gI/AAAAAAAAATE/zcCZY9-xCI0/s1600-h/002.jpg
Hi~ 我是mosquito:D
回覆刪除在PTT的ASM版看到你的推文,不過為了版面的和諧,
還是跑來你這邊回好了XD
也很高興當年我隨便亂寫的東西對於這個社會有小小的貢獻...
(最起碼,讓你寫了這個更完整的版本出來造福大家XD)
哪天我要用別的語言重寫的時候再來參考你的source,
順便引用你的文章:D
by the way,
你的點子不錯~省掉一條輸出可以拿來控制RST,
不過有個問題是兩端要怎麼同步= =?
還有一招更髒的作法,
拿PC端的TX來用,因為RS232的輸出,
沒有辦法拿來當一般控制線對吧?
當我們送資料給RS232的時候會轉成Serial輸出,
這個時候就可以用個賤招,
在完全沒有資料的時候,TX會維持在一個準位不變,
(沒有記錯的話,要用示波器去看才能確認)
接著咧~拿TX接到一個雙穩態電路的輸入,
用輸出來控制RST,這樣就實現啦= =+
(雙穩態的輸入要Delay超過RS232的資料寬度,
這樣才能確保輸出的穩定)
以上給你做個參考:)
您好, 目前正在試作POV LED所以需要用到89S52, 拜讀您的大作, 真是感激不盡, 正好可以DIY一個燒錄器自用, 有個小問題想請教您.
回覆刪除現在手上只找的到MAXIM MAX232AESE這款IC, 規格書標示MAX232A匹配電容用0.1uF, 而MAX232標示為1.0uF, 但您的電路圖MAX232上卻用10uF(可能您有調適過), 這樣的話...我的MAX232A還是一樣用規格書標示的0.1uF嗎? 或者有其他建議呢?
初學者, 非電子本行. 請多包涵^^"
綠色西瓜 您好
回覆刪除感謝支持
我使用的晶片是HIN232CP
電容的部份我也是參考其他的網站來作配置
應該使用1uf的電容就能工作
MAX232A是屬於較高階的規格
我的建議是使用規格書上標示的0.1uf可能比較好
最近才有空繼續弄,已經焊接完成,且用您提供的程式燒錄OK!感激不盡,不過弄起來的效果還是怪怪的,大概是我網路上找的資料有些問題。不知您是否曾以89S52來嘗試POV LED?
回覆刪除不如詳細描述一下發生了什麼狀況,程式的流程等等....
回覆刪除不知道不能幫上忙
不過可以互相切磋討論看看XD
POV LED就是利用視覺暫留的方式,以亮點來呈現圖形或文字,市面上有一些玩具或時鐘就是利用這原理完成的!
回覆刪除而我的電路圖是採用以下網址的資料:
http://hi.baidu.com/52_diy/blog/item/2f2737f7a9c2ff24720eecff.html
IC採用ATMEL 89S52
K1是復位鍵
K2是水銀開關,圖中有誤,應連接第12之腳(IT0)
X'TAL為12MHZ
程式碼是複製網頁上的,以keil轉換成HEX檔案,再用您設計的燒錄器寫入。
不過...還是失敗了...殘念!不知您是否曾經弄過類似的東西?或者可以提供一些建議?感謝^^
請問keil C是哪一個版本的?如果是評估版的話會限制燒錄程式的記憶體位置
回覆刪除而如果又使用到中斷,那就會沒有辦法正常執行程式。
我使用的是Keil C51 Version 8.02版,從下述網址下載來的:
回覆刪除http://www.laogu.com/ds_2073.htm
另外,使用的方式是參照這網址操作:
http://tw.myblog.yahoo.com/likeyoufacejang/article?mid=847&prev=-2&next=-2&page=1
使用你提供的燒錄程式,燒錄完成後會顯示"將RESET設置為低電位",意思是直接關閉電源移除即可,這樣對嗎?
還有"而如果又使用到中斷,那就會沒有辦法正常執行程式"是什麼意思呢?
新手問蠢問題,請多包涵!^^"
這keilC是評估版的,有程式大小2K及燒錄起始點的限制,
回覆刪除8051外部中斷0沒記錯的話是在向量0x0002的位址,評估版是沒有辦法燒錄在那個位址的,這個要注意
另外燒錄程式中將"RESET"設定在低電位是指程式已經執行完成,可以開始執行了
關閉電源移除即可沒錯
原來keilC評估版還有這些限制,今天真是受教了!那我再找看看有無綠化版,屆時再試試,有好消息再跟您說,感謝^^
回覆刪除其他的版本可能就沒有辦法跟您討論了...
回覆刪除有一種編譯器是針對8051的C程式進行編譯
叫做SDCC(Small Device C Compiler)
是免費的編譯程式,不過需要有支援的IDE配合
設定有些繁雜
而且跟KeilC的撰寫習慣有一點差別
可以試試看XD
版大你好~請問一下上面所提供的RS232燒錄器的電路圖所接的電源是幾V的?是否能使用USB的5V來接呢?
回覆刪除MAX232的datasheet上所寫的VS+是接+8.5V的電壓,若我用USB的5V接是否會有問題?
另外我想加上兩顆LED分別是電源指示燈,另一是燒錄時的指示燈(燒錄時亮燈,閒置時熄燈)電路上該如何接?
可以使用USB的電源沒有問題
回覆刪除電源指示燈只要用LED串聯電阻從正接至負極
燒錄指示燈可以用同樣的方法正及接在P1.7就可以囉
版大你好,我照的你的電路圖製作,可是燒錄程式會一直停在"將RESET至於高電位",將RESET接腳從低電位換到高電位也沒用,不知道是何原因?
回覆刪除http://img2.pict.com/61/ed/33/4446399/0/dsc0309.jpg
要使用公座的DB9接頭來接喔
回覆刪除如果是母座的話,腳位需要左右反轉
謝謝版大的回答,我是這樣接的,這是母頭的背面,如果沒接錯的話還有什麼可能因素呢?
回覆刪除http://img2.pict.com/85/d7/da/4446516/0/dsc0309.jpg
M大你好
回覆刪除我覺得你設計的燒錄器很棒,我想要轉載可以嗎?
大概是長這樣子http://163.18.1.12/~u9552018/UART_S5X/UART_S5X.htm
謝謝!
可以的
回覆刪除不用客氣謝謝
M大你好! 請問可以提供HEX編輯、燒錄軟體給我嗎?
回覆刪除cheer790127@yahoo.com.tw
拜託 感謝!!
你好~我依照你網頁的電路做完了燒錄器~
回覆刪除不過照著軟體步驟到了燒錄時都跑出RESET請接到高電位?
我板子用母座接頭的反轉是什麼意思?聽不太懂
還有可以給我燒錄程式hex嗎?我要測試用的~
fe790804@yahoo.com.tw
[IMG]http://i.imgur.com/fS4Jy.jpg[/IMG]
回覆刪除前兩天在公司要燒89S52,剛好看到板大的燒錄器,不過手邊只有PL2303,沒有MAX232可以用。比對了一下線路,把相對應的腳位接起來試用,目前動作都還正常喔!!
如果可以的話,想改寫一下板大的燒錄軟體,想加點小東西,如果有改好了再請板大指教一下
當然可以修改囉
回覆刪除到時再切磋一下吧
Mahdi
回覆刪除您好﹗
看到貴網頁之大作及熱烈討論後,讓我不禁躍躍欲試。
很慚愧我是五年級前段生,對8051沒有學好,故想請教
如下
1).對版主所PO示之燒錄器線路圖,只有DB9、MAX323、
8051(但並沒有ic 74LS244);可否有完整電路圖,能提供?
2).請教版主對 Jan 14,2010 10:42 AM,所回應之文。
是指Pin31、9、40腳,都是接在Vcc同一點嗎?
以上提問 敬請賜教 實感德便
祝 順遂
您好
回覆刪除電路圖參考文章中的圖應該可以使用
第二個問題是沒錯的都接VCC就可以了
您好
回覆刪除我是一個大學生拜讀了大大的文章,因為專題的需要用到s2051
燒錄 是否可以請大大可以分享 s2051燒8051的程式碼.ASM的
因為小弟看不懂.HEX的內容麻煩您了!! 希望您有留著(保佑)。
如果可以請MAIL:oversoul60818@gmail.com 小弟拜託了!!
我程式的部份是使用C語言來寫的
刪除所以可能沒有辦法給你組語的部分喔
板大~~妳好!!!
回覆刪除我想請問說妳的燒錄程式~~我抓取下來時都匯出錯!!!
請問有新版本嗎??可以提供我抓取嗎?
謝謝!!