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

پروژه و آموزش کامل نمایشگر ks0108 با lpc1768

به نام خدا : تو این مطلب از سری مطالب پروژه آرم بنا بر درخواست یکی از دوستان مطلب پروژه و آموزش کامل نمایشگر ks0108 با lpc1768 میزارم تو سایت، این پروژه رو من در عمل بستم جواب هم میدم، دلیل حرفهام هم فیلم و عکس ته مطلب هستش، تو نت که من گشتم چیز مالی پیدا نکردم، کتابخونه خود کدویژن هم که منبع باز نیستش، ولی یه کتابخونه تو سایت گزاشته بودم قبلا برا AVR برا همین نمایشگر – اونو از کدویژن تبدیل کردم به کیل و سازگار با LPC1768
پروژه و آموزش کامل نمایشگر ks0108 با lpc1768

پروژه و آموزش کامل نمایشگر ks0108 با lpc1768


ادامه حرفام …
( لذا همین جا میگم که این کتابخونه تبدیل شده توسط داشتون هستش و به رایگان گزاشته میشه تو سایت تا عموم استفاده کنن، یه وقت کسی نیاید پولیش کنه _هر چند که چیز خاصی نیست ولی خب پیدا میشن افرادی که…_ یا کتابخونه رو بزنه به اسمش خوش که دیگه این اوج نامردیه – مطلب رو هم کپی نکنید – جان داش با کپی کردن سایت های ایرانی پیشرفت نمیکنن و سودی برای کشور نداره و اون وقتی که برا کپی کردن صرف میکنید رو برا تولید محتوای جدید صرف کنید _ البته باید به سایت هایی همچون WLE و… عیوالله گفت که محتوای جدید تولید میکنن و کپی نمیکنن، دم داش کامران خودمون هم گردم، ولی بعضیا کلا کپی میکنن – که زیاد کار پسندیده ای نیستش و این کارا برا ۱۰ سال پیشه که کل سایتای فارسی رو میدیدی – یه مطلب تو شونصد تا سایت بود- آخر هم معلوم نمیشد نویسنده اصلی کیه چون همه مطلبو میزدن به اسم خودشون – حالا بودن کسایی که ته مطلب منبع رو هم میزدن ولی آخر سر میدیدی که اون منبع هم خودش از یه جایی کپی کرده!!! – خداییش این کار دزدی هستش جان داچ – بگذریم از این حرفا – شماها که خواننده مطلب هستش زیاد بدردتون نمیخوره این چیزا ولی گفتم که اگه یه موقع اگه خدا خواست و نویسنده شدید، کپی نکنید! – این مطلب رو من ۱۵ ساعت وقت گزاشتم – ۵ سایت تبدیل کتابخونه – ۵ ساعت الافی به خاطر یه سوتی – ۵ ساعت هم باگ گیری و اضافه کردن تابع و نوشتن مطلب تو سایت – اینو گفتم بدونید که ۱/۳ وقتم به خاطر مسلط نبودن رو زبون C و این که یه دستوری رو اشتباه نوشته بودم طلف شد – تو اون ۵ ساعت خدامیدونه که چقدر میتونستم سی رو یاد بگیرم – حداقل یه مبحثو میتونستم بخونم کامل – بگذریم منظورم اینه که برید زبون C تونو قوی کنید! – خب بعد از نوشتن یه رمان طولانی از بالای منبر میایم پایین و میریم سراغ اصل مطلب – میگن حرف حرف میاره هاااا – راست میگن ^_^ ) :

پیشنیاز : ابتدا مطلب زیر رو بخونید، چون همون طور که گفتم کتابخونه توی این مطلب رو تبدیل کردم، اون مواردی هم که تو مطلب زیر نیستش یا تغییر کرده رو هم در این مطلب کامل توضیح میدم ولی بقیه توابعی که در این مطلب توضیح ندادم رو در لینک زیر بخونید، توضیحات مربوط به نحوه نمایش عکس و تولید کد عکس و ... هم در مطلب زیر توضیح داده شده لذا تو این مطلب دیگه تکرار نمیکنم :

