نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
مهدی دمیرچیلو

نوشتن متن فارسی در LCD های کاراکتری

نوشتن متن فارسی در LCD های کاراکتری : تو این پروژه avr با  LCD کاراکتری (البته بعدا انشاالله میریم سراغ اون گرافیکی هاش) میشه ۸ تا کاراکتر تعریف کرد.
(مثلا تو این پروژه ما ۴ تا کاراکتر فارسی و یه کاراکتر که به شکل قلب o_O هستش رو ایجاد کردیم)

به نام خدا

اگه در مورد LCD  و این که این اتصالات داستانش چیه و هر کدوم از پایه ها کارشون چیه و… چیزی نمیدونید میتونید مطلب زیر رو بخونید :
آموزش ساخت شمارنده عدد در LCD

کد های این پروژه + توضیحات

 

تو خود پروژه یه سری توضیحات دادم و باز نیاز به توضیح هستش pardon

 ۱) ما چطور این کاراکتر ها رو ایجاد میکنیم(مثلا همین حرف » ش «)

کد هایی که در بالا میبینید ؛ به وسیله یه نرم افزار ایجاد میشن که ما تو اون نرم افزاره شکل کاراکترمون رو میکشیم و بعد اون نرم افزاره کد های این شکل ما رو بهمون میده
(البته این کد ها رو به سه زبون پاسکا-بیسیک و سی میده که ما چون با کدویژن و سی کار میکنیم »»»» کد های قسمت سی رو کپی میکنیم.)
مثلا تو عکس زیر من کلمه ___ش___ رو کشیدم.  @_@
این نرم افزار در آخر همین مطلب برا دانلود شا دوستان گزاشته شده است. ^_^
دانلود نرم افزار Custom LCD Character

 ۲) این کاراکتر های ما کجا ذخیره میشن :
تو LCD های کاراکتری حافظه ای به نام CGRAM وجود داره که میتونی توش ۸ و فقط ۸ تا کاراکتر ذخیره کنیم.
(میدونم .زیاد ناراحت نشو!»» فعلا با همین ۸ تا کاراکتر سرگم بشید تا بعد) laugh1
توجه مهم : هر خانه این LCD ها در واقع از ماتریسهای ۷×۵ یا ۱۰×۵  ساخته شده.(البته برا ما ۷×۵ هستش.)

 ۳) انواع حافظه میکرو :  
راسش رو بخواید الان حس توضیح دادنش رو ندارم!!! کسی اگه خواست بگه براش توضیح بدم. blush

دانلود پروژه این مطلب

عملی بستن این پروژه
اینم فیلمی از همین پروژه ساده که به صورت عملی بستمش.فقط این که lcd رو به portc وصل نکنید و به پورت دیگه ای وصل کنید و در کد های پروژه هم در قسمت

کد پورتی که lcd بهش وصل هستش  رو قرار بدید.

نام پورت آدرس پورت
PORTA ox1b
PORTB ox18
PORTC ox15
PORTD ox12

اینم لینک همین فیلم تو آپارات
http://www.aparat.com/v/dabxQ
اینم خود فیلم!


