全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2606
推到 Plurk!
推到 Facebook!

8051程式

尚未結案
銀色之風
一般會員


發表:1
回覆:5
積分:1
註冊:2010-06-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-06-08 12:16:52 IP:122.117.xxx.xxx 訂閱
這是步進馬達正轉一圈再反轉一圈的程式
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燒可以嗎?
編輯記錄
銀色之風 重新編輯於 2010-06-08 12:19:45, 註解 無‧
銀色之風 重新編輯於 2010-06-08 12:21:10, 註解 無‧
銀色之風 重新編輯於 2010-06-08 12:22:47, 註解 無‧
銀色之風 重新編輯於 2010-06-14 12:30:48, 註解 無‧
ScottWang
版主


發表:32
回覆:486
積分:688
註冊:2009-04-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-06-08 19:21:14 IP:218.161.xxx.xxx 訂閱
先把以下兩個 地方改一下,看看結果如何
>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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-06-10 23:54:26 IP:122.117.xxx.xxx 訂閱
加入的那行作用是什麼? 應該沒差別吧?
ScottWang
版主


發表:32
回覆:486
積分:688
註冊:2009-04-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-06-11 03:47:03 IP:218.161.xxx.xxx 訂閱
差很大...
去把程式trace看看.
你把主程式和副程式都混在一起,沒有分開,你的主程式跑一跑,然後就跑到副程式去了.

副程式只能在主程式有呼叫它的時候,才能執行,依你目前的方式,你trace程式看看怎麼跑的,然後跑到那裡去.
------
高壓直流電源供應器,高壓模組,測試LED專用AC LED定電流源,全範圍可調電壓電流,
中低壓直流電源供應器,電壓放大器,電流放大器,帶通濾波器,高精度參考電壓,
標準電壓,恆流源(定電流源),恆壓源(定電壓源),大電流電源供應器.
接受訂製,設計生產各種特殊規格,高精度產品,學校實驗室,研究單位實驗設備,
另可接受其它電子專案設計,HV Power,Vmax=20KV,Imax=2000A.
http://hvpower.myweb.hinet.net/
銀色之風
一般會員


發表:1
回覆:5
積分:1
註冊:2010-06-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-06-11 09:42:44 IP:122.117.xxx.xxx 訂閱
原來如此 那不要讓他反轉的話程式要如何改? 激磁方式會影響嗎?
ScottWang
版主


發表:32
回覆:486
積分:688
註冊:2009-04-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2010-06-11 11:27:14 IP:218.161.xxx.xxx 訂閱
目前的程式仍然有問題的地方 --
> 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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2010-06-12 01:28:10 IP:122.117.xxx.xxx 訂閱
程式是弄進去了 但馬達實際跑不是預期的那樣 而是非常微小的一小格 這是為什麼?
阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#8 引用回覆 回覆 發表時間:2010-06-12 15:43:00 IP:122.146.xxx.xxx 訂閱
>程式是弄進去了 但馬達實際跑不是預期的那樣 
>而是非常微小的一小格 這是為什麼?
請注意馬達的接線順序
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

編輯記錄
阿信 重新編輯於 2010-06-12 15:45:13, 註解 無‧
阿信 重新編輯於 2010-06-12 15:47:16, 註解 無‧
阿信 重新編輯於 2010-06-12 15:50:05, 註解 無‧
銀色之風
一般會員


發表:1
回覆:5
積分:1
註冊:2010-06-08

發送簡訊給我
#9 引用回覆 回覆 發表時間:2010-06-13 19:03:50 IP:163.18.xxx.xxx 訂閱
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的步進馬達
看它轉動之後我想這顆應該是無法驅動那麼重的重量了...
編輯記錄
銀色之風 重新編輯於 2010-06-13 19:11:00, 註解 無‧
銀色之風 重新編輯於 2010-06-13 19:15:02, 註解 無‧
阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#10 引用回覆 回覆 發表時間:2010-06-14 09:57:49 IP:114.32.xxx.xxx 訂閱
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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2010-06-14 12:39:55 IP:122.117.xxx.xxx 訂閱

我少打了一行MOV R4, #STEPS
本來的是這樣
RL_1: MOV OUT, A
MOV R5, #TIMES
CALL DELAY
RL A
MOV R4, #STEPS
而再把你說的那兩行加進去後RL_1這部分這樣打行嗎?
RL_1: MOV OUT, A
MOV R5, #TIMES
CALL DELAY
RL A

在接一個電晶體是要接在UNL2003上嗎?
阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#12 引用回覆 回覆 發表時間:2010-06-14 18:39:34 IP:114.32.xxx.xxx 訂閱
<- 這行要在迴圈外!
RL_1:
MOV OUT, A
MOV R5, #TIMES
CALL DELAY
RL A
DJNZ R4, RL_1 ;
JMP $

=================================================

uln2003無法直接接電晶體,
可以兩兩並聯,uln2003還有4組可用;
也可使用全電晶體驅動電路。
系統時間:2024-05-05 9:42:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!