8051程式 |
尚未結案
|
銀色之風
一般會員 發表:1 回覆:5 積分:1 註冊:2010-06-08 發送簡訊給我 |
這是步進馬達正轉一圈再反轉一圈的程式
STEPS EQU 200 TIMES EQU 10 PHASE EQU 11H OUT REG P1 ORG 0 CALL POSITION START: MOV A, #PHASE MOV R4, #STEPS RL_1: MOV OUT, A MOV R5, #TIMES CALL DELAY RL A JMP RL_1 MOV R4, #STEPS RR_1: MOV OUT, A MOV R5, #TIMES CALL DELAY RR A DJNZ R4, RR_1 DELAY: MOV R7, #100 D1: MOV R6, #250 DJNZ R6, $ DJNZ R7, D1 DJNZ R5, DELAY RET POSITION: MOV 30H, #4 MOV A, #PHASE P_1: MOV OUT, A MOV R5, #TIMES CALL DELAY RL A DJNZ 30H, P_1 RET END 1.當要寫入8051單晶片時卻出現錯誤是為什麼? 2.如果把RR_1的部分刪除是不是就不會反轉了? 3.圖上是用89C51,那用8051燒可以嗎? |
ScottWang
版主 發表:32 回覆:486 積分:688 註冊:2009-04-27 發送簡訊給我 |
先把以下兩個 地方改一下,看看結果如何
>START: MOVA, #PHASE > MOVR4, #STEPS START: MOV A, #PHASE MOV R4, #STEPS ------------------------------ > DJNZ R4, RR_1 >DELAY: MOV R7, #100 DJNZ R4, RR_1 jmp START <-- 插入此行 DELAY: MOV R7, #100
------
高壓直流電源供應器,高壓模組,測試LED專用AC LED定電流源,全範圍可調電壓電流, 中低壓直流電源供應器,電壓放大器,電流放大器,帶通濾波器,高精度參考電壓, 標準電壓,恆流源(定電流源),恆壓源(定電壓源),大電流電源供應器. 接受訂製,設計生產各種特殊規格,高精度產品,學校實驗室,研究單位實驗設備, 另可接受其它電子專案設計,HV Power,Vmax=20KV,Imax=2000A. http://hvpower.myweb.hinet.net/ |
銀色之風
一般會員 發表:1 回覆:5 積分:1 註冊:2010-06-08 發送簡訊給我 |
|
ScottWang
版主 發表:32 回覆:486 積分:688 註冊:2009-04-27 發送簡訊給我 |
差很大...
去把程式trace看看. 你把主程式和副程式都混在一起,沒有分開,你的主程式跑一跑,然後就跑到副程式去了. 副程式只能在主程式有呼叫它的時候,才能執行,依你目前的方式,你trace程式看看怎麼跑的,然後跑到那裡去.
------
高壓直流電源供應器,高壓模組,測試LED專用AC LED定電流源,全範圍可調電壓電流, 中低壓直流電源供應器,電壓放大器,電流放大器,帶通濾波器,高精度參考電壓, 標準電壓,恆流源(定電流源),恆壓源(定電壓源),大電流電源供應器. 接受訂製,設計生產各種特殊規格,高精度產品,學校實驗室,研究單位實驗設備, 另可接受其它電子專案設計,HV Power,Vmax=20KV,Imax=2000A. http://hvpower.myweb.hinet.net/ |
銀色之風
一般會員 發表:1 回覆:5 積分:1 註冊:2010-06-08 發送簡訊給我 |
|
ScottWang
版主 發表:32 回覆:486 積分:688 註冊:2009-04-27 發送簡訊給我 |
目前的程式仍然有問題的地方 --
> JMP RL_1 > MOV R4, #STEPS >RR_1: MOV OUT, A JMP RL_1 MOV R4, #STEPS <-- 目前的程式,此行沒有被執行,看看是否要把RR_1移到此行之前. RR_1: MOV OUT, A 新改 -- JMP RL_1 RR_1: MOV R4, #STEPS MOV OUT, A >原來如此 那不要讓他反轉的話程式要如何改? 激磁方式會影響嗎? 你會這樣問,是否仍然沒有去trace程式,然後去想想那一段程式是左轉,那一段程式是右轉,沒有去trace程式,是不會進步的,每一遇到問題就會卡住. Trace程式,就是一行一行的去看每個程式的指令功能和用途,還要對照硬體去追蹤,若有不懂的馬上去查看指令表,每一段程式的功能是做什麼的,有時候還要利用jmp指令,把程式變成一小段一小段的試驗,以了解每一小段程式的功能,你的程式不多,trace看看吧.
------
高壓直流電源供應器,高壓模組,測試LED專用AC LED定電流源,全範圍可調電壓電流, 中低壓直流電源供應器,電壓放大器,電流放大器,帶通濾波器,高精度參考電壓, 標準電壓,恆流源(定電流源),恆壓源(定電壓源),大電流電源供應器. 接受訂製,設計生產各種特殊規格,高精度產品,學校實驗室,研究單位實驗設備, 另可接受其它電子專案設計,HV Power,Vmax=20KV,Imax=2000A. http://hvpower.myweb.hinet.net/ |
銀色之風
一般會員 發表:1 回覆:5 積分:1 註冊:2010-06-08 發送簡訊給我 |
|
阿信
版主 發表:111 回覆:983 積分:813 註冊:2005-03-10 發送簡訊給我 |
>程式是弄進去了 但馬達實際跑不是預期的那樣
>而是非常微小的一小格 這是為什麼? 請注意馬達的接線順序 P1.0 接 馬達A腳 P1.1 接 馬達B腳 P1.2 接 馬達/A腳 P1.3 接 馬達/B腳 OUT REG P1 ;------------------------ ORG 0 START: MOV A,#PHASE ;<-#PHRASE要先填 CALL POSITION LOOP1: ;左轉一圈 MOV R4, #STEPS RL_1: MOV OUT,A MOV R5,#TIMES CALL DELAY RL A DJNZ R4,RL_1 ;jmp改djnz ;右轉一圈 MOV R4,#STEPS RR_1: MOV OUT,A MOV R5,#TIMES CALL DELAY RR A DJNZ R4,RR_1 JMP LOOP1 ;<-加入此行 ;------------------------ DELAY: MOV R7,#100 D1: MOV R6,#250 DJNZ R6,$ DJNZ R7,D1 DJNZ R5,DELAY RET ;------------------------ POSITION: MOV 30H,#4 MOV A,#PHASE P_1: MOV OUT,A MOV R5,#TIMES CALL DELAY RL A DJNZ 30H,P_1 RET ;------------------------ END |
銀色之風
一般會員 發表:1 回覆:5 積分:1 註冊:2010-06-08 發送簡訊給我 |
STEPS EQU 67
TIMES EQU 10 PHASE EQU 33H OUT REG P1 ORG 0 CALL POSITION START: MOVA, #PHASE MOVR4, #STEPS RL_1: MOV OUT, A MOV R5, #TIMES CALL DELAY RL A JMP RL_1 DELAY: MOV R7, #100 D1: MOV R6, #250 DJNZ R6, $ DJNZ R7, D1 DJNZ R5, DELAY RET POSITION: MOV 30H, #4 MOV A, #PHASE P_1: MOV OUT, A MOV R5, #TIMES CALL DELAY RL A DJNZ 30H, P_1 RET END 這是我現在的程式 理論上來說是要讓他一次轉120度 所以我設定是一次走67步 而且是二相激磁所以打的是33H 但電路接通後他跑的是很微小的一格而且一直連續走 這是在那兩個30pF的電容沒和12MHz的石英震盪器連接的情況下才會動 如果接通的話馬達就不會動了 請問這是為什麼? 還有請問什麼類型的步進馬達可以驅動5公斤的重量? 我現在用的是一顆NT260的步進馬達 看它轉動之後我想這顆應該是無法驅動那麼重的重量了... |
阿信
版主 發表:111 回覆:983 積分:813 註冊:2005-03-10 發送簡訊給我 |
STEPS EQU 67
TIMES EQU 10 PHASE EQU 33H OUT REG P1 ORG 0 CALL POSITION START: MOV A, #PHASE MOV R4, #STEPS RL_1: MOV OUT, A MOV R5, #TIMES CALL DELAY RL A JMP RL_1 jmp $ ;<-死迴圈 DELAY: MOV R7, #100 D1: MOV R6, #250 DJNZ R6, $ DJNZ R7, D1 DJNZ R5, DELAY RET POSITION: MOV 30H, #4 MOV A, #PHASE P_1: MOV OUT, A MOV R5, #TIMES CALL DELAY RL A DJNZ 30H, P_1 RET END 這是我現在的程式 理論上來說是要讓他一次轉120度 所以我設定是一次走67步 而且是二相激磁所以打的是33H 但電路接通後他跑的是很微小的一格而且一直連續走<-電容是用來減少振盪器的雜訊,但電容太大會使振盪信號也變小,改10pF試試。 請問這是為什麼? 還有請問什麼類型的步進馬達可以驅動5公斤的重量? 我現在用的是一顆NT260的步進馬達 <-另外uln2003最大只能到500mA,需再外加電晶體 |
銀色之風
一般會員 發表:1 回覆:5 積分:1 註冊:2010-06-08 發送簡訊給我 |
|
阿信
版主 發表:111 回覆:983 積分:813 註冊:2005-03-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |