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

آموزش lcd گرافیکی توشیبا در کدویژن قسمت 2

به نام خدا : خوب تو قسمت قبل آموزشمون ( آموزش LCD گرافیکی توشیبا در کدویژن قسمت 1 ) برای راه اندازی lcd توشیبا از کتابخونه خود کدویژن استفاده کردیم و این نکته رو هم متذکر شدیم که گرچه بعضی دستورات تو ورژن 2.05.03 وجود داره ولی کار نمیکنه ! (خودم خیلی درگیرش بودم و زمان زیادی ازم گرفت تا فهمیدم)
آموزش lcd گرافیکی توشیبا در کدویژن قسمت 2

آموزش lcd گرافیکی توشیبا در کدویژن قسمت 2


به امید خدا در این قسمت میخوایم در مورد نمایش عکس و طراحی فونت در کدویژن صحبت کنیم. همونطور که میدونید نرم افزارهای زیادی برای تبدیل عکس به کد hex و ساخت فونت وجود داره. اما همیشه خود من توش گیج میشدم مخصوصا با توضیحات خاصی که برای بعضی نرمافزارها هست مثلا میگن بعد گرفتن کد هگز باید فلان قسمت رو پاک کنی و فلان قسمت رو اضافه کنی و …
حالا دیگه از شر این کارا راحت میشید. چطوری؟ با نرم افزار lcd vision که توی خود کدویژن قرار داره. خیلی راحت عکس بده، کتابخونه تحویل بگیر!
از کجا بیاریمش؟ توکدویژن 3.12 اون بالا یک آیکن V آبی رنگه که با انتخاب اون نرم افزارش براتون باز میشه :

کدویژن

 

البته وقتی کدویژن رو نصب میکنید ، میانبر این نرم افزار هم روی desktop میاد.
نرم افزار lcd vision
این نرم افزار میتونه انواع فرمت های عکس رو به فایل هگز تبدیل کنه ولی برای اینکه نمایشگر ما تک رنگه بهتر است عکسمون رو به سایز 240*128 یا کوچکتر و رنگ سیاه و سفید تبدیل کرده سپس به نرم افزار lcd vision وارد کنیم برای تغییر رنگ عکس به سیاه سفید از نرم افزار paint خود ویندوز هم میشه استفاده کرد و هنگام ذخیره فرمت Monochrome Bitmap رو انتخاب کنیم.
نمایش عکس و طراحی فونت در کدویژن
وقتی عکسمون آماده شد ، تو نرم افزار lcd vision  از منوی file گزینه new image  رو انتخاب میکنیم که پنجره زیر باز میشه . اینجا باید نوع نمایشگرمون رو تعیین کنیم .
نرم افزار lcd vision
حالا دوباره میریم تو منوی فایل و import image رو انتخاب میکنیم و عکسی که ساخته بودیم رو وارد نرم افزار میکنیم.آموزش lcd گرافیکی توشیبا در کدویژن قسمت 2
بعدش وقت گرفتن خروجی هست . پس دوباره میریم تو منوی فایل و گزینه export  رو میزنیم .پیغام زیر نمایش داده میشهآموزش lcd گرافیکی توشیبا در کدویژن قسمت 2
بصورت پیش فرض اسم متغیری که عکس توش ذخیره میشه ،همون اسم عکس هست ولی چون ممکنه نام عکس با قوانین C سازگاری نداشته باشه (مثلا اسمش 12.bmp باشه که چون عدد هست نمیتونه اسم متغیر باشه) توی کادر پایین میتونیم نام عکس رو تغییر بدیم. من اسم عکس رو cloud گذاشتم.و در نهایت با انتخاب گزینه Save Export از منوی File صفحه زیر برامون باز میشه که فرمت ذخیره داده ها رو ازمون میپرسه و ما گزینه اول رو انتخاب میکنیم، یک کتابخونه توی مسیری که ما بهش بدیم برامون میسازه من در اینجا اسم کتابخونه رو test_cloud گذاشتم.
آموزش lcd گرافیکی توشیبا در کدویژن قسمت 2
برای وارد کردن عکس، خروجی نرم افرار رو که یک فایل C هست، با دستور include به پروژه اضافه میکنیم و آدرس و نام عکس را داخل آن مینویسیم پس کد بصورت زیر است:

