# برنامه نویسی میکروکنترلر (MicroController) ها و MicroProcessor ها > برنامه نویسی سیستم های Embeded >  برنامه موتور پله اي

## saeed razaee

با سلام 
من دستورات برنامه اي را مي خواهم كه بتواند موتور پله اي چهار سيمه بر روي پورت دوم را با سرعت ده دور بر ثانيه حركت دهد. در اين برنامه فقط از آكامالاتور و يك رجيستر sfr  استفاده شود . برنامه به زبان اسمبلي باشد. با تشكر

----------


## mzjahromi

نوع موتور و دستورالعملهاش هم نیازه.
ضمن اینکه شما اینجا فقط میتونید درخواست راهنمائی کنید نه نوشتن کامل ....

----------


## saeed razaee

با سلام و با عرض ادب و احترام و خسته نباشيد
به عرض مي رسانم نوع موتور مهم نيست فقط راهنمائي در خصوص نوشتن برنامه و يا خود برنامه را براي من زحمت بكشيد . با تشكر

----------


## shaniaki

با عرض ادب:

روی چه کنترلری؟
به هر حال با جستجوی ساده ای حتی در سایتهای فارسی منابع زیادی در این زمینه پیدا خواهید کرد. نمونه:
http://www.forum.microrayaneh.com/vi...php?f=10&t=184
ایضا:
http://www.programmersheaven.com/dow.../download.aspx

یه ... ...

----------


## saeed razaee

mov a,#66h      ; load step sequence             
bavck:   mov p1,a         ;issue sequence to motor
RR A                ; ROTATE RIGHT CLOCKWISE             
ACALL DELAY  ; WAIT
SJMP BACK  ; KEEP GOING

...
DELAY
 moV R2,#100                 
h1 :          MOV R3 ,H2
h2:           djnz r3.h2
djnz r2,h1                
retبا سلام  من اين برنامه را نوشتم  اولاً تعداد دور را چگونه حساب كنم  چون در سوال اوليه گفته شده ده دور بر ثانيه و در صورت محسابه ده دور بر ثانيه آن را كجا به كار ببرم

----------


## shaniaki

با عرض ادب:
در وحله اول شما طرز کار موتور پله‌ای را به دقت مطالعه کنید تا ببینید که از میکرو انتظار دارید در چه زمان‌هایی٬ چه خروجی‌هایی تولید کند. بعد از آن با تنظیم روتین Delay (و با توجه به کلاک کنترلر و سرعت اجرای دستورات این روتین) خروجی‌های مطلوب را در زمان‌های مقتضی روی پورت خروجی قرار دهید.

یه ... ...

----------


## saeed razaee

با سلام 
از عنايتي كه مي فرمائيد كمال تشكر و قدر داني را دارم.

----------


## robochoo

سلام
اولا خدمت دوست عزیزم اینو بگم که معمولا متو پله ای سرعت کمی داره و بعید میدونم بهتونی 10 دور بر ثانیه ازش بگیری، باید خیلی دقت کنی تو ساخت درایورش. چون درایورش تو سرعتش خیلی تاثیر داره. اینم برنامش با 8051
هر مرتبه از حلقش یک پله میشه. ببین متورت چند پله هست. معمولا 200 پله هستند یعنی 1.8 درجه. اگه 200 بار حلقه تکرار بشه میشه یک دور. مقدار Dellay سرعتشو تنظیم میکنه. اونم بستهگی به کریستالش داره که من یه چیزی نوشتم که واسه تست کار کنه. اگه نتونستی تنظیمش کنی مشخصات رو کامل من.
REP:		MOV	A,#11H
		MOV	P2,A
DIRECTION:	RR	A
		ACALL DELAY
		JMP	REP
DELLAY:		MOV	R0,#255
REP2:		NOP
		NOP
		NOP
		NOP
		NOP
		DJNZ	R0,REP2
		RET
END

----------


## robochoo

ببخشید یادم رفت بگم که خط Direction واسه جهت کرکت متور هست. با RR یا RL میشه جهت حرکت رو کنترول کرد.

----------

