stm32

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

با عرض سلام و خسته نباشید و آرزوی سلامتی برای همه مردم جهان، با آموزش راه اندازی LCD کاراکتری توسط میکروکنترلر STM32 تحت کتابخانه های HAL در خدمت شما هستم.
در حال تهیه و ساخت سومین قسمت از آموزش میکرو کنترلر STM32 بودم؛ قرار بود در اونجا مقدار دریافتی ADC روی نمایشگر کاراکتری نمایش داده بشه چون راه اندازی کتابخانه ها جدا از مبحث بود تصمیم گرفتم مبحاحث راه اندازی کتابخانه رو در یک دسته بندی جداگانه خدمتتون ارائه بدم.

قطعا با پایه های نمایشگر کاراکتری و اینکه چه کاری میکنن آشنا هستید اما من پایین یه یادآوری کوچیک  میکنم براتون.

LCD PIN OUT:

VSS: این پایه به زمین وصل میشه.
VDD: این پایه به +5 ولت وصل میشه.
VE: این پایه برای کنتراست یا همون وضوح نوشته بکار میره که میتونید از یه پتانسیومتر استفاده کنید. البته اگه نمیخواید کنتراست نمایشگر متغییر باشه میتونید از یه مقاومت 2.2 کیلو استفاده کنید و اون پایه رو به زمین وصل کنید.
RS: این پین همونطور که تو تصویر مشخصه سلکت رجیستر نام داره که ما باید اون رو به میکرو وصل کنیم. بدک نیست بدونید که با 0 شدن این پین رجیستر دستور انتخاب میشه و با 1 شدن این پین  رجیستر داده انتخاب میشه.
من این پین رو به PB2 میکرو وصل کردم.
RW: این پین برای اتخاب حالت خواندن و نوشتن به کار میره؛ به این صورت که اگه این پین رو 0 کنیم میتونید روی نمایشگر دیتا ارسال کنیم و اگر 1 باشه با توجه به حافظه داخلی این نوع نمایشگر ها میتونیم ازش آخرین اطلاعاتی که نشون دادیم رو بخونیم.
چون ما فقط قصد داریم روی این نمایشگر اطلاعات نمایش بدیم و کتابخانه ما برای خواندن اطلاعات تابعی نداره، ما این پین از نمایشگر رو به زمین وصل میکنیم.
E: این پین پایه فعال ساز نمایشگره که به میکرو وصل میشه.
من این پین رو به PB7 وصل کردم.
D0 TO….D7: این پین ها، جهت ارسال و دریافت اطلاعات به صورت 8 بیتی مورد استفاده قرار میگیرن.
توجه داشته باشید ما قراره نمایشگر خودمون رو به صورت 4 بیتی راه اندازی کنیم بنا بر این از بیت 0 تا بیت 3 این پین ها مورد استفاده ما قرار نمیگیره.
من پین های D4 ,D5 ,D6 ,D7 رو به ترتیب به PC12 ,PC13, PB12 ,PB13 وصل کردم.
A: پایه آند LED بک لایت.
K: پایه کاتد LED بک لایت.

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

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

خب توی ویدیوی بالا با هم یاد گرفتیم که:

  • چطوری یه پروژه تو CUBE MX درست کنیم
  • چطوری کتابخونه اضافی کنیم توی کیل
  • چطوری توابع کتابخونه های پروژه خودمون رو به راحتی پیدا کنیم
  • چطوری پین های نمایشگرمون رو پیکر بندی کنیم

    میریم سراغ توابع کتابخونه LCD کاراکتری
    من چند مورد از توابع مهم رو براتون توضیح میدم و برسی و بقیه توابع بستگی به کنجکاوی خودتون داره.
    میریم که شروع کنیم به توضیح توابع

    همونطور که از اسمش مشخصه این تابع برای پیکربندیه اولبه LCD و وارد کردن تعداد ستون نمایشگر در بخش اول و وارد کردن تعداد ستون در بخش دوم برای مثال به کد زیر در پروژه ما دقت کنید.
    چون نمایشگر ما 2 سطر و 16 ستون داره اون رو به شکل زیر مینویسیم.

    این تابع 3 ورودی میگیره که دوتاش عدد برای نمایش بر روی سطر و ستونه و دیگری برای نمایش نوشته ما ورودی از نوع char میگیره که من سطر و ستون رو 0 قرار میدم و عبارت codenic.ir رو برای ورودی کاراکتر وارد میکنم.

    این تابع برای پاک کردن نوشته های روی نمایشگر به کار میره؛ بنا براین هیچ ورودی نداره و  توی پرانتز خالی بمونه.

    این تابع میتونه BILINKOff , BILINKOn باشه همطور هم که مشخصه برای فعال و غیر فعال کردن چشمک زن کاراکتر به کار میره.

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

    این تابع همانند تابع بالا بدون ورودی و میتونه به صورت CURSORON , CURSOROFF باشه.
    برای فعال و غیر فعال کردن مکان نمای نمایشگر به کار میره. به شکل زیر میتونید از این تابع استفاده کنید.

    این تابع هم همانند دو تابع بالا نوشته میشه و برای غیر فعال و فعال کردن نمایشگر به کار میره.
    میتونید به شکر زیر اون رو به کار ببرید.

    این تابع برای شیفت دادن کاراکتر ما به جهت های چپ و راست به کار میره و بعد از استفاده از این دستور محتوای روی نمایشگر فقط یک واحد به سمت مورد نظر شیفت پیدا میکنه.

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

    کدی که من مینویسم و ویدیو تست اون
    من این کد رو توی main مینویسم.

    و این کد رو توی while مینویسیم به این دلیل که مدام با یک تاخیر 200 میلی ثانیه ای نوشته روی نمایشگر حرکت کنه به سمت راست.

    ویدیو تست پروژه رو با توضیحات مختصر میتونید پایین ببینید.

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

     

     

     

برچسب ها
نمایش بیشتر

sahandrjb

دانشجوی الکترونیک دانشگاه چمران رشت، مدیر و بنیانگذار مجموعه کدنیک. تجربه تدریس برنامه نویسی برای میکروکنترلر ها مشتاق برای یادگیری، آماده برای تدریس.

‫۱۰ نظرها

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

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

دکمه بازگشت به بالا
بستن
بستن