آموزش میکروکنترلرهای PIC با یک تمرین تایمر ساده

در ادامه مجموعه آموزش های میکروکنترلر PIC توسط کامپایلر CCS C ، در این قسمت به عنوان تمرین آموزش های جلسات قبل، برنامه یک تایمر ساده که قابلیت زمان گیری تا 99 ثانیه را دارد می نویسیم. در جلسات آینده با استفاده از تایمرهای میکروکنترلر، همین برنامه را به شکل دقیق تر می نویسیم. شکل زیر شماتیک این برنامه را نشان می دهد.

1

عملکرد مدار به اینگونه است که با وصل کلید Start/Stop تایمر شروع به شمارش می کند و با قطع آن تایمر می ایستد و آخرین عدد شمارش شده بر روی سون سگمنت باقی می ماند. همچنین در هر لحظه با زدن کلید Reset تایمر به عدد صفر باز می گردد.

در این برنامه ما از وقفه شماره دو برای کلید Reset استفاده کرده ایم و کدهای مربوط به کلید Start/Stop را در حلقه اصلی برنامه نوشتیم.

در بخش های قبلی آموزش در مورد راه اندازی سون سگمنت تک رقمی توضیح دادیم. در این آموزش نحوه ی کار با سون سگمنت چند رقمی را یاد می گیریم.

برای شروع مانند جلسات قبلی آموزش، تنظیمات نوع میکروکنترلر و کلاک را انجام می دهیم. تنظیمات پایه های میکروکنترلر را مطابق شکل زیر انجام می دهیم.

2

در ابتدای برنامه متغیری برای شمارش زمان به نام counter تعریف می کنیم. همچنین در وقفه مربوط به کلید Reset مقدار این شمارنده را صفر می کنیم. در ابتدای حلقه main کدهای  مربوط به سون سگمنت کاتد مشترک را اضافه می کنیم.

مطلب پیشنهادی:  آموزش وقفه های خارجی PIC

متغیر i را برای ایجاد زمان یک ثانیه تعریف می کنیم. همچنین دو متغیر با نام های first_digit و second_digit برای نمایش رقم یکان و دهگان بر روی سون سگمنت تعریف می کنیم.

3

در حلقه ی دائمی برنامه یا همان حلقه while(True) ، یک حلقه while به منظور بررسی وضعیت کلید Start_Stop تعریف می کنیم و تا زمانی که این کلید وصل می باشد، کدهای درون این حلقه اجرا می شود.

در درون این حلقه برای نمایش رقم یکان و دهگان، ابتدا پایه های کنترلی هر رقم را با توجه به این که سون سگمنت کاتد مشترک است صفر می کنیم و سپس رقم یکان و دهگان را بر روی هر سگمنت حدود 5 میلی ثانیه نمایش می دهیم و به دلیل تکرار این فرایند، اعداد روی سگمنت ثابت نشان داده خواهد شد.

برای ایجاد زمان یک ثانیه از حلقه for استفاده کرده ایم. مقدار عدد لازم برای تکرار این حلقه برای ایجاد زمان یک ثانیه به صورت تقریبی و با آزمون و خطا به دست می آید.

در ادامه برنامه نیز در صورتی که کلید Start_Stop وصل نباشد، عدد شمارنده را روی سون سگمنت نمایش می دهیم.

4

شکل زیر نتایج شبیه سازی را نشان می دهد.

  • تمرین : کد مربوط به ریست کردن تایمر را بدون وقفه بنویسید.
  • تمرین : با استفاده از سون سگمنت 4 رقمی محدوده تایمر را تا عدد 9999 افزایش دهید.
مطلب پیشنهادی:  کار با میکروکنترلر PIC18F4550 و MPLABX IDE

امیدوارم این بخش هم برای شما مفید باشد. اگر سوالی داشتید در بخش نظرات مطرح کنید.

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

2 دیدگاه

  1. سلام جواب این تمرین را داریدتمرین : با استفاده از سون سگمنت 4 رقمی محدوده تایمر را تا عدد 9999 افزایش دهید.

  2. ضمن عرض سلام و خسته نباشید ,ممنون از سایت خوب و پر محتواتون.