Description
دانشگاه صنعتی شریفدانشکده مهندسی برق درس ساختار کامپیوتر و ریزپردازنده و آزمایشگاه
)754-25(
آزمایش شماره 5
پیاده سازي تاس با میکروکنترلر 32PICتهیه کنندگان:
دکتر محمدرضا موحّّدینموژان جواهری پیعاطفه سهرابی زادهسینا رادمهر
به نــــام خـــــدا
پیادهسازی تاس با میکروکنترلر 32PIC
هدف از این آزمایش پیاده سازی ماشین تولید اعداد رندوم در بازه 6-1 و نمایش عدد رندوم تولیدی برروی segment-7 می باشد. شما در این آزمایش با قابلیت های Timer و GPIO از میکروکنترلر PIC32 آشنا خواهید شد. همچنین پیاده سازی الگوریتم polling را تمرین خواهید کرد.
پیش از آزمایشگاه:
الف( فایل آموزشی میکروکنترلر PIC32 که برروی سایت قرار گرفته را مطالعه کنید تا با نحوه راه اندازی این میکرو آشنا شوید.
ج( فایل حاوی کلیه دستورات MIPS که همراه با این دستور کار برروی سایت درس قرار داده شده را مرور کنید.
مشخصات طرح:
در این جلسه از آزمایشگاه شما می بایست بازی تاس را با میکروکنترلر PIC32 پیاده سازی کنید. نحوه بازی بدین صورت است که بازیکن ،در زمان دلخواه، دکمه ای را که در اختیارش قرار داده شده می فشارد. با فشرده شدن این دکمه، عددی تصادفی در بازه 6-1 برروی bar-graph نشان داده می شود. بازی به همین ترتیب ادامه پیدا می کند یعنی می بایست با هربار زدن دکمه مراحل تولید عدد تصادفی جدید و نمایش آن روی bar-graph تکرار شود.
نحوه پیاده سازی:
پیش از شروع به نوشتن دستورات خواسته شده، به یاد داشته باشید که باید رجیسترهای مورد نیاز را مقداردهی نمایید. این رجیسترها عبارتند از: )رجوع کنید به فایل آموزشی میکروکنترلر PIC32(
– رجیسترهای مربوط به بخش بندی حافظه RAM و Program Flash در میکروکنترلر
– رجیسترهای مربوط به انتخاب مٌٌد کاری User برای میکروکنترلر
– رجیسترهای راه اندازی کلاک داخلی میکرو
– *رجیسترهای راه اندازی Timer
– *رجسیترهای GPIO برای تعیین پایه های ورودی و خروجی میکروکنترلر. در این طرح برای دریافت اطلاعات دکمه از بازیکن به 1 پایه ورودی و برای نمایش عدد تاس ۳ پایه خروجی نیاز دارید.
*موارد ستاره دار را دستی باید انجام دهید.
فشرده شدن کلید:
همانطور که می دانید برای اطلاع از یک رخداد خارجی، می توان از الگوریتم polling استفاده نمود .عملکرد این الگوریتم بدین صورت است که دائماً چک می شود که آیا این رخداد )در اینجا فشرده شدن کلید( محقق شده است یا خیر. در این آزمایش پس از اینکه پایه متصل به دکمه را بعنوان ورودی تعریف کردید، با استفاده از polling زمان فشرده شدن کلید را تشخیص دهید.
الگوریتم تولید اعداد تصادفی:
یکی از روش های تولید اعداد تصادفی استفاده از Timer های میکروکنترلر است. هر Timer در واقع یک شمارنده n بیتی است که با هربار آمدن لبه کلاک، مقدار این شمارنده افزایش می یابد تا به 1- n2 برسد .سپس شمارش مجددا از صفر آغاز می شود. پس در هر لحظه دلخواه اگر محتوای شمارنده را بخوانیم ،حاصل یک عدد تصادفی در بازه 0 تا 1- n2 است .
مقدار دهی رجیستر های تایمر را باید با توجه به فایل مربوطه انجام دهید.
توجه کنید که در بازی تاس می خواهیم عددی طبیعی در بازه 6-1 باشد لذا با استفاده از تبدیل های خطی ریاضی، عدد خروجی Timer را به این بازه map کنید .
بخش اول:
قطعه کدی بنویسید که در صورت فشرده شدن یک کلید یکی از LED ها را روشن و در صورت فشردن دوباره ی کلید، آن LED خاموش شود .)سعی کنید با کد، نویز کلید را بی اثر کنید( بخش دوم:
کد تاس را با استفاده از تایمر پیاده سازی کنید.
بخش امتیازی:
پس از تحویل بخش بازی تاس، درصورتیکه وقت باقی باشد می توانید با ارایه این آزمایش های امتیازی نمره مثبت دریافت کنید.
آزمایش امتیازی ۱:
تاس را بر روی segmant-7 نمایش دهید.
آزمایش امتیازی ۲- شماره دانشجویی شناور:
در این آزمایش، از یک عدد segment-7 بعنوان نمایشگر استفاده کنید. سپس به ترتیب از چپ به راست ارقام شماره دانشجویی یکی از اعضای گروه را بر روی این segment-7 نمایش دهید. توجه کنید که بازه زمانی نمایش هر رقم را باید به اندازه ای تنظیم کند که فرصت برای خواندن این رقم باشد. بطور مثال فرض کنید که شماره دانشجویی بصورت 93101234 باشد. در اینصورت از سمت چپ ترین رقم )در اینجا 9( شروع کرده و آن را به مدت Δt برروی segment-7 نمایش دهد. بعد از سپری شدن Δt، رقم بعدی )در اینجا 3( را برروی segment-7 نمایش دهید و به همین ترتیب پیش بروید تا به رقم آخر شماره دانشجویی )در اینجا 4( برسید. سپس مجدداً از رقم سمت چپ شروع به نمایش کنید و همین روند را دائماً تکرار کنید. آزمایش امتیازی ۳- بازی LED و رقص نور:
در این آزمایش ،۱ عدد دکمه و ۸ عدد LED نیاز دارید. هربار که دکمه فشرده می شود اولین LED از سمت چپ روشن شود، سپس به تدریج به سمت راست ترین LED حرکت کند تا مجددامجدداً از اولین LED سمت چپ، طرح) pattern( شروع شود. هربار که دکمه زده می شود، یک LED روشن به طرح در حال نمایش اضافه می شود .
برای درک بهتر نحوه عملکرد این مدار شکل های زیر را ملاحظه کنید:
1- تمامی LED ها پیش از فشرده شدن دکمه خاموش هستند
2- دکمه زده شده و اولین LED از سمت چپ روشن می شود
3- سپس LED روشن شروع به حرکت به سمت راست می کند
4- مجددا دکمه زده می شود و اولین LED سمت چپ روشن شده و به طرح اضافه می گردد
5- حال طرح جدید شروع به حرکت به سمت راست می کند تا به آخرین LED برسد
6- سپس طرح مجددا از سمت چپ وارد شده و به چرخش خود ادامه می دهد




Reviews
There are no reviews yet.