آموزش راه اندازی LCD کاراکتری با میکروکنترلر STM32 + کتابخانه

 سلام  امیدوارم حالتون خوب باشه !!

در این قسمت قصد داریم تا با هم آموزش راه اندازی LCD کاراکتری 2 * 16 که شامل کانفیگ  میکرو کنترلر در نرم افزار  STM32CUBEMX و اضافه کردن کتابخانه به KEIL  و نحوه استفاده از اون  هست رو یاد بگیریم. شما میتونید به راحتی از این کتابخونه برای همه میکروکنترلرهای سری STM32  استفاده کنید.

خب در قدم اول نیازه تا اتصالات LCD  رو مطابق تصویر زیر انجام بدیم

 

 

راه اندازی LCD کاراکتری با میکروکنترلر STM32

 

همونطور که در تصویر مشخصه قصد داریم تا LCD رو در مد 4 بیتی راه اندازی کنیم  به همین منظور حداقل اتصالات به این شکله :

  • پایه های D4,D5,D6,D7 , ورودی دیتا 
  • پایه های  کنترلی RS  و EN 
  • GND   زمین(منفی)
  • VCC یا VDD  که تغذیه اصلی برای روشن  LCD هستش که به مثبت 5 ولت وصل میشه (البته LCD  هایی هم هستند که با ولتاژ 3.3 ولت راه اندازی میشن)
  • VEE  که برای تنظیم کنتراست (رزولوشن) استفاده میشه که با استفاده از این پایه میشه وضوح متن روی نمایشگر رو تغییر داد. (بجای استفاده از پتانسیومتر میشه این پایه رو با یک مقاومت حدودا زیر 1 کیلو اهم به زمین وصل کرد)
  • و در نهایت پایه های  A  و  K که مربوط به بک لایت (نور پس زمینه ) LCD  هست رو نیازه تا پایه A رو با یه مقاومت حدود 330 اهم به  5 ولت متصل کنیم.

 

بعد از انجام اتصالات نوبت به کانفیگ میکرو کنترلر میرسه ، مهم نیست چه نوع میکروکنترلری استفاده میکنید یا اینکه حتما پایه هایی که استفاده میکنید از یک پورت و پشت سر هم باشه 

در مرحله اول بعد از اجرای STM32CUBEMX و انتخاب نوع میکروکنترلر مد نظر نیازه تا یه حداقل تنظیماتی انجام بشه :

 

1-تنظیم کلاک میکرو روی کریستال خارجی یا  کلاک داخلی که ما اینجا روی کریستال خارجی که 8MHz هست  قرار دادیم

 

راه اندازی LCD کاراکتری با میکروکنترلر STM32

 

 2- تنظیم کلاک میکرو روی حداکثر فرکانس کاری 72 مگاهرتز ( که بسته به نوع میکروکنترلر انتخابی میتونه متفاوت باشه)

 

راه اندازی LCD کاراکتری با میکروکنترلر STM32

 

3-تعریف 6 پین بصورت خروجی جهت ارتباط با LCD

 

کتابخانه LCD کاراکتری برای میکروکنترلر STM32

 ما در اینجا PB4 تا PB9  رو به همین منظور خروجی تعریف کردیم و همونطور که قبلا هم اشاره کردیم این 6 پین میتونه پایه های مختلفی باشه و نیاز نیست از یک پورت یا به ترتیب باشن . اینکه چطور در کتابخونه پین های مدنظرمون رو تغییر بدیم جلوتر بررسی میکنیم.

همونطور که در تصویر بالا مشخصه 6 پین برای LCD  و 2 پین برای ارتباط با پروگرامر  و 2 پین هم برای کریستال خارجی استفاده شده و ما نیاز به تنظیم دیگه ای نداریم 

 

4-در  تب PROJECT MANAGER مطابق شکل زیر کامپایلر رو  KEIL  انتخاب می کنیم و گزینه  GENERATE CODE  رو می زنیم

 

کتابخانه LCD کاراکتری برای میکروکنترلر STM32

پس از GENERATE کد اون رو با نرم افزار KEIL  که قبلا انتخاب کرده بودیم باز می کنیم. و یکبار کامپایل میکنیم که مطمئن بشیم خطایی نداریم.

 

5-6-7- اضافه کردن کتابخانه LCD  کاراکتری به پروژه : برای این کار مراحل زیر رو به ترتیب باید انجام بدیم 

 

کتابخانه LCD کاراکتری برای میکروکنترلر STM32

 

 

 8-در مرحله اول نیازه تا دوتا پوشه به نام های LCD16X2 و util  که در فایل های ضمیمه موجوده رو در پوشه محل ساخت پروژه کپی کنیم .بعد از اون در محیط کیل در پنجره project سمت چپ با کلیک راست بر روی پوشه اصلی پروژه گزینه add group  رو میزنیم 

 

 

9-10-11-با انجام اینکار یک پوشه جدید ایجاد میشه به نام new group  که نیازه با دوبار کلیک چپ با وقفه  بر روی اون نامش رو تغییر بدیم .این کار رو دوبار انجام میدیم و نام دو پوشه جدید رو به LCD16X2  و util  تغییر میدیم

 

