از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
دو سال پیش منتشر شده
تعداد بازدید: 124
کد پروژه: 491073
شرح پروژه
🔢 کد پروژه: 115246
📌 عنوان پروژه: پروتئوس
سلام و وقت شما بخیر پروژه پروتئوس میتونید انجام بدید؟
سلام. این پروژهایه که باید برام انجام بدی. لطفاً دقیقاً طبق همین نکاتی که میگم پیش برو.
---
عنوان پروژه: بازی هدفگیری با دکمه (هدف متحرک)
توضیح کلی بازی:
یک هدف روی یک ردیف چراغ (یا صفحه نمایش) رفت و برگشت میکنه. کاربر باید دقیقاً وقتی هدف به وسط رسید، دکمه شلیک رو بزنه. اگه درست بزنه، یک امتیاز میگیره و هدف تندتر میشه. اگه اشتباه بزنه (زود یا دیر)، یک امتیاز کم میشه و هدف کندتر میشه. بازی تا رسیدن به ۱۰ امتیاز ادامه پیدا میکنه و در آخر امتیاز نهایی رو نشون میده.
---
بخش اول: سختافزار (مبتنی بر 8086)
۱. ریزپردازنده 8086:
· حتماً باید از 8086 استفاده کنی.
· میتونی به انتخاب خودت حالت مینیموم یا ماکزیموم رو استفاده کنی.
· باید گذرگاه آدرس (Address Bus)، گذرگاه داده (Data Bus) و سیگنالهای کنترلی مثل RD, WR, M/IO, ALE رو درست پیادهسازی کنی.
· نحوه اتصال 8086 به حافظه و I/O باید دقیقاً مطابق با زمانبندی گذرگاه و آدرسدهی استاندارد 8086 باشه.
· توی نرمافزار Proteus باید بشه عملکرد پایههای 8086 رو دید؛ مثلاً خوندن دستور از حافظه و تبادل داده با I/O باید به وضوح قابل مشاهده و تست باشه.
۲. حافظه:
· برای اجرای برنامه و ذخیره دادهها، باید حداقل یک ماژول حافظه (RAM یا ROM) توی مدار بذاری.
· خودت تصمیم بگیر که ROM رو برای برنامه بذاری یا RAM رو برای داده، یا هر دو رو ترکیبی استفاده کنی. فقط باید با ساختار سیستم هماهنگ باشه.
۳. ورودی سیستم (حداقل دو ورودی قابل تست):
· دکمه شلیک (Fire)
· دکمه ریست یا شروع جدید (Reset/New Game)
(نوع ورودیها کاملاً آزاده، اما همین دوتا کلید ساده کافیه.)
۴. خروجی قابل مشاهده (حداقل یکی):
برای نمایش حرکت هدف از یه ردیف LED و برای نمایش امتیاز از ۷-سگمنت استفاده کن.
میتونی Buzzer هم برای اعلام شلیک موفق یا ناموفق بذاری.
· به Buzzer صداهای مختلف بده (مثلاً برای موفقیت یه صدای بلند و برای شکست یه صدای کوتاه).
---
بخش دوم: نرمافزار (زبان اسمبلی 8086)
· کل برنامه رو باید به زبان اسمبلی 8086 بنویسی و با آدرسهایی که توی سختافزار مشخص کردی، هماهنگ کنی.
· حتماً باید از زیرروالهای جداگانه استفاده کنی. حداقل این زیرروالها رو داشته باش:
۱. زیرروال حرکت هدف (بهروز کردن موقعیت و تغییر جهت در لبهها)
۲. زیرروال بررسی شلیک (مقایسه موقعیت فعلی با موقعیت وسط)
۳. زیرروال نمایش امتیاز
۴. زیرروال مدیریت سرعت (زیاد یا کم کردن مقدار تأخیر)
· از پشته (Stack) برای ذخیره موقت ثباتها موقع فراخوانی زیرروالها استفاده کن. همچنین وضعیت بازی مثل موقعیت، جهت، امتیاز و مقدار تأخیر رو هم توی پشته ذخیره کن.
· اگه دوست داری و بلدی، از وقفه (Interrupt) برای تشخیص فشار دکمهها استفاده کن که امتیاز خلاقیت داره.
· حتماً اسمگذاری متغیرها و برچسبها رو مناسب انجام بده و کامنتگذاری رو به اندازهای انجام بده که من بتونم برنامه رو راحت بخونم و بررسی کنم.
---
بخش سوم: الگوریتم پردازشی اصلی بازی
۱. حرکت هدف: هدف به صورت رفت و برگشت (غیرخطی) حرکت میکنه. هر بار یه گام به چپ یا راست میره، و وقتی به لبه رسید، جهت عوض میشه.
۲. تشخیص شلیک: وقتی دکمه شلیک فشرده شد، موقعیت فعلی هدف رو با موقعیت وسط مقایسه کن. به عنوان "شلیک دقیق" در نظر بگیر.
۳. مدیریت امتیاز و سرعت:
· اگه شلیک دقیق بود: یک امتیاز بهش اضافه کن و مقدار تأخیر حلقه رو کم کن (یعنی هدف تندتر بره).
· اگه شلیک دقیق نبود: یک امتیاز ازش کم کن (تا صفر) و مقدار تأخیر حلقه رو زیاد کن (یعنی هدف کندتر بره).
· این کار رو ادامه بده تا امتیاز به ۱۰ برسه. وقتی به ۱۰ رسید، هدف رو متوقف کن و امتیاز نهایی رو ثابت روی خروجی نشون بده.
۴. دکمه ریست: با فشردن دکمه ریست، همه متغیرها (موقعیت، جهت، امتیاز، و مقدار تأخیر) به حالت اولیه برگردن و بازی از اول شروع بشه.
---
تذکر آخر:
لطفاً اول مدار رو توی Proteus ببند و آدرس پورتهای ورودی و خروجی رو دقیق مشخص کن، بعد کدنویسی رو شروع کن. حتماً باید بشه توی شبیهسازی، سیگنالهای خوندن/نوشتن حافظه و I/O رو مشاهده کرد. بدون تأیید اولیه مدار، شروع به کدنویسی نکن.
اگه چیزی مبهم بود یا سوالی داشتین، بهم بگین.
دو سه روز وقت داره
مهارت ها و تخصص های مورد نیاز
مهلت برای انجام
2روز
وضعیت مناقصه
در حال انجام
درباره کارفرما
عضویت سیزده سال پیش
نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟
قادر به انجام این پروژه هستید؟
تا کنون 16 پیشنهاد قیمت از سمت فریلنسرها برای این پروژه ارسال شده
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار