آموزش کار با پین‌های ورودی/خروجی I/O در PIC و کامپایلر CCS C

در بخش قبلی این مجموعه آموزشی یک نمایشگر سون سگمنت تک رقمی را برای شماره اعداد صفر تا نه راه اندازی کردیم و اشاره ای به چگونگی کار با پایه های ورودی خروجی کردیم.

در این بخش ضمن توضیح کامل تر در مورد نحوه ی کار کردن با پایه های میکروکنترلر (خواندن و نوشتن) که یکی از پرکاربردترین بخش ها می باشد، به چگونگی ایجاد تاخیر در برنامه می پردازیم و ضمن آن به عنوان تمرین برنامه یک شمارنده حلقوی (Ring Counter) را می نویسیم.

توابع کار با پایه های ورودی/خروجی (I/O)

یک (high) کردن پایه pin

output_high(pin)

مثال : یک کردن پایه اول از پورت A

output_high(PIN_A0);

 

صفر (low) کردن پایه pin

output_low (pin)

مثال : صفر کردن پایه اول از پورت A

output_low(PIN_A0);

 

نوشتن یک بایت (value) بر روی پورت x

output_x(value)

مثال : نوشتن عدد 0xf0 بر روی پورت B

OUTPUT_B(0xf0);

 

نوشتن یک یا صفر (value) بر روی پایه pin

output_bit(pin,value)

مثال : نوشتن صفر بر روی پایه اول از پورت B

output_bit(PIN_B0, 0);

 

خواندن مقدار (صفر یا یک) پایه (pin)

input(pin)

مثال : خواندن مقدار پایه دوم از پورت B و ریختن در متغیر D

D = input(PIN_B1);

نکته : خروجی و ورودی بودن پایه ها را طبق آموزش های جلسات قبل به راحتی در codewizard می توان تنظیم کرد و لازم به تنظیم آنها در برنامه وجود ندارد.

مطلب پیشنهادی:  راه اندازی LCD کاراکتری و ADC در میکروکنترلر PIC

تمرین: تفاوت دستور 4 با دستور 1 و 2 چیست؟

توابع ایجاد تاخیر

تاخیر برحسب میلی ثانیه :

delay_ms(x);

x تاخیر لازم برحسب میلی ثانیه از 0 تا 65535 می باشد.

 

تاخیر برحسب میکرو ثانیه

delay_us(x);

x تاخیر لازم برحسب میکرو ثانیه از 0 تا 65535 می باشد.

شمارنده حلقوی با PIC

شکل زیر شماتیک مدار را نشان می دهد. برای نمایش عملکرد شمارنده از Bargraph استفاده شده است.

1

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

2

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

3

4

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

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

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

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

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