کتابخانه LCD کاراکتری برای میکروکنترلر STM32

11-1 _ 11-2 بعد از انجام این مراحل نیازه تا فایل های مورد نیاز رو به این دو تا group  جدید که نام هاشونو تغییر دادیم اضافه کنیم. برای اینکار با دوبار کلیک چپ بر روی هر پوشه پنجره ای مطابق تصویر زیر باز میشه 

 

کتابخانه LCD کاراکتری برای میکروکنترلر STM32

 

 

در این قسمت هر 4 فایل موجود در پوشه LCD16X2 رو که قبلا در محل پروژه کپی کردیم رو به پوشه LCD16X2  اضافه میکنیم و دو فایل موجود در پوشه util  همین به همین طریق به پوشه util  اضافه می کنیم

12-13-در مرحله بعد نیازه تا مسیر این دو پوشه رو به پروژه معرفی کنیم .برای اینکار روی گزینه option for target  که در تصویر مشخص شده کلیک میکنیم و وارد تب c/c++ میشیم 

              

کتابخانه LCD کاراکتری برای میکروکنترلر STM32

 

 

14-15- حالا در قسمت include paths  روی  ... سمت راست کلیک میکنیم و در پنجره باز شده در قسمت بالا روی قسمت new  کلیک کرده و در قسمت پایین روی ... کلیک کرده و آدرس پوشه LCD16X2  که قبلا در مسیر اصلی پروژه کپی کردیم رو انتخاب میکنیم . همین مراحل را برای اضافه کردن ادرس پوشه util  نیز تکرار میکنیم

 

کتابخانه LCD کاراکتری برای میکروکنترلر STM32

      

 

کتابخانه LCD کاراکتری برای میکروکنترلر STM32

 

16- در تصویر همونطور که مشخصه مسیر این دو پوشه در این قسمت اضافه شدن

کتابخانه LCD کاراکتری برای میکروکنترلر STM32

 

17- خب الان همه چیز آمادس تا بریم سراغ کد نویسی ، در فایل main لازمه تا این کتابخونه رو include   کنیم 

کتابخانه LCD کاراکتری برای میکروکنترلر STM32

 

و بعد از اون  تعریف یک ثابت مانند قسمت پایین شکل بالا ،این بدین منظوره که اگر نیاز بود در پروژه چند lcd  راه اندازی بشه ما به راحتی در هدر LCD16X2.h  بتونیم یک LCD  دیگر هم تعریف کنیم . اگر شما فقط از یک LCD  استفاده می کنید نیاز به تغییر نیست و همانند شکل بالا عمل کنید.

در مرحله بعد که خیلی مهمه باید متناسب با اون 6 پین که برای LCD  انتخاب کردیم بیاییم و تغییر رو در کتابخونه LCD16X2_cfg.c اعمال کنیم .چون ما B4  تا B9 رو انتخاب کردیم در نتیجه :

 

 

حالا اگر شما پورت یا پین دیگه ای رو تنظیم کردید در این هدر به راحتی با توجه به کامنت هایی که جلوی هر قسمت هست میتونید پین مورد نظرتون رو اینجا تغییر بدید

 

18 - توابعی که ما میتونیم جهت کنرلرو راه اندازی LCD  ازشون استفاده کنیم در شکل زیر اومده

 

خب یه توضیح مختصر راجع هر تابع اگر بخواهیم بدیم:

  • LCD16X2_Init(uint8_t)     : این تابع LCD  رو پیکربندی اولیه میکنه
  • LCD16X2_Clear(uint8_t) : پاک کردن کامل نمایشگر
  • LCD16X2_Set_Cursor(uint8_t, unsigned char, unsigned char) : مکان نما ( cursor) رو به مختصاتی که به ورودی تابع می دهیم میبره  
  • void LCD16X2_Write_Char(uint8_t, char) : نوشتن یک کاراکتر روی lcd
  • LCD16X2_Write_String(uint8_t, char*) :  نوشتن یک رشته روی lcd
  • LCD16X2_SL(uint8_t): شیفت به چپ کل کاراکترهای رو lcd
  • LCD16X2_SR(uint8_t) : شیفت به راست کل کاراکترهای روی lcd

 

نکته قابل توجه این هست که حتما باید در قسمت تابع main  و قبل از  while یکبار lcd رو پیکربندی کنیم .

19-در تصویر زیر نحوه استفاده از این توابع رو میبینید 

کتابخانه LCD کاراکتری برای میکروکنترلر STM32

 

 

نحوه عملکرد هم میتونید در ویدئو  زیر ببینید

 

 

فایل های پروژه : LCD2X16 WITH STM32.rar

منبع

امیدواریم از این آموزش استفاده برده باشید!

 

با سایر آموزش های اصفهان درایو همراه باشید!

 

 

 

 

 

 

 

 

۵
از ۵
۵ مشارکت کننده

بلاگ تخصصی اصفهان درایو