ارسال پیشنهاد

0

تعداد پیشنهادها

اشتراک گذاری

گزارش تخلف

گزارش مالی

بازی هدف‌گیری با دکمه

سلام. این پروژه‌ایه که باید برام انجام بدی. لطفاً دقیقاً طبق همین نکاتی که می‌گم پیش برو. همه‌چیز رو ساده و روون می‌نویسم تا موقع کپی کردن، فرمتش به هم نریزه. --- عنوان پروژه: بازی هدف‌گیری با دکمه (هدف متحرک) توضیح کلی بازی: یک هدف روی یک ردیف چراغ (یا صفحه نمایش) رفت و برگشت می‌کنه. کاربر باید دقیقاً وقتی هدف به وسط رسید، دکمه شلیک رو بزنه. اگه درست بزنه، یک امتیاز می‌گیره و هدف تندتر می‌شه. اگه اشتباه بزنه (زود یا دیر)، یک امتیاز کم می‌شه و هدف کندتر می‌شه. بازی تا رسیدن به ۱۰ امتیاز ادامه پیدا می‌کنه و در آخر امتیاز نهایی رو نشون میده. --- بخش اول: سخت‌افزار (مبتنی بر 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 رو مشاهده کرد. بدون تأیید اولیه مدار، شروع به کدنویسی نکن. اگه چیزی مبهم بود یا سوالی داشتی، بهم بگو. موفق باشی.

hassan1234
hassan1234

امتیاز : 0 از 10

پروتئوس (Proteus)
فایل ضمیمه

هیچ فایلی ضمیمه نشده است

  • اطلاعات پروژه
  • 19974کد پروژه
  • ساخت ، سخت افزار ، طراحی مدار

    دسته بندی
  • 27 تیر 1405تاریخ ثبت
  • 1 روزمهلت اجرا
  • 5,000 تومانحداقل بودجه
  • 200,000,000 تومانحداکثر بودجه
  • 15 درصد ضمانت اجرا
  • آماده دریافت پیشنهادها وضعیت

تایم لاین پروژه

درخواست پشتیبانی
  • در انتظار پرداخت

    پرداخت تعرفه ثبت پروژه های غیر رایگان

  • در حال بررسی

    برسی و تایید پروژه از طرف مدیرت سایت

  • آماده دریافت پیشنهادها

    تایید پروژه و نمایش برای مجریان

  • در انتظار پرداخت هزینه پروژه

    پرداخت هزینه اجرای پروژه توسط کارفرما

  • در انتظار پرداخت ضمانت اجرا

    پرداخت مبلغ ضمانت اجرا توسط مجری

  • در حال انجام

    پروژه شما درحال انجام می باشد

  • انجام شد

    اتمام اجرای پروژه

لیست پیشنهادها

هیچ پیشنهادی ارسال نشده است

در حال بارگذاری...