گروه پرسش و پاسخ الکترونیکی در سروش
مهدی دمیرچیلو امیدوارم مطالب ناچیز این سایت مفید باشه براتون؛ به امید روزی که دانسته هامونو به اشتراک بزاریم، حالا پولی یا رایگانش زیاد مهم نی؛ بعضی ها فک میکنن چیزی که بلدن، اگه با دیگران به اشتراک بزارن ... !
ارسال دیدگاه
119

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    زهرا

    سلام،خسته نباشید؛ببخشید من کد نوشتم که جمله سال نو مبارک رو به صورت روان روی ال سی دی نمایش میدهد فقط مشکلی که دارم اینه که وقتی حرف ک به انتهای ال سی دی میرسه(سطر اول ستون اول) این حرف روی سطر دوم نماش داده میشه تا وقتی جمله به پایان برسه.ممنون میشم راهنمایی کنین،خیلی واجبه

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام
      سال نو مبارک = س ا ل ن و م ب ر ک = 9 تا کاراکتر
      دیتاشیت نمایشگر رو بخون ببین حداکثر تعداد کاراکتری که میتونی تعریف کنی چندتاس

      شما یه تابع بنویس.که یه for داشته باشه و از 0 تا 16 بشموره.برا بحث جابجا شدن بین ستون ها.اطلاعات رو از ستون 0ام نمایش بده ( مثلا داده ما 5 کاراکتر هستش ) بعد 100ms بیا ستون 0 تا 4 رو پاک کن ( از lcd_clear استفاده نکن ) بعد بیا اون 5 تا کاراکترتو یه ستون جابجا کن یعنی ستون 1 تا 5 و…
      وقتی مثلا رسیدی به ستون 11 ( نمایشگر 16 تا ستون داره و چون شمارش ستون ها رو از 0 شروع کردیم فلذا ستون اخر میشه 15 ) حالا میخوای 5 تا کاراکترتو نشون بدی.به کاراکتر اخر که رسیدی میبینی که رسیدی به ستون اخر فلذا کاراکتر اخر رو نشون نمیدی یا تو ستون اول نشون میدی….که شما یه متغیر اگه تعریف کرده باشی و در هر بار جابجا کردن داده ات یه واحد متغیر فوق رو زیاد کنی متوجه میشی که چقدر جابجا شدی و بعد با یه if ساده میتونی بررسی کنی که جا برا نمایش داده هات هستش یا نه

  2. Avatar

    مهمان

    mohsen

    سلام آقا خسته نباشی. دمت گرم به خاطر مطالب خوبتون. من یه پروژه بستم که توش یه شکل که متشکل از سه نقطه است، به صورت رندم روی صفحه ظاهر می شه و تا پایین صفحه میاد، از اون طرف یه شکل دیگه پایین صفحه است که با کلید و وقفه خارجی جابه جا می شه، حالا اگه اون شکله که به صورت رندم ظاهر می شه و پایین میاد به شکل پایین صفحه بخوره، game over می شیم! یه چیزی تو مایه بازی آتاری ! من تو پروتیوس برنامه رواجرا کردم، حدود بیست ثانیه درست اجرا می شه و بعد کلا شکل پایین صفحه می پره، به نظرت مشکلش کجاست؟
    اگه کمکم کنی خیلی لطف کردی.

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام
      با پروتئوس کلا کار نکن – در عمل تست کن پروژه رو – دوباره همون مشکل رخ داد – تو کدت دنبال مشکل بگرد ( من باشم اینکارو میکنم ) – حل نشد – فیلم بگیر ( از مدار در عمل بسته شده ) تو سروش به آیدی dmf313 بفرست.

  3. Avatar

    مهمان

    عزیزی

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

  4. Avatar

    مهمان

    hossein

    سلام
    می خوام این فایل رو به فارسی ترجمه کنم چطوری این کار رو انجام بدم؟؟؟؟؟
    لینک فایل
    https://drive.google.com/open?id=1jNeuTaJznSTHwiOsGE_T2pIBkyEsJOoc

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

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

      • Avatar

        مهمان

        hossein

        خوب من این رو بدون این که کد نویسی کنم (زیاد از کد نویسی سرم نمیشه ) wink sorry قسمت های که داخل پرانتز هستش رو به فارسی ترجمه کردم ولی بعد اپلود فایل فارسی رو نمی شناسه کارکتر های نامفهم میاره.

  5. Avatar

    مهمان

    ناشناس

    wink wink wink dash

  6. Avatar

    مهمان

    علی

    سلام
    با تشکر از شما
    سوال:
    اگر بخوایم مقدار یه متغیر رو نمایش بدیم واون متغیر رو هم فارسی بنویسیم چیکار باید کرد
    مثل:
    (sprintf(W,”Value :%u”,W

  7. Avatar

    مهمان

    aida

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

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام
      عکس اول مطلب شماتیک پروژه اس دیگه.

  8. Avatar

    مهمان

    حمید

    استاد ممنون بابت دیدن سوالم . میشه یه لطفی کنید تو سه خط پایین راجع به 3>> و عدد 7 در حلقه for و خط سوم توضیح بدید
    void define_char(unsigned char flash *my_kalame ,unsigned char kaleme_to_karakter)
    {
    unsigned char i,a;
    a=(kaleme_to_karakter<<3)|0x40; // محل شروع ذخیره اطلاعات در حافظه CGRAM
    for(i=0;i<=7;i++) // نوشتن در حافظه CGRAM
    lcd_write_byte(a++ , *my_kalame++); sad

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      شرمنده-
      >> که برا شیقت دادنه آموزشش هم تو نت هستش
      ولی این که چرا 3 واحد شیف دادم رو خاطرم نی – خیلی وقت پیش متاسفانه این مطلبو نوشتم و الان خاطرم نی علتشو

  9. Avatar

    مهمان

    حمید

    سلام خدمت استاد عزیز ! چرا سوال من که تو قسمت ارسال نظر نوشته بودم پاک شده است ؟ ممنون

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      پاک نشده – اون موقع چون هنوز جواب نداده بودم – اینطور میشه –

1 2