پروژه lcd گرافیکی به همراه آموزش کامل

 
شماتیک پروژه :
کتابخانه lcd گرافیکی
خب این نمایشگر هستش و پایه هاش به همین ترتیب هستش دقیقا ( برا من که به این ترتیب هستش )، اتصالات به صورت زیر هستش :
کتابخانه lcd گرافیکی
خب حالا با توجه به دو تا عکس بالا، وضعیت اتصالات پایه های ۱ تا ۳ و ۱۷ تا ۲۰ مشخص هستش، بقیه رو در زیر توضیح میدم :
توجه : پایه ۱۷ رو به پایه RST میکرو کنترلر وصل کنید ( پایه ریست میکرو ) و نیازی به مقاومت کلید و … که تو عکس بالا میبینید نیستش.
نحوه اتصال پایه های ۴ تا ۱۶ هم به صورت زیر هستش :

  • پایه ۴ ( DL یا همون RS ) : به پایه P0_0 وصل شود.
  • پایه ۵ ( RW ) : به پایه P0_1 وصل شود.
  • پایه ۶ ( E یا همون EN ) : به پایه P0_2 وصل شود.
  • پایه ۷ ( DB0 ) : به پایه P0_3 وصل شود.
  • پایه ۸ ( DB1 ) : به پایه P0_4 وصل شود.
  • پایه ۹ ( DB2 ) : به پایه P0_5 وصل شود.
  • پایه ۱۰ ( DB3 ) : به پایه P0_6 وصل شود.
  • پایه ۱۱ ( DB4 ) : به پایه P0_7 وصل شود.
  • پایه ۱۲ ( DB5 ) : به پایه P0_8 وصل شود.
  • پایه ۱۳ ( DB6 ) : به پایه P0_9 وصل شود.
  • پایه ۱۴ ( DB7 ) : به پایه P0_10 وصل شود.
  • پایه ۱۵ ( CS1 ) : به پایه P0_11 وصل شود.
  • پایه ۱۶ ( CS2 ) : به پایه P0_15 وصل شود.

برای این که تعیین کنیم هر کدوم از پایه های فوق به کدوم پایه میکرو وصل باید بشن، این کار توسط تابع glcd_on انجام میشه که در ادامه میبینم و بهش میرسیم.
 
عکس پروژه در عمل : 
راه اندازی lcd گرافیکی با lpc1768
 
فیلم پروژه : 
http://www.aparat.com/v/tMXSs

 
کد پروژه : 
دانلود پروژه و کتابخونه ks0108 با lpc1768

 
توجه : غیر از کتابخونه نمایشگر که تبدیلش کردم از کدویژن به کیل، بقیه توابع و کتابخونه های توی پروزه بالا رو خودم نوشتم(۰ تا ۱۰۰ اش رو) !!!
 

کتابخانه KS0108 برای LPC1768

این کتابخونه شامل توابع زیر هستش ( توابعی که قراره ازشون استفاده کنیم و امکان استفاده ازشون رو داریم وگرنه کل توابع بیشتر از اینه ) :

همون طور که قبلا گفتم یه سری از توابع در مطلبی که لینکش رو گزاشتم در اول مطلب، توضیح دادم لذا اون توابعی در در لینک اول مطلب وجود ندارن و یا تغییر کردن رو فقط در زیر توضیح میدم، لیست این توابع به صورت زیر هستش :

خب برم تک تک ۴ تا تابع بالا رو توضیح بدم :
 