برای نمایش عکس از دستور زیر استفاده میکنیم که میبینید با تغییر پارامتر نوع نمایش عکس میشه NOT شده عکس رو نشون بدیم:

در تابع بالا 180و77 همان موقیعیت شروع عکس ماست و Cloud نام تابع عکسه
قسمت دیگه این نرم افزار -همونطور که قولش رو داده بودم – درست کردن فونت هست . یک مدت خودم میخواستم اعداد رو با فونت بزرگ تو glcd های 64*128 نشون بدم اما میدیدم تو انجمن ها هم بعضی ها درخواست اعداد اندازه بزرگ رو کردن اما از جواب خبری نیست .
از منوی File گزینه import system font رو انتخاب میکنیم تا پنجره زیر برامون باز بشه
آموزش lcd گرافیکی توشیبا در کدویژن قسمت 2
با انتخاب کلید select font میتونید فونت مورد نظرتون رو با سایز و حالت bold یا … انتخاب کنید
آموزش lcd گرافیکی توشیبا در کدویژن قسمت 2
اگر به تمام اعداد و حروف و علامتهای یک فونت نیاز ندارید ، برای اینکه حافظه کمتری اشغال کنه میتونید مقدار Start و End رو تویصفحه قبل مشخص کنید . بقیش هم که مثل وارد کردن عکس هست . یعنی Export رو میزنید و یک اسن به فونتتون میدید . توی پروژه include میکنید و حالشو میبرید . فقط هرجا خواستید از اون فونت استفاده کنید قبلش این دستور رو بنویسید :

که توی پرانتز اسم فونتی که ساختید رو میگذازید.

کد کامل پروژه lcd گرافیکی توشیبا با کتابخانه کدویژن :

 

شماتیک پروژه lcd گرافیکی توشیبا :

نتیجه کد بالا رو در عکس زیر میبینید :

شماتیک پروژه lcd گرافیکی توشیبا

گروه پرسش و پاسخ الکترونیکی در سروش
تعداد مطالب : 2 تا
Avatar کارشناس مهندسی پزشکی (بیوالکتریک) ، زمینه کاری اصلی سیستمهای مبتنی بر کارت هوشمند و RFID - میگن نادر شاه افشار که یکی از پادشاههای قدرتمند ایرانی هست همیشه جلوی لشگر حرکت میکرده و به سربازاش گفته دهنه اسبتون از من جلوتر نره . ما که سنمون قد نمیده اما برامون تعریف میکنن که تو جبهه ها بحث سر این بوده که کی جلو بره و جاده رو باز کنه . امروزم روز جنگ با دشمنان خداست اما جبهه تغییر کرده . یکی از دلایل عقب بودن ما نسبت به خیلی کشورهای دیگه اینه که هر کدوم ما اگه چیزی یاد داریم میترسیم در اختیار دیگران بگذاریم ، میترسیم اونا از ما جلو بزنن اونا به جایی برسن ... به نظر من اگه قرار باشه کشورمون پیشرفت کنه باید وقتی کسی یک گام به جلو برمیداره ، یک پل بسازه تا بقیه بتونن چاله های دیگه رو پر کنن . این میشه کار جهادی . البته شرطش اینه که اونایی هم که از پل دیگران استفاده میکنن ، درست استفاده کنن و تیشه نزنن به ریشه بقیه ... تا باز هم امید باشه واسه ادامه دادن ... تو هم به اندازه خودت در این پیشرفت سهیم باش . مطلب کپی نکن تا سایت و تحقیقت پر بشه . یاد بگیر ، عمل کن ، یاد بده - یا علی
ارسال دیدگاه
17

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

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

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

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

  1. Avatar

    مهمان

    محمد شمس

    سلام
    با تشکر از زحمات شما .
    سوالم این است که آیا از برنامه داخلی فایل c میتوان به نحوه و شماره پایه های lcd .پی برد .؟ برنامه نوشته شده c در کد ویژن برای lcd 128×64 به یک نحوی بود . و در برنامه جدید برای lcd 240×128 مسیر پایه ها را نمتوانم پیدا کنم . . ممنون میشم راهنماییم کنید .
    lcd 128×64
    GLCDINIT_t glcd_init_data;
    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: On
    // INT2 Mode: Falling Edge
    // INT3: Off
    // INT4: Off
    // INT5: Off
    // INT6: Off
    // INT7: Off
    EICRA=0x20;
    EICRB=0x00;
    EIMSK=0x04;
    EIFR=0x04;
    // Graphic LCD initialization
    // The KS0108 connections are specified in the
    // Project|Configure|C Compiler|Libraries|Graphic LCD menu:
    // DB0 – PORTC Bit 0
    // DB1 – PORTC Bit 1
    // DB2 – PORTC Bit 2
    // DB3 – PORTC Bit 3
    // DB4 – PORTC Bit 4
    // DB5 – PORTC Bit 5
    // DB6 – PORTC Bit 6
    // DB7 – PORTC Bit 7
    // E – PORTA Bit 6
    // RD /WR – PORTA Bit 4
    // RS – PORTA Bit 5
    // /RST – PORTD Bit 6
    // CS1 – PORTD Bit 5
    // CS2 – PORTD Bit 7
    lcd 240×128
    GLCDINIT_t glcd_init_data;
    unsigned int mainWiperPos=0;
    // External Interrupt(s) initialization // U P D A T E D— V2-2
    // External Interrupt(s) initialization
    // INT0: On
    // INT0 Mode: Falling Edge
    // INT1: Off
    // INT2: Off
    // INT3: Off
    // INT4: Off
    // INT5: Off
    // INT6: Off
    // INT7: Off
    EICRA=0x02;
    EICRB=0x00;
    EIMSK=0x01;
    EIFR=0x01;
    // Graphic LCD initialization
    // The T6963C connections are specified in the
    // Project|Configure|C Compiler|Libraries|Graphic LCD menu:
    // DB0 – PORTC Bit 3
    // DB1 – PORTC Bit 2
    // DB2 – PORTC Bit 1
    // DB3 – PORTC Bit 0
    // DB4 – PORTG Bit 1
    // DB5 – PORTG Bit 0
    // DB6 – PORTD Bit 7
    // DB7 – PORTD Bit 6
    // CD – PORTC Bit 5
    // /CE – PORTC Bit 6
    // /RD – PORTC Bit 7
    // /WR – PORTG Bit 2
    // /RESET – PORTC Bit 4
    پپایه های مربوطه که در دو تا برنامه آمده را بصورت صحیح وصل میکنم 128.64 درست کار میکند اما 240.128 جواب نمیدهد .!

  2. Avatar

    مهمان

    محمد

    سلام وتشکر بابت آموزش های مفید و کاربردیتون
    می خواستم بدونم از چه راهی می تونم به محتوای کتابخانه های خود کدویژن دسترسی داشته باشم تا بتونم از توابعشون استفاده کنم
    مثلا همین glcd.h یامثلا delay.h و… .هرچی که گشتم فقط طریقه اضافه کردن یه کتابخانه جدید به کدویژن را توضیح دادند ولی طریقه دسترسی به فایل های کتابخانه خود کدویژن را ندیدم

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

      مدیر سایت

      مهدی دمرچیلو

      سلام
      کتابخونه های کدویژن فایل .C شونو نمیتونی دسترسی داشته باشه – ولی به فایل .H میتونی باید بری تو محل نصب کدویژن بگردی – محل دقیقش یادم نی.

  3. Avatar

    مهمان

    golamhosseinfatemi

    سلام امکان اتصال ال ای دی های در سایز خیلی بزرگ به میکرو هست مثل لب تاب

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

      مدیر سایت

      مهدی دمرچیلو

      سلام
      lcd منظورتونه؟ آره شدنش که میشه – باید کتابخونشو پیدا کنی یا خودت بنویسی ولی خب اینجا بحث سرعت نمایش مطرح میشه که باید با توجه به اندازه نمایشگر و … میکرویی انتخاب کنی که یه حداقل فرکانسی داشته باشه که خب اینو باید بشینی حساب کنی.

  4. Avatar

    مهمان

    golamhosseinfatemi

    سلام ممنون بابت مطالبی که اموزش می دهید واقعا خسته نباشید

  5. Avatar

    مهمان

    علی

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

  6. Avatar

    مهمان

    حسین

    مطالبت خوبه و بدردبخور
    اومدم یه چیزایی یاد بگیرم، دمت گرم واقعا
    اماااااا
    با تبلیغاتی که اون بالا علیه روحانی کردی ریدی تو کار مفیدت
    لیاقتت همون رئیسی ادمکش یا قالی باف گازانبریه
    کوته فکر تر از شما بسیجیا جایی ندیدم
    به کوری چشمتون روحانی مجددا انتخاب میشه، دوره شما تموم شده دیگه

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

      مدیر سایت

      مهدی دمرچیلو

      سلام – مشکل ما عدم مطالعه هستش وگرنه اگه برید تحقیق کنید نمیاید حرف منافقین خلق رو به من بزنی ( رئیسی آدم کن رو میگم ) – من مواردی که دربالا اوبردم رو رفتم تحقیق کردم و از صحتش مطمئن شدم – اگه دقت کنی تمام موارد منبع داره – آدم باید حقیقت رو قبول کنه وگرنه نه آقای روحانی به شما چیزی میده و نه قالیباف به من چیزی –

  7. Avatar

    مهمان

    علی

    سوال و تشکر از ته دل بابت مطالب خوبتان
    من یک فونت ۲۲ درست کردم – include کردم همه چیز درسته -فونت ی که درست کردم تو پوشه ریختم اما تو کمپایل error میاد خطی که فونت معرفی میشه
    glcd_setfont(MM)
    ERROR که میده اینجوریه >> undefined symbol ‘mm’
    اسم فونت هایی که خودتون درست کردید رو میزارم جواب میده
    من از ورژن۳٫۱۲ استفاده کردم توی قسمت import system font یک سری options هایی جدید اضافه شده میشه اونا رو هم یک توضیحی بدید
    با تشکر

    • Avatar

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

      محمد صنعتگر

      راستش اینطوری نمیشه گفت مشکل از کجاست
      کدتون رو باید ببینم . اما چیزی که به نظرم میرسه اینه که شما هم به اسم فایل هدر که اول برنامه include کردید توجه کنید و هم به اسمی که برای فونت در داخل فایل header گذاشتید . شاید یکیشون مشکل دارند

  8. Avatar

    مهمان

    محمد

    سلام – تشکر بابت این مطلب من تست کردم -جواب هم گرفتم

    • Avatar

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

      محمد صنعتگر

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

  9. Avatar

    مهمان

    mohammad javad

    با سلام
    چطور میشه یه سیگنال live در این glcd نشان داد؟
    با روش نقطه یا خط
    جهت نشان دادن سیگنال قلب بر روی این نوع ال سی دی یا ال سی دی k0108
    ممنون

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

      مدیر سایت

      مهدی دمرچیلو

      این سیگنالی که میگی نمیدونم به چه صورته – مثل یه تابع سینوسی همیشه ثابته یا تغییر میکنه – اگه ثابت باشه که با داشتن فرمولش کار راحته – ثابت هم نباشه باید در هر لحظه مقدار سیگنال رو بخونی و نمایش بدی – حالا بحث تغییر فرکانس سیگنال و …

    • Avatar

      مهمان

      محمد صنعتگر

      سلام
      شما میتونید نقطه به نقطه پیکسل ها رو روشن کنید یا بین دو نقطه یک خط رسم کنید یا یک قوس
      اگه دانشجوی مهندسی پزشکی هستید و به signal processing علاقه دارید بهتون توصیه میکنم Avr رو دنبال نکنید و از همین حالا به فکر تکنولوژیهای روز باشید
      موفق باشید

  10. Avatar

    مهمان

    عبدالکریم

    یا علی