بازی هدفگیری با دکمه
سلام. این پروژهایه که باید برام انجام بدی. لطفاً دقیقاً طبق همین نکاتی که میگم پیش برو. همهچیز رو ساده و روون مینویسم تا موقع کپی کردن، فرمتش به هم نریزه. --- عنوان پروژه: بازی هدفگیری با دکمه (هدف متحرک) توضیح کلی بازی: یک هدف روی یک ردیف چراغ (یا صفحه نمایش) رفت و برگشت میکنه. کاربر باید دقیقاً وقتی هدف به وسط رسید، دکمه شلیک رو بزنه. اگه درست بزنه، یک امتیاز میگیره و هدف تندتر میشه. اگه اشتباه بزنه (زود یا دیر)، یک امتیاز کم میشه و هدف کندتر میشه. بازی تا رسیدن به ۱۰ امتیاز ادامه پیدا میکنه و در آخر امتیاز نهایی رو نشون میده. --- بخش اول: سختافزار (مبتنی بر 8086) ۱. ریزپردازنده 8086: · حتماً باید از 8086 استفاده کنی. · میتونی به انتخاب خودت حالت مینیموم یا ماکزیموم رو استفاده کنی. · باید گذرگاه آدرس (Address Bus)، گذرگاه داده (Data Bus) و سیگنالهای کنترلی مثل RD, WR, M/IO, ALE رو درست پیادهسازی کنی. · نحوه اتصال 8086 به حافظه و I/O باید دقیقاً مطابق با زمانبندی گذرگاه و آدرسدهی استاندارد 8086 باشه. · توی نرمافزار Proteus باید بشه عملکرد پایههای 8086 رو دید؛ مثلاً خوندن دستور از حافظه و تبادل داده با I/O باید به وضوح قابل مشاهده و تست باشه. ۲. حافظه: · برای اجرای برنامه و ذخیره دادهها، باید حداقل یک ماژول حافظه (RAM یا ROM) توی مدار بذاری. · خودت تصمیم بگیر که ROM رو برای برنامه بذاری یا RAM رو برای داده، یا هر دو رو ترکیبی استفاده کنی. فقط باید با ساختار سیستم هماهنگ باشه. ۳. ورودی/خروجی (I/O): · حتماً باید حداقل یک پورت I/O توی مدار باشه تا 8086 بتونه با محیط بیرون ارتباط برقرار کنه. · میتونی I/O رو به یکی از این دو روش طراحی کنی: روش اول: استفاده از چیپهای آماده مثل 8255، 8251، 8279، 8253 یا ADC0804. روش دوم: خودت با استفاده از Decoder، Latch و سیگنالهای RD/WR، یک پورت ساده ورودی یا خروجی بسازی. ۴. ورودی سیستم (حداقل دو ورودی قابل تست): · دکمه شلیک (Fire) · دکمه ریست یا شروع جدید (Reset/New Game) (نوع ورودیها کاملاً آزاده، اما همین دوتا کلید ساده کافیه.) ۵. خروجی قابل مشاهده (حداقل یکی): · برای نمایش موقعیت هدف و امتیاز، میتونی از LCD، ردیف LEDهای کاراکتری، یا ۷-سگمنت استفاده کنی. · پیشنهاد من: برای نمایش حرکت هدف از یه ردیف LED و برای نمایش امتیاز از ۷-سگمنت استفاده کن. میتونی Buzzer هم برای اعلام شلیک موفق یا ناموفق بذاری. · به Buzzer صداهای مختلف بده (مثلاً برای موفقیت یه صدای بلند و برای شکست یه صدای کوتاه). --- بخش دوم: نرمافزار (زبان اسمبلی 8086) · کل برنامه رو باید به زبان اسمبلی 8086 بنویسی و با آدرسهایی که توی سختافزار مشخص کردی، هماهنگ کنی. · حتماً باید از زیرروالهای جداگانه استفاده کنی. حداقل این زیرروالها رو داشته باش: ۱. زیرروال حرکت هدف (بهروز کردن موقعیت و تغییر جهت در لبهها) ۲. زیرروال بررسی شلیک (مقایسه موقعیت فعلی با موقعیت وسط) ۳. زیرروال نمایش امتیاز ۴. زیرروال مدیریت سرعت (زیاد یا کم کردن مقدار تأخیر) · از پشته (Stack) برای ذخیره موقت ثباتها موقع فراخوانی زیرروالها استفاده کن. همچنین وضعیت بازی مثل موقعیت، جهت، امتیاز و مقدار تأخیر رو هم توی پشته ذخیره کن. · اگه دوست داری و بلدی، از وقفه (Interrupt) برای تشخیص فشار دکمهها استفاده کن که امتیاز خلاقیت داره. · حتماً اسمگذاری متغیرها و برچسبها رو مناسب انجام بده و کامنتگذاری رو به اندازهای انجام بده که من بتونم برنامه رو راحت بخونم و بررسی کنم. --- بخش سوم: الگوریتم پردازشی اصلی بازی ۱. حرکت هدف: هدف به صورت رفت و برگشت (غیرخطی) حرکت میکنه. هر بار یه گام به چپ یا راست میره، و وقتی به لبه رسید، جهت عوض میشه. ۲. تشخیص شلیک: وقتی دکمه شلیک فشرده شد، موقعیت فعلی هدف رو با موقعیت وسط مقایسه کن. یه بازه خطای کوچیک (مثلاً ۱ واحد به چپ یا راست وسط) رو به عنوان "شلیک دقیق" در نظر بگیر. ۳. مدیریت امتیاز و سرعت: · اگه شلیک دقیق بود: یک امتیاز بهش اضافه کن و مقدار تأخیر حلقه رو کم کن (یعنی هدف تندتر بره). · اگه شلیک دقیق نبود: یک امتیاز ازش کم کن (تا صفر) و مقدار تأخیر حلقه رو زیاد کن (یعنی هدف کندتر بره). · این کار رو ادامه بده تا امتیاز به ۱۰ برسه. وقتی به ۱۰ رسید، هدف رو متوقف کن و امتیاز نهایی رو ثابت روی خروجی نشون بده. ۴. دکمه ریست: با فشردن دکمه ریست، همه متغیرها (موقعیت، جهت، امتیاز، و مقدار تأخیر) به حالت اولیه برگردن و بازی از اول شروع بشه. --- تذکر آخر: لطفاً اول مدار رو توی Proteus ببند و آدرس پورتهای ورودی و خروجی رو دقیق مشخص کن، بعد کدنویسی رو شروع کن. حتماً باید بشه توی شبیهسازی، سیگنالهای خوندن/نوشتن حافظه و I/O رو مشاهده کرد. بدون تأیید اولیه مدار، شروع به کدنویسی نکن. اگه چیزی مبهم بود یا سوالی داشتی، بهم بگو. موفق باشی.
امتیاز : 0 از 10
فایل ضمیمه
هیچ فایلی ضمیمه نشده است
- اطلاعات پروژه
- 19974کد پروژه
-
ساخت ، سخت افزار ، طراحی مدار
دسته بندی - 27 تیر 1405تاریخ ثبت
- 1 روزمهلت اجرا
- 5,000 تومانحداقل بودجه
- 200,000,000 تومانحداکثر بودجه
- 15 درصد ضمانت اجرا
- آماده دریافت پیشنهادها وضعیت
تایم لاین پروژه
درخواست پشتیبانی-
در انتظار پرداخت
پرداخت تعرفه ثبت پروژه های غیر رایگان
-
در حال بررسی
برسی و تایید پروژه از طرف مدیرت سایت
-
آماده دریافت پیشنهادها
تایید پروژه و نمایش برای مجریان
-
در انتظار پرداخت هزینه پروژه
پرداخت هزینه اجرای پروژه توسط کارفرما
-
در انتظار پرداخت ضمانت اجرا
پرداخت مبلغ ضمانت اجرا توسط مجری
-
در حال انجام
پروژه شما درحال انجام می باشد
-
انجام شد
اتمام اجرای پروژه
لیست پیشنهادها
هیچ پیشنهادی ارسال نشده است
در حال بارگذاری...