آموزش AVR

برنامه نویسی LCD کاراکتری در کدویژن AVR

سلام. توابع برنامه نویسی ال سی دی کاراکتری در کدویژن + آموزش استفاده (آموزش AVR #19) را آماده کردیم.

راه اندازی ال سی دی کاراکتری با میکروکنترلر AVR

در قسمت قبلی آموزش ما به طور کامل با استفاده از مد CTC در تایمر کانتر یک در میکروکنترلر AVR آشنا شدیم. پیشنهاد میکنیم قسمت های قبلی آموزش AVR را بخوانید و سپس به این قسمت بیایید :

قسمت قبل : برنامه نویسی تایمر / کانتر یک در مود CTC 

در این قسمت ما به طور کامل با توابع ال سی دی کاراکتری در کدویژن آشنا میشویم تا بتوانیم LCD کاراکتری را با استفاده از کامپایلر Codevision و میکروکنترلر های AVR راه اندازی کنیم. برویم سراغ توابع !

برای یادگیری آردوینو (برنامه نویسی، ساخت ربات، ارتباط با اندروید) روی دوره آموزش آردوینو کلیک کنید.
برای یادگیری کامل الکترونیک روی دوره آموزش الکترونیک کلیک کنید.

توابع برنامه نویسی ال سی دی کاراکتری در کدویژن

برای اتصال و راه اندازی ال سی دی کاراکتری به میکروکنترلر AVR باید از توابع زیر استفاده کنید. تابع زیر برای فراخوانی کتابخانه ال سی دی استفاده میشود.

lcd.h

در این کتابخانه 11 تابع وجود دارد که همه آن ها را معرفی میکنیم. توابع این کتابخانه به دو دسته تقسیم میشوند. 4 تابع سطح پایین و 7 تابع سطح بالا هستند.

  1. توابع سطح پایین: این توابع ارتباط زیادی با سخت افزار دارند و برنامه نویسی آن ها بیشتر به زبان ماشین شبیه است.

  2. توابع سطح بالا: این توابع ارتباط کمتری با سخت افزار دارند و برنامه نویسی آن ها ساده تر است.

توابع پایین خیلی عجیب غریب هستند اما نگران نباشید. زیرا ما از همه ی این توابع استفاده نمیکنیم. ما اغلب از توابع سطح بالا استفاده میکنیم زیرا توابع سطح پایین برای استفاده از کاراکتر ویژه و … استفاده میشود.

توابع سطح پایین برنامه نویسی LCD کاراکتری در کدویژن

در اینجا توابع سطح پایین را معرفی میکنیم.

1. با نوشتن این تابع در برنامه، میکروکنترلر منتظر آماده شدن ال سی دی کاراکتری برای دریافت اطلاعات میشود.

void _lcd_ready(void);

2. وظیفه ی این تابع دادن مقدار به رجیستر درون ال سی دی می باشد یعنی برای تنظیم کردن LCD استفاده میشود.

void _lcd_write_data(unsigned char data);

3. این تابع اطلاعات را در آدرس مشخص شده در حافظه LCD وارد میکند.

void lcd_write_byte(unsigned char addr, unsigned char data);

4. این تابع اطلاعات درون آدرس مشخص از حافظه LCD را میخواند.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید
unsigned char lcd_read_byte(unsigned char addr);

توابع سطح بالا برنامه نویسی LCD کاراکتری در کدویژن

در اینجا توابع سطح بالا را معرفی میکنیم.

5. این تابع مکان نمای LCD را به ستون x و سطر y منتقل میکند.

void lcd_gotoxy(unsigned char x, unsigned char y);

6. این تابع صفحه نمایش را پاک کرده و مکان نما به سطر صفر و ستون صفر منتقل میشود.

void lcd_clear(void);

7. این تابع کاراکتر “c” (در اینجا اسم متغیر c تعریف شده است) را بر روی نمایشگر LCD نمایش میدهد.

void lcd_putchar(char c);

8. این تابع رشته str (اسم متغیر str تعریف شده) را که در حافظه SRAM ذخیره شده است بر روی LCD نمایش میدهد.

void lcd_puts(char *str);

9. این تابع رشته str که در حافظه FLASH وجود دارد رو روی ال سی دی نمایش داده میشود.

void lcd_putsf(char flash *str);

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

unsigned char lcd_init(unsigned char lcd_columns);

11. این تابع بایت کنترلی را در LCD مینویسد.

void lcd_control (unsigned char control);

این قسمت آموزش AVR هم تمام شد در قسمت بعدی به طور کامل با مد PWM آشنا خواهیم شد.

قسمت بعد : بزودی …

میخواهید برنامه نویسی STM32 را یاد بگیرید؟

دوره آموزش STM32

میخواهید الکترونیک را یاد بگیرید؟

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

میخواهید آردوینو را به صورت پروژه محور یاد بگیرید؟ برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید

برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام آیرنکس عضو شوید.

محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

1 دیدگاه

  1. سلام و روزبخیر
    من در کد ویژن کلمه علی را نوشتم و میخواهم از چپ به راست حرکت کنه و 3 مرتبه تکرار بشه.
    کلمه ظاهر میشود در LCD ولی 3 مرتبه تکرار نمیشه.میشه لطفا کمکم کنید…

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

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