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

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

در ادامه مجموعه آموزش های میکروکنتر PIC توسط کامپایلر CCS C ، در این بخش به آموزش نحوه ی استفاده از LCD کاراکتری با استفاده از میکروکنترلر PIC می پردازیم و همزمان بخش ADC میکروکنترلر را نیز راه اندازی کرده و به صورت ساده نتایج تبدیل ADC را روی LCD نمایش می دهیم.

بخش اول، راه اندازی ADC :

اگر آشنایی قبلی با واحد ADC میکروکنترلرها ندارید، پیشنهاد می کنم ابتدا این مطلب را مطالعه بفرمایید.

برای این برنامه از میکروکنترلر PIC16F877A استفاده می کنیم. مطابق آموزش های جلسات قبلی این میکروکنترلر را در بخش تنظیمات انتخاب کرده و فرکانس کلاک میکروکنترلر را روی ۸MHZ تنظیم می کنیم.

از سمت چپ بخش Analog را انتخاب می کنیم.

1

در بخش Analog Input پایه های ورودی که قصد استفاده به عنوان ورودی آنالوگ را داریم و همچنین پایه های مرجع را (در صورتی که میخواهیم مرجعی غیر از تغذیه میکروکنترلر برای مبدل ADC در نظر بگیریم) تعیین می کنیم.

در بخش Unites تعیین می کنیم که نتایج چند بیتی باشد و در بخش پایین آن کلاک بخش ADC را تعیین می کنیم.

بخش دوم راه اندازی LCD کاراکتری :

اگر با LCD های کاراکتری آشنایی قبلی ندارید، پیشنهاد می کنم ابتدا این مطلب را در مورد LCD های کاراکتری مطالعه کنید.

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

برای استفاده از LCD کاراکتری توسط میکروکنترلر PIC ، از سمت چپ پنجره تنظیمات بخش LCD(External) را انتخاب می کنیم. با زدن تیک  Use LCD می توانیم تعیین کنیم که پایه های LCD به کدامیک از پایه های میکروکنترلر وصل می شود.

با زدن تیک Include Example یک برنامه نمونه برای کار با LCD تولید می شود که می توانید برای یادگیری بیشتر از آن استفاده کنید.

2

بخش سوم، نمایش نتایج تبدیل ADC بر روی LCD :

کد زیر ولتاژ آنالوگ روی پایه A0 میکروکنترلر را توسط واحد ADC خوانده و بر روی LCD کاراکتری نمایش می دهد.

// Melec.ir PIC CCS C courses
#define LCD_RS_PIN PIN_C0
#define LCD_RW_PIN PIN_C1
#define LCD_ENABLE_PIN PIN_C2
#define LCD_DATA4 PIN_C3
#define LCD_DATA5 PIN_C4
#define LCD_DATA6 PIN_C5
#define LCD_DATA7 PIN_C6
#include <16F877A.h>
#device ADC=10
#use delay(crystal=8000000)
#include <lcd.c>
void main()
{
float32 ADC_result;
  lcd_init(); 
  lcd_gotoxy(1,1);
  lcd_putc("Melec.ir Courses");
    lcd_gotoxy(1,2);                 
  lcd_putc("ADC reading:");
    setup_adc(ADC_CLOCK_DIV_32);      
  setup_adc_ports(AN0);             
  set_adc_channel(0);               
   while(TRUE)
  {
    ADC_result = read_adc();
    lcd_gotoxy(13,2);                
    printf(lcd_putc,"%4f",( ADC_result *0.0049));
    delay_ms(10);                   
  }
}

در بخش اول با عبارات define پایه های LCD که به میکروکنترلر وصل می شوند مشخص شده اند. این بخش توسط خود برنامه با انجام تنظیمات LCD در بخش wizard نرم افزار که در بخش قبلی توضیح داده شد ایجاد می شود.

یک متغیر به نام ADC_result برای ذخیره سازی نتایج تبدیل ADC ایجاد شده است. برای نمایش مقدار اعشاری ولتاژ این متغیر را از نوع float تعریف کرده ایم.

حتما در ادامه این مطلب را هم بخوانید:  آموزش برنامه نویسی میکروکنترلرهای PIC به زبان C

توسط تابع ()lcd_init که توسط خود نرم افزار ایجاد می شود تنظیمات اولیه LCD انجام می شود.

توسط تابع lcd_gotoxy(x, y) می توان محل نوشتن متن مورد نظر بر روی LCD را در سطر y و ستون x تنظیم کنیم.

توسط تابع lcd_putc(“String”) می توانیم عبارت نوشته شده به جای String را روی LCD نمایش دهیم.

به عنوان مثال برای نمایش متن Mele.ir در سطر اول و ستون سوم به بعد LCD :

  lcd_gotoxy(3,1);
  lcd_putc("Melec.ir");

در ادامه سه تابع نوشته شده برای تنظیمات ADC است که توسط خود نرم افزار با انجام تنظیمات بخش های قبلی ایجاد می شوند.

تابع setup_adc فرکانس کلاک میکروکنترلر را تعیین می کند.

توابع setup_adc_ports و set_adc_channel پایه ورودی ADC میکروکنترلر را تعیین می کنند که در این مثال پایه A0 به عنوان ورودی آنالوگ تنظیم شده است.

در حلقه ی while(TRUE) که حلقه ی دائمی برنامه است، ابتدا توسط تابع read_adc  نتایج تبدیل ADC را خوانده و در متغیر ADC_result ذخیره سازی می کنیم، سپس مقدار متغیر ADC_result را با ضرب در عدد ۰٫۰۰۴۹ توسط تابع استاندارد printf به شکل یک رشته در آورده و توسط تابع lcd_putc بر روی LCD نمایش می دهیم.

عدد ۰٫۰۰۴۹ به صورت تقریبی است و از تقسیم عدد ۵ بر عدد ۱۰۲۴ به دست آمده است.

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

نتایج شبیه سازی در نرم افزار پروتئوس:

امیدوارم این بخش از آموزش میکروکنترلر PIC و کامپایلر CCS C برایتان مفید واقع شده باشد.

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

سربلند و پیروز باشید.

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

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

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

پاسخ دهید

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

3 × 4 =