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

پروژه و آموزش کامل نمایشگر 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. کلیپ زیبای ولایت پذیری ( اینم ببینید بدک نیست. )
 
ممنون از شما که تو این مطلب داشتونو تحمل کردید، امیدوارم این مطلب براتون مفید باشه، ما رو هم از دعای خودتون محروم نکنید ( عمرا کسی دعا کنه *_* )، بیش از این مزاحم نمیشم، فعلا یا علی.

پسورد فایل های سایت :
www.dmf313.ir
جنگ ما فتح قدس را در پی خواهد داشت (امام خمینی) >>>>>> اگر از صدام بگذریم، اگر مسأله قدس را فراموش کنیم، اگر از جنایت های امریکا بگذریم از آل سعود نخواهیم گذشت. ان‌شاالله اندوه دلمان را را در وقت مناسب با انتقام از امریکا و ال سعود برطرف خواهیم کرد و داغ و حسرت حلاوت این جنایت بزرگ را بر دلشان خواهیم گذاشت و با برپایی جشن پیروزی حق بر جنود کفر و نفاق و آزادی کعبه از دست نااهلان و نامحرمان به مسجد الحرام وارد خواهیم شد (امام خمینی)
ارسال دیدگاه
36

1) تعداد حروف فارسی از حروف غیر فارسی بیشتر باشه دیدگاه جفنگ/اسپم محسوب میشه.

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

3) برای گزاشتن کدهاتون از این سایت استفاده کنید : debian

  1. مهمان

    جواد

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

    1397/10/14
    07:17
  2. مهمان

    نورانی

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

    1397/04/02
    11:54
    • نویسنده این مطلب

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

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

      1397/04/03
      12:17
  3. مهمان

    reza

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

    1397/02/28
    02:06
    • نویسنده این مطلب

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

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

      1397/02/28
      02:27
  4. مهمان

    بهنام مددنیا

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

    1396/09/09
    10:05
    • مهمان

      reza

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

      1397/02/10
      11:52
  5. مهمان

    احمد

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

    1396/07/15
    04:07
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/07/15
      12:23
  6. مهمان

    mohammad amin

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

    1396/06/20
    11:44
  7. مهمان

    محمد امین

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

    1396/06/12
    11:16
  8. مهمان

    علیرضا آهنی

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

    1396/02/24
    02:03
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/02/24
      02:31
  9. مهمان

    saeed

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

    1396/02/17
    04:28
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/02/17
      05:11
  10. مهمان

    amir

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

    1396/02/16
    05:01
  11. مهمان

    سید

    برای انجام این کار بعد باز کردن نرم افزار 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 را زده و صفحه بسته می شود .
    اگه این فایل سورسو ایجاد نکنم مشکل پیش میاد؟؟؟؟چونکه بدون اون فایل کامپایل میشه

    1395/12/28
    01:10
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/12/28
      08:50
    • مهمان

      سید

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

      1395/12/28
      12:59
      • نویسنده این مطلب

        مهدی دمرچیلو

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

        1395/12/28
        02:38
  12. مهمان

    سید

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

    1395/12/28
    12:04
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/12/28
      12:18
  13. مهمان

    امیر

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

    1395/12/17
    07:47
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/12/17
      10:18
  14. مهمان

    saeed

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

    1395/12/16
    08:07
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/12/16
      08:29
      • نویسنده این مطلب

        مهدی دمرچیلو

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

        1395/12/16
        09:08
        • نویسنده این مطلب

          مهدی دمرچیلو

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

          1395/12/16
          10:10
        • نویسنده این مطلب

          مهدی دمرچیلو

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

          1395/12/16
          10:58
  15. مهمان

    saeed

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

    1395/12/16
    12:35
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/12/16
      01:24
  16. مهمان

    saeed

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

    1395/12/16
    12:08
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/12/16
      12:31
  17. مهمان

    رضا

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

    1395/12/01
    08:30
  18. مهمان

    جواد

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

    1395/11/30
    02:00
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/11/30
      02:09