نوشتن متن روی LCD کاراکتری

9

در ادامه پروژه های اموزشی میکروکنترلر AVR , در این پست با نحوه راه اندازی و نوشتن متن روی LCD کاراکتری اشنا می شوید. از LCD های کاراکتری در پروژه های مختلف استفاده می شود که برای نمایش خروجی شامل متن, اعداد و مقادیر و … کاربرد دارد . در این پروژه از میکروکنترلر ATmega16 و lcd کاراکتری 16*2 استفاده شده است, برای اشنایی با پین های مگا 16 اینجا کلیک کنید.

اشنایی با lcd کاراکتری 16*2 :

منظور از 16*2 تعداد سطرها و ستون های این lcd می باشد که دارای 2 سطر و 16 ستون است, lcd های کاراکتری با تعداد سطر و ستون های مختلف وجود دارند که بسته به نیازتان یکی از انها را انتخاب می کنید ولی معروف ترین و پرکاربرد ترین انها lcd 2*16 می باشد.

پایه ها :

همانطور که در تصویر بالا مشاهده می کنید این lcd دارای 16 پین می باشد که پین های 7 تا 14 پین های دیتا می باشند و درصورتی که از lcd در مد 8 بیتی استفاده کنید, این 8 پین باید به میکرو وصل شوند. ولی معمولا در مد 4 بیتی از این lcd استفاده می شود که باعث می شود پین های کمتری از میکرو را اشغال کند (تفاوت مد 8 و 4 بیتی این است که در مد 8 بیتی سرعت نسبت به 4 بیتی بیشتر است)

پین های 1 و 2 برای اتصال تغذیه می باشند که پین 1 به منفی و پین 2 به مثبت 5 ولت وصل می شود. پین یا پایه ی 3 برای تنظیم کنتراست lcd می باشد که برای تنظیم میزان کنتراست به یک پتانسیومتر متصل می شود (اگه پتانسیومتر نداشتید میتونید به منفی وصل کنید)

پین های 4 تا 6 پین های کنترلی می باشند. پایه های 15 و 16 برای تنظیم نور پس زمینه می باشند که معمولا به همان تغذیه 5 ولت وصل می کنند. (16 به منفی و 15 به مثبت)

کتابخانه کدویژن lcd کاراکتری :

در پست ” LED چشمک زن با میکروکنترلر AVR ” در مورد کتابخانه ها توضیح داده شد که به منظور راحتی ما برای کار کردن با قطعات و ماژول های مختلف از کتابخانه ی ان قطعه در کدویژن استفاده می کنند. به همین منظور کتابخانه lcd کاراکتری به همراه توابع مهم ان در ادامه توضیح داده شده است :

برای استفاده از این کتابخانه در ابتدای برنامه, باید به شکل زیر فراخوانی شود. البته توجه کنید در صورتی که توسط کدویزارد lcd کاراکتری را فعال کنید, کدویژن خودش این کتابخانه را به ابتدای برنامه اضافه می کند

 

تابع زیر برای تعیین موقعیت نمایش کاراکتر lcd می باشد (ستون x و سطر y)

تابع زیر کل صفحه نمایش lcd را پاک می کند

تابع زیر برای ارسال یک کاراکتر به lcd می باشد

تابع زیر برای نمایش یک رشته کاراکتری ذخیره شده در حافظه RAM میکرو روی lcd استفاده می شود

تابع زیر برای نمایش یک رشته کاراکتری ذخیره شده در حافظه Flash میکرو روی lcd استفاده می شود

تابع زیر جهت پیکره بندی LCD مورد استفاده قرار میگیرد, که ورودی ان تعداد ستون lcd می باشد و خروجی ان در صورت اتصال lcd یک می باشد

در ادامه با نحوه استفاده از برخی از این توابع در برنامه اشنا می شوید

 

شماتیک پروژه نوشتن متن روی LCD کاراکتری :

شماتیک بسیار ساده است و نیاز به توضیح خاصی نیست, فقط ممکن است سوال پیش اید که چرا lcd به این شکل به میکرو متصل شده است؟ ما در کدویزارد خودمان مشخص میکنیم که lcd به کدام پورت و پین ها متصل باشد. تنظیمات قسمت lcd کاراکتری در کدویزارد برای این پروژه به شکل زیر تنظیم شده است

 

برنامه :

یک پروژه جدید در کدویژن ایجاد کنید, میکرو را ATmega16 و فرکانس را روی یک مگاهرتز تنظیم کنید. از انجایی که قرار است lcd را به پورت c متصل کنیم پس در قسمت ports تمام پین های پورت c را خروجی تنظیم کنید و تنظیمات قسمت lcd را هم مانند تصویر بالا انجام دهید .

برنامه این پروژه به صورت زیر است:

توجه کنید که تمام کدها بجز کدهای داخل حلقه while توسط خود کدویژن ایجاد می شود. توضیحات برنامه نوشته شده و شما می توانید مقادیر و متن دلخواه خود را جایگزین کنید و برنامه را به دلخواه خود تغییر دهید. 

کلیپ شبیه سازی در پروتئوس :

 

دانلود فایل ها

پسورد فایل زیپ : www.emic.ir

 

 

نظر یادتون نره …

9 دیدگاه‌ها

  1. سلام جناب مهندس. واسه پروژه Ads که توی کد ویژن و پر توس نمایشش هست. من کدها رو زدم توی کدویژن’ اونوقت میگه read_adsو sprintf
    undefined symbol هست. چکار باید بکنم

  2. سلام مهندس خسته نباشی
    مهندس اگر در همین ال سی دی ۱۶×۲ بخوایم یک کاراکتر بصورت زیگزاگی ( ابتدا کاراکتر در سطر صفر ستون صفر سپس سطر یک ستون یک سپس سطر صفر ستون سوم و …) نمایش بدیم چه دستور ساده تری (البته به غیر از دستور نوشتن مختصات هر خانه که خیلی طولانی میشه) میشه استفاده کرد

    • سلام, به طور کلی پاسختون را میدم که شما باید یک رابطه برای کار مورد نظرتون پیدا کنید و این رابطه را درون یک حلقه for قرار دهید تا تکرار شود. اگر نتونستید یک رابطه پیدا کنید باید به همون روش طولانی انجام بدید

  3. سلام جناب مهندس خسته نباشید،یه سوال داشتم تابع آخر دقیقا کاربردش چیه که معرفیش کردین؟فقط برای معرفی نوع lcd استفاده میشه؟

  4. سلام
    مرسی بابت پروژه خیلی خوبتون
    چطور میتونم به جای انگلیسی متن فارسی رو بنویسم تو ال سی دی؟
    ممنون میشم پاسخ بدید.

    • سلام, قبلا پروژه فارسی نویسی روی LCD کاراکتری را انجام داده بودم ولی الان متاسفانه دقیقا یادم نیست که چطور بود در اینده حتما این پروژه را در سایت قرار خواهم داد

ارسال دیدگاه

لطفا دیدگاه خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید