خانه / میکروکنترلرها / میکروکنترلر های PIC / مطالب آموزشی میکروکنترلرهای PIC / آموزش میکروکنترلرهای PIC ،کامپایلر CCS C : جلسه پنجم (تمرین)

آموزش میکروکنترلرهای PIC ،کامپایلر CCS C : جلسه پنجم (تمرین)

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

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

 

1

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

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

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

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

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

 

2

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

حتما در ادامه این مطلب را هم بخوانید:  راه اندازی ماژول TM1637 به وسیله میکروکنترلر AVR با کامپایلر بسکام

در ابتدای حلقه main کدهای  مربوط به سون سگمنت کاتد مشترک را اضافه می کنیم.

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

 

3

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

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

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

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

حتما در ادامه این مطلب را هم بخوانید:  آموزش میکروکنترلرهای PIC ، کامپایلر CCS C : جلسه ششم (تنظیمات کلاک)

 

4

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

تمرین : کد مربوط به ریست کردن تایمر را بدون وقفه بنویسید.

تمرین : با استفاده از سون سگمنت ۴ رقمی محدوده تایمر را تا عدد ۹۹۹۹ افزایش دهید.

 

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

قسمت های قبلی را در اینجا ببینید.

این نوشته را با دوستانتان در تلگرام به اشتراک بگذارید :

درباره ی محمد حسین کوهی قمصری

دانشجوی برق گرایش الکترونیک، کارشناسی

پاسخ دهید

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

2 × دو =