نویسنده : مهدی رجبی نیا هدف از ارائه این اطلاعات آموزش و بالا بردن سطح دانش و توانایی شما در برنامه نویسی و طراحی سخت افزار هست نه این که مداری رو آماده در اختیار شما بگذاریم. چون طراحی آسانسور با تمام دستگاه هایی که تا حالا دیده اید فرق میکنه و اگه یاد نگیرید هیچ فایده ای نداره که یک مدار آسانسور داشته باشید. مثلا در ساختمانی که شما براش مدار طراحی می کنید در طبقه همکف 2 تا درب وجود داره یا در طبقه اول نباید درب باز بشه و یا بعضی از آسانسورها ورودی خروجی مختلفی اعم از تونلی یا چپ بازشو یا راست باز شو دارند.در این صورت چه اهمیتی داره که مثلا شما یک پروژه 7 طبقه از بک آسانسور داشته باشید و نتونید تغیرات لازم رو در اون بدید. یا مثلا طول بعضی از طبقات کوتاه تر از طبقات دیگر هست و در اون طبقه شما نمی تونید از 2 سنسور استفاده کنید و حسابی گیر می افتید و کار هم خراب میشه. پس اول شناسایی مدار مورد نیاز و بعد ساخت سخت افزار و برنامه نویسی هم در مرحله آخر.در ضمن قسمتی از مدار آسانسور که بخش مهمی هم از اون محسوب میشه درون چاهک قرار داره و هیچ ربطی به مدار فرمان نداره که باید شناخت دقیقی از سخت افزار خارج از مدار فرمان هم داشته باشید. متاسفانه درطول این مدت تقریبا 2 سال تا حالا کسی برنامه ای ننوشته که بخواد اون رو براش اصلاح کنم یا مشکل سخت افزاریش رو حل کنم و فقط درخواست مدار کامل شده . به همین خاطر مداری رو در زیر ارائه میکنم که تا حدودی بتونه بهتون کمک کنه تا یک طراحی خوب داشته باشید. ۲ کلید بوش باتون سمت چپ وظیفه شمارش جهت بالا و جهت پایین رو بر عهده دارد.۵ کلید سمت راست شاستی طبقات آسانسور می باشد.۲ عدد از سوییچ ها هم ایمنی شناسایی پایین ترین طبقه و بالا ترین طبقه می باشد که در مواقعی همچون رفتن برق یا ریست شدن کاربرد دارد. در ضمن جهت دریافت فایل پروتئوس و فایل هگز ایمیل بزنید تا رایگان برایتان فرستاده شود.همچنین می توانید یک lcd به پورت a میکرو خود وصل کنید و داده ها را بر روی آن به صورت کامل داشته باشید. به امید موفقیت هر چه بیشتر شما
برنامه نویسی : Micro Code Studio '**************************************************************** '* Name : elevator/lift.BAS * '* Author : mehdi rajabinia '* Notice : Copyright (c) 2008 [select VIEW...EDITOR OPTIONS] * '* : All Rights Reserved * '* Date : 2008/01/02 * '* Version : 1.0 * '* Notes : elevator 5 step up/down cunter * '* : http://omidravanro.persianblog.ir/ tel: 09125354921 * '**************************************************************** trisa=%000000 trisb=%11000011 trisc=%11111111 trisd=%00000000 trise=%111
key0 var portc.4 key1 var portc.3 key2 var portc.2 key3 var portc.1 key4 var portc.0 symbol SENs0=portb.1 symbol SENs4=portb.0 symbol usens=portb.6 symbol dsens=portb.7 symbol upled = portb.2 symbol hiled = portb.3 symbol loled = portb.4 symbol DOWNled = portb.5 b0 var byte b1 var byte test: portb=%11000011 portd=%00000000 pause 100 main: ;agar asansor dar paintarin tabaqe bud shenasai naravad. if sens0=0 then goto chek else goto shenasai endif
shenasai: ;asansor az har ja shasti begirad jahat shenasai be paiin beravad. if key0=1 or key1=1 or key2=1 or key3=1 or key4=1 and sens0=1 then downled=1 goto jahatdn else goto shenasai endif jahatdn: if sens0=0 then pause 10 downled=0 pause 10 goto chek else downled=1 goto jahatdn endif chek: low portd.7 pause 10 high portd.7 pause 10 if key0=1 or key1=1 or key2=1 or key3=1 or key4=1 then park goto chek park: if key0=1 and sens0=1 then high key0 pause 10 endif if key1=1 then high key1 pause 10 endif if key2=1 then high key2 pause 10 endif if key3=1 then high key3 pause 10 endif if key4=1 and sens4=1 then high key4 pause 10 endif if b1=$3f and key1=1 or key2=1 or key3=1 or key4=1then runup pause 10 if b1=$06 and key2=1 or key3=1 or key4=1 then runup pause 10 if b1=$5b and key3=1 or key4=1 then runup pause 10 if b1=$4f and key4=1 then runup pause 10 if b1=$66 and key0=1 or key1=1 or key2=1 or key3=1 then rundown pause 10 if b1=$4f and key0=1 or key1=1 or key2=1 then rundown pause 10 if b1=$5b and key0=1 or key1=1 then rundown pause 10 if b1=$06 and key0=1 then rundown pause 10 ; b0,[$3f,$06,$5b,$4f,$66,$6d,$7d,$07,$7f,$6f],b1 10 tabaqe (0 to 9) stop1: lookup b0,[$3f,$06,$5b,$4f,$66],b1 ; tarif 5 tabaqe portd=b1 if usens=1 then b0=b0+1 write 1,b1 pause 10 endif if dsens=1 then b0=b0-1 write 1,b1 pause 10 endif if b1=$3f or sens0=0 and key0=1 then ;0 hiled =0 downled=0 key0 =0 pause 10 endif if b1=$06 and key1=1 then ;1 upled =0 downled =0 key1 =0 pause 10 endif if b1=$5b and key2=1 then ;2 low upled low downled low key2 pause 10 endif if b1=$4f and key3=1 then ;3 upled=0 downled=0 low key3 pause 10 endif if b1=$66 or sens4=0 and key4=1 then ;4 upled=0 downled=0 low key4 pause 10 endif pause 50 ;goto stop1 goto park runup: downled=0 pause 50 upled=1 pause 20 goto stop1 rundown: upled=0 pause 50 downled=1 pause 20 goto stop1 ;goto chek end <لیفتیران>
|