تابع glcd_on : تو نسخه کدویژن این تابع ورودی نداشت، تعیین پایه ها یکم سخت بود، تو این تابع که الان میبیند من برا این تابع ورودی تعیین کردم تا خیلی راحت بشه پایه ها رو تعیین کرد که هر پایه نمایشگر به کدوم پایه میکروکنترلر وصل باشه، نام پارامتر های این تابع مطابق با نام پایه ها هستش که در عکس دوم یا سوم مطلب نام پایه ها رو مشاهده میکنید.

 
تابع get_point : به کمک انی تابع میتونیم بفهمیم که کدوم پیکسل های نمایشگر روشن هستش یا خاموش، اگه روشن باشه ( سیاه ) که عدد ۱ رو بر میگردونه وگرنه ۰ رو بر میگردونه – ورودی های این تابع هم مختصات X و Y پیکسل مد نظر هستش. ( البته این تابع تو نسخه کدویژن وجود داشت ولی غیر فعال بود! و در مطلبی که لینکش رو گزاتشم! هم توضیح ندادمش )

 
تابع rectangle : این تابع دقیقا همون تابع نسخه کدویژن هستش، فقط من یه ویژگی به این تابع اضافه کردم و اون این که میشه تو پر یا تو خالی بودن مربع رو تعیین کرد، به این تابع یه پارامتر اضافه کردم(EorF) که در موقعیت آخر قرار دارد، که اگه مقدار ۰ بدیم ۴ ظلعی تو خالی رسم میشه و اگه ۱ بدیم تو پر رسم میشه، توضیح بقیه پارامتر ها در مطلب قبلی اومده. ^_^

 
تابع glcd_printNumber : خب این تابع جدید هستش و خودم نوشتم، این تابع برا نمایش عدد به کار میره، پارامتر data همون عدد ما هستش، پارامتر base فرمت نمایش عدد هستش که باینری باشه، هگزا دسیمال باشه، دسیمال ( ۱۰ دهی! ) باشه و … بقیه پارامتر ها مثل پارامتر های تابع glcd_puts هستش.

 
 

 

کلیپ های پیشنهادی :
حتما این کلیپ ها رو ببینید، به ترتیب اهمیت در زیر قرار میدم براتون، خیلی قشنگ هستن، ببینید و بعدا نگنید نمیدونستیم -_-

  1. کشورم مال تو.فقط یه لبخند ( کلیپ ۱و۲و۳ رو حتما ببینید )
  2. منافقین شیعه!
  3. راز اعتماد تودۀ مردم به منافقین!
  4. کلیپ زیبای ولایت پذیری ( اینم ببینید بدک نیست. )
 
ممنون از شما که تو این مطلب داشتونو تحمل کردید، امیدوارم این مطلب براتون مفید باشه، ما رو هم از دعای خودتون محروم نکنید ( عمرا کسی دعا کنه *_* )، بیش از این مزاحم نمیشم، فعلا یا علی.

گروه پرسش و پاسخ الکترونیکی در سروش
مهدی دمیرچیلو گوگل میفرماید : إِنَّ اللّه مَعَ الساچِرین ( خداوند با سرچ کنندگان است )
ارسال دیدگاه
36

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

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

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

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

  1. Avatar

    مهمان

    جواد

    سلام خسته نباشید
    من میخوام این کتابخونه رو برای چیپ ks0713 تغییر بدم. این چیپ خودش به تنهایی میتونه یه ال سی دی 64*128 رو درایو کنه. یعنی فقط یه چیپ هست تو ال سی دی که دیگه دوتا پایه چیپ سلکت نداره.
    برای سازگار کردن این کد باهاش به نظرتون چی کار کنم؟ فقط کامند ها رو عوض کنم درست میشه یا نه؟ یا تغییرات دیگه ای هم باید بدم چون سایز آیسیش فرق داره؟

  2. Avatar

    مهمان

    نورانی

    سلام خسته نباشد من یه ال سی دی دارم 12868که درایورش هست AIP31107 ایا میشه این ال سی دی را به جای ال سی دی ks0108 استفاده کرداکه هست درصورت ممکن راهنمایی بفرماید با تشکر

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

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

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

      سلام-اگه دراویر ks108 هم همیشه باشه آره احتمالا بشه وگرنه بعید میدونم.

  3. Avatar

    مهمان

    reza

    سلام
    برای میکرو stm8 چجوری باید ال سی دی رو راه انداخت؟ unknw
    اگه میشه کتابخونه یا منبع معرفی کنین
    ممنون

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

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

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

      سلام – STM کار نکردم

  4. Avatar

    مهمان

    بهنام مددنیا

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

    • Avatar

      مهمان

      reza

      یک پروژه جدید بساز و کتایخانه و کد ها رو وارد کن درست میشه – برای من اول این مشکل بود این کار رو کردم درست شد

  5. Avatar

    مهمان

    احمد

    سلام
    متن فارسی را درست نمایش نمی دهد

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

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

      مهدی دمرچیلو

      بله.باید کتابخونه رو بررسی و اصلاح کنید.

  6. Avatar

    مهمان

    mohammad amin

    با عرض سلام خدمت مهندس گرامی . برنامه عالی کار میکنه من اجرا کردم و تست هم کردم .
    فقط یک مشکل که خوردم نیاز به راهنمائی دارم این که در اعداد اعشار من از تابع sprint استفاده کردم و اعدا اعشار را نمایش بدم. خوب نمایش می دهد ولی بعد از اعشار یک space قرار می دهد یعنی ۰۰۰ .۰ گفتم شاید شما بتوانید راهنمایی کنید من علت قرار دادن space بعد از اعشار را پیدا کنم .
    با تشکر

  7. Avatar

    مهمان

    محمد امین

    سلام من این پروژه بستم با پورت های خود شما
    ولی چرت پرت نشون میده نمایشگر
    چرا ؟

  8. Avatar

    مهمان

    علیرضا آهنی

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

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

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

      مهدی دمرچیلو

      سلام
      با زیاد کردن مقدار تابع delayMs_Timer0 در خط ۳۰۶ ( زیاد کردن تاخیر زمانی بین هر دو عدد نمایشی )
      نمیدونم – من ندیدم

  9. Avatar

    مهمان

    saeed

    سلام جناب مهندس
    ببخشید من برای این که متغیر رشته ای رو نمایش بدم باید چیکارکنم؟ اون دستوری که نوشته بودید برای متغیر رشته ای باید حتما متغیر در فلش ذخیره بشه ولی من متغیرم معمولیه. راه دیگه ای ندارید؟

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

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

      مهدی دمرچیلو

      سلام
      glcd_puts((uchar*)"DMF313.IR",0,0,0,1,0);
      الزامی نیست که متن ها رو حتما در حافظه flash قرار بدیم – تو sram هم باشه موردی نداره.
      من کجای پروژه متغیری رو در فلش ذخیره کردم؟

  10. Avatar

    مهمان

    amir

    سلام ممنون از مطالب خوبتون.من فقط میخوام عدد و حروف روی ال سی دی نمایش بدم.باید چطور از کتابخونه شما استفاده کنم؟

  11. Avatar

    مهمان

    سید

    برای انجام این کار بعد باز کردن نرم افزار CodeVision مسیر File/New/Source را انجام داده
    ویا از کلید میانبر ctrl+N استفاده می کنیم و سپس آن را با نام Source ذخیره می کنیم که در شکل
    زیر مشاهده می کنید ؛ نام دل بخواه می باشد ولی برای این که برنامه ها را از یکدیگر تفکیک کنید
    سعی کنید که این مرحله را با نام Source ذخیره نمایید .
    بعد از ایجاد این کار شما یک فایل منبع در اختیار دارید که باید یک فایل پروژه نیز باز کنید که انجام
    این کار باید مسیر File/New/Project انجام گردد
    بعد از انجام این مرحله یک کار در زیر باز می شود و از ما سوال می پرسد که آیا می خواهید از
    برگه ی Code Wizard استفاده بکنید یا نه ، که ما در این مرحله گزینه ی NO را کلیک می کنیم .
    بعد از انتخاب نوع میکروکنترولر ، کادری دیگر باز می شود که باید به صورت زیر عمل کنیم :
    همان طور که در شکل مشاهده می کنید در این صفحه تنها پروژه ای که با نام Project ساخته ایم
    وجود دارد و ما باید فایل Source را از طریق Add به این صفحه اضافه کنیم برای این کار برروی
    Add کلیک می کنیم و در صفحه ی باز شده بر روی فایل Source.c کلیک کرده و گزینه ی Open
    را می زنیم ، بعد از این کار مشااهده می کنید که فایل Source نیز به Project اضافه می شود .
    در نهایت بعد از اضافه شدن Source.c به این صفحه OK را زده و صفحه بسته می شود .
    اگه این فایل سورسو ایجاد نکنم مشکل پیش میاد؟؟؟؟چونکه بدون اون فایل کامپایل میشه

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

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

      مهدی دمرچیلو

      برا ایجاد پروژه جدید باید :
      File > New > Project
      وقتی کلیک کردی یه گزینه میاد میگه مخای یه پروژه جدید با استفاده از کدویزارد ایجاد کنی – میگی آره – بعد پروژه رو ایجاد میکنی – و کدهای اضافه رو حذف میکنی – رجیستر ها رو هم خودت مقدار دهی میکنی.
      و
      File/New/Source
      فعلا بدردت نمیخوره

    • Avatar

      مهمان

      سید

      ن داداش…منظورمو دقیقا متوجه نشدی
      میگم اگه از کد ویزارد نرم یعنی اون موقع ک میگه میخوای از ویزارد بری یا نه no بزنم نیاز ب سورس داره؟؟

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

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

        مهدی دمرچیلو

        میدونم چی میگی – ولی اون طوری کار کنی راحت طری – حداقل من که این طور راحت ترم
        حالا اون گزینه کدویزارد رو NO میزنیم و بعد نوع میکرو رو انتخاب میکنیم و…. – الان کجاشو مشکل داری؟
        خب رو NO کلیک کردی – بعد خودش یه سورس ایجاد میکنه برا کد نویسی دیگه

  12. Avatar

    مهمان

    سید

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

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

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

      مهدی دمرچیلو

      سلام
      متوجه نشدم چی میگی
      ولی خب اول یه پروژه جدید ایجاد میکنی – ولی کدویزارد رو مقادیرش رو دست نمیزنی –

  13. Avatar

    مهمان

    امیر

    سلام
    وقتتون بخیر
    من میخوام این برنامه رو روی lpc 1788 اجرا کنک ولی وقتی یه پروژه برای اون ایسی ایجاد میکنم و میخوام برنامه شما رو استفاده کنم برنامه ارور میگیره
    به کتابخونه گیر میده منم که باید از کتابخونه باید استفاده کنم

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

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

      مهدی دمرچیلو

      سلام – کار نکردم با ۱۷۸۸ – بررسی کنید خودتون.

  14. Avatar

    مهمان

    saeed

    مهندس همون پروژه خودتونو تغییر دادما. پروژه ی دیگه ای ننوشتم

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

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

      مهدی دمرچیلو

      آها – باشه الان تست میکنم و نتیجه رو اعلام میکنم.

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

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

        مهدی دمرچیلو

        خب من الان تست کردم و پایه p0_0 رو کردم p0_2 پروژه داره کار میکنه – برا شما اصلا کار نمیکنه یا اطلاعات چرت پرت یا خراب نشون میده؟

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

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

          مهدی دمرچیلو

          الان تمام پایه ها رو میبرم رو پورت ۲ – تا مشکل رو پیدا کنم – نتیجه رو همینجا میگم.

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

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

          مهدی دمرچیلو

          خب مشکل رو پیدا کردم bomb
          از پایه P2.10 نمیتونی استفاده کنی – این پایه رو تغییر بده – مثلا بزار P2.13
          دلیلش رو هم میخوای بدونی – باید شماتیک هدر برد eCA رو ببینی

  15. Avatar

    مهمان

    saeed

    اره مهندس رو همون پایه های خودتون جواب داده. من میخوام رو پایه های p2_0 تا p2_12 ببندم..

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

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

      مهدی دمرچیلو

      پروژت رو زیپ کن – تو پیکو فایل آپلود کن – لینک دانلودش رو برام بفرست.

  16. Avatar

    مهمان

    saeed

    مهندس سلام..
    ببخشید من میخوام پایه هارو عوض کنم ولی جواب نمیده. مثلا p0_0 رو میکنم p2_0 ولی جواب نمیده..چیکار باید بکنم؟

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

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

      مهدی دمرچیلو

      سلام – رو خود P0_0 جواب میده؟
      ترتیب جدید پایه هات رو بفرست تا طبق همون تست کنم و بگم مشکل از کتابخونه هستش یا نه – که اگه مشکل از کتابخونه بود تصحیحش میکنم

  17. Avatar

    مهمان

    رضا

    خدا خیرت بده مهندس عجب انسان دل پاکی هستین شما اشاله به هرچی میخواین برسین

  18. Avatar

    مهمان

    جواد

    سلام
    این کتابخونه و دستورات رو میشه برای stm32 استفاده کرد ، اگه نه ممکنه قرار بدید

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

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

      مهدی دمرچیلو

      سلام
      شدنش میشه ( باید تبدیل کنی) ولی من stm کار نکردم.