89S52燒錄 |
缺席
|
marstate
一般會員 發表:3 回覆:6 積分:1 註冊:2009-01-16 發送簡訊給我 |
請問各位,以下程式是自己做89C51燒錄器的寫入程式.
在做C51寫入時正常,燒錄OK.但要改寫入S51/S52時,則一直無法寫入. 看S51手冊,寫入週期時間不同,有試著把延時時間修改,但還是一直無法寫入,抺除則可以,讀取也可以,就是不能對S51/52寫入 請大家幫忙下,是否還有那些要注意的,謝謝大家. ======寫C51正常================================== C51_Writ: ;燒錄副程式 SETB C51D0 ;燒錄端的P3.7 SETB C51D1 ;燒錄端的P3.6 SETB C51D2 ;燒錄端的P2.7 CLR C51D3 ;燒錄端的P2.6 SETB C51D4 ;燒錄端的P3.3 (S51,S52使用) SETB P3.2 ;先設 PRG=1 MOV P0,#0FFH MOV R0,#LINE_BUF ;讀取由電腦輸入的資料 CW10: MOV A,@R0 ;讀取資料 MOV P0,A ;輸出到P0待命 CLR VS ;RST=12V,啟動燒入,RST=12V CALL DELAY40US ; CLR P3.2 ;PRG=0,寫入脈波由0變1 CALL DELAY100US ; SETB P3.2 ;PRG=1,,寫入脈波由0變1 CALL DELAY40US ; SETB VS ;RST=5V,寫入完成一次 CALL DELAY2MS ; CW30: MOV A,P1 CJNE A,#0FFH,CW40 ;P1加到255後,P2要加1 INC P2 ; MOV P1,#000H ;P1要再重頭開始計數 AJMP CW50 CW40: INC P1 ;計數一次 CW50: RET ============寫S51,不能寫入========================= S51_Writ: ;燒錄副程式 CLR C51D3 ;燒錄端的P2.6 SETB C51D2 ;燒錄端的P2.7 SETB C51D4 ;燒錄端的P3.3 (S51,S52使用) SETB C51D1 ;燒錄端的P3.6 SETB C51D0 ;燒錄端的P3.7 SETB P3.2 ;先設 PRG=1 MOV P0,#0FFH MOV R0,#LINE_BUF ;讀取由電腦輸入的資料 MOV A,@R0 ;讀取資料 MOV P0,A ;輸出到P0待命 CLR VS ;RST=12V,啟動燒入,RST=12V CALL DELAY10US ;這里改了也是不能寫入 SETB VS ;RST=5V,寫入完成一次 CALL DELAY50US ;這里改了也是不能寫入 SW30: MOV A,P1 CJNE A,#0FFH,SW40 ;P1加到255後,P2要加1 INC P2 ; MOV P1,#000H ;P1要再重頭開始計數 AJMP SW50 SW40: INC P1 ;計數一次 SW50: RET ;===S51/52 抺除正常===================================================== S51_ERASE: SETB P3.3 ;燒錄端的P2.6 CLR P2.7 ;C51使用/燒錄端的P2.7 SETB P2.5 ;燒錄端的P3.3 (S51,S52使用) CLR P3.4 ;燒錄端的P3.6 CLR P3.5 ;燒錄端的P3.7 SETB P3.2 ;PRG=1 CALL DELAY10US SETB RST ;設RST=H/5V CLR VS ;RST=12V CALL DELAY50MS CLR P3.2 ;PRG=0 CALL DELAY50MS SETB P3.2 ;PRG=1 CALL DELAY50MS SETB VS ;RST=5V RET ;======================================================= |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |