02166766927 -02166703652
atrinelectronic@gmail.com تهران پاساژ امجد طبقه1 واحد 16
دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی ال سی دی کاراکتری (بخش اول)

دوره آموزشی میکرو کنترلرهای STM32 _ راه اندازی ال سی دی کاراکتری (بخش اول)

2018-11-16 21:41:46

جلسه هشتم _ نحوه راه اندازی ال سی دی کاراکتری

در اکثر پروژه ها نیاز به یک نمایشگر احساس می شود وظیفه نمایشگر ، نمایش رخداد ها و کمک به کاربر برای انجام تنظیمات می باشد.

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

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

در ابتدای کار  پیکربندی ال سی دی را در نرم افزار STM32CubeMX  انجام می دهیم و کد اولیه را تولید می کنیم و پس از آن نحوه اضافه نمودن کتابخانه ال سی دی را به برنامه فرا می گیریم.

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

پس از انجام تنظیمات و تولید پروژه، آن را باز می کنیم و در محیط Keil بر روی نام پروژه راست کلیک می کنیم و گزینه Add Group را انتخاب می کنیم.

با انتخاب گزینه Add Group پوشه ای با نام New Group ایجاد می شود که می توانیم نام آن را تغییر دهیم و نام متناسب با نام کتابخانه برایش انتخاب کنیم.

در تصویر زیر می توانید پوشه ایجاد شده را بعد از تغییر نام مشاهده نمایید.

بعد از ایجاد پوشه مورد نظر باید آدرس کتابخانه مورد نظر را به آن بدهیم قبل از آدرس دهی باید کتابخانه را در مسیر مناسبی ذخیره کرده باشیم در این پروژه کتابخانه در پوشه Src ذخیره شده است

 

در این مرحله که پوشه کتابخانه را در مسیر مناسبی قرار دادیم باید آنرا به پروژه خود در نرم افزار keil اضافه کنیم. برای اینکار روی پوشه ای که در نرم افزار اضافه کرده ایم راست کلیک می کنیم و گزینه Add Existing File to Group را انتخاب می کنیم.

 

با انتخاب مسیر، ذخیره کتابخانه فایل های ".c" و ".h" را به برنامه اضافه می کنیم

پس از انتخاب گزینه Add کتابخانه مورد نظر به برنامه اضافه می شود.

در این کتابخانه باید مشخص نماییم که پایه های دیتا (D4_D7) و پایه های کنترلی ال سی دی به چه پایه هایی از میکرو متصل شده است و با توجه به اینکه برای هر پایه لیبلی انتخاب شده برای خواناتر شدن برنامه برای مشخص نمودن پایه ها و نوشتن برنامه از نام های لیبل انتخاب شده در تنظیم پایه ها استفاده می کنیم. در این برنامه برخی دستورات بصورت Define تعریف شده که وظیفه آن ساده تر کردن برنامه و خوانا تر شدن آن است برای مثال بجای نوشتن توابع بزرگ روشن یا خاموش کردن یک پایه می توانیم آنرا یکبار بصورت define تعریف کنیم و بجای استفاده از دستور اصلی، دستور معادل آنرا که خواناتر و ساده تر شده استفاده کنیم در ادامه با مشاهده چند نمونه و کدهای برنامه بیشتر با این مقوله آشنا می شویم.

برای مثال بجای نوشتن تابع طولانی HAL_GPIO_WritePin برای روشن کردن یا فعال کردن یک پایه خروجی می توانیم آنرا بصورت define تعریف کنیم تا در برنامه بجای نوشتن تابع اصلی برای فعال کردن پایه متصل به پین RS مربوط به  ال سی دی از دستور ساده و قابل فهم تر SetLcdRS استفاده نماییم.

تابع HAL_GPIO_WritePin دارای سه آرگومان می باشد که آرگومان اول شماره پورت را مشخص می کند که بجای نوشتن نام پورت از لیبل آن استفاده شده است.برای مشاهده فایل main.h در فایل main.c بر روی گزینه main.h راست کلیک می کنیم و گزینه Open document "main.h" را انتخاب می کنیم.

لیست تمام لیبل های تنظیم شده را می توانید در main.h مشاهده نمایید.

همانطور که قبلا اشاره شد برای تنظیم پایه RS بصورت فعال یا high از define زیر استفاده شده است که:

که در نحوه استفاده از تابع HAL_GPIO_WritePin نیز بجای نوشتن نام اصلی پورت و پین از لیبل های مربوط به آن استفاده شده است. در مثال بالا و با توجه به لیبل های موجود در فایل main.h بجای نوشتن GPIOC (نام پورتی که پایه RS به آن متصل شده) از LCD_RS_GPIO_Port و بجای GPIO_PIN_4 (نام پینی که پایه RS به آن متصل شده ) از LCD_RS_Pin استفاده شده است.

در تصویر زیر می توانید بقیه define ها را مشاهده نمایید.

نکته:

کتابخانه stm32f1xx_hal.h را به فایل main.h اضافه نمایید.

 

با توجه به اینکه در کتابخانه مربوط به LCD برای ایجاد تاخیر از تابع delay_ms_ استفاده شده است Define بالا را در فایل main.h قرار دهید.

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

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

 LCD_Library
برای دیدن آموزش نحوه راه اندازی lcd کارکتری (جلسه دوم) کلیک کنید.

                                                                                                                                                                           شاد و پر انرژی باشید

                                                                                                                                                                             محمد هادی دشتی

دیگر آموزش ها مرتبط با STM32:

برای مشاهده آموزش جلسه اول(معرفی هسته آرم و میکروکنترلرهای 32 بیتی شرکت ST  ) کلیک کنید.

برای مشاهده آموزش جلسه دوم( معرفی نرم افزارهای مورد نیازجهت برنامه نویسی و پروگرام  ) کلیک کنید.

برای مشاهده آموزش جلسه سوم( نحوه دانلود آخرین نسخه از نرم افزار STM32CubeMX   ) کلیک کنید.

برای مشاهده آموزش جلسه چهارم(نحوه انجام تنظیمات در نرم افزار STM32CubeMX  ) کلیک کنید.

برای مشاهده آموزش جلسه پنجم(نحوه برنامه نویسی پروژه چشمک زن با نرم افزار Keil ) کلیک کنید.

برای مشاهده آموزش جلسه ششم(نحوه تولید کد و تنظیمات در محیط STM32CubeMX و برنامه نویسی در محیط Keil برای راه اندازی کلید) کلیک کنید.

برای مشاهده آموزش جلسه هفتم(معرفی نرم افزار STM32 Flash Loader Demonstrator و نحوه دانلود برنامه و پروگرام کردن میکرو) کلیک کنید.

به سبد خرید اضافه شد.
سبد خرید
Item removed. بازگرداندن