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

آموزش ساخت شمارنده عدد در lcd

انجمن های تخصصی برق و الکترونیک ECA

به نام خدا : آموزش ساخت شمارنده عدد در LCD  موضوع این پروژه avr که میخوام بگم آموزش کار با lcd کاراکتری هستش که اگه دوس ندارید این مطلب رو بخونیم میتونید پروژه رو از ته همین مطلب دانلودش کنید. الان انشاالله قراره که پروژه شمارش اعداد تو LCD رو بزارم؛ تو اینترنت یه سایتی همچین برنامه ای رو گزاشته بود ولی… جفت پروژه ها رو میزارم هم برا خودم رو و هم پروژه ای که در یکی از سایت ها هستش smile
آموزش ساخت شمارنده عدد در lcd

آموزش ساخت شمارنده عدد در lcd

توضیح پایه های LCD

۱) VSS به زمین(قطب منفی منبع تغزیه) وصلش میکنیم   و VDD  رو هم به منبع ولتاژ  ۵  ولت. (وقتی LCD میخواد کار کنه باید بهش منبع ولتاژ وصل کنی.)
۲) VEE هم برا فعال کردن درخشندگی LCD هستش. که به همراه یه مقاومت ۱K بای به زمین وصل کنی
(اگه روشن باشه ،  LCD ما صفحه اش روشن تر میشه و اگه خاموش باشه ممکنه تو تاریکی نتونیم چیزای !!! داخل LCD رو بخونیم.====>افتاد ؟؟ )
۳) D0 تا D7  هم پایه های ارسال اطلاعات هستن که اکثرا اگه توجه کرده باشید فقط از D4 تا D7 استفاده میکنن و D0 تا D3  رو کاری بهش ندارند .

علت این موضوع اینه : 

اگه بخوای اطلاعات به صورت ۸ بیتی ارسال بشه باید  از کل این پایه ها ( D0 تا D7 ) استفاده کنی.
اگه هم بخوای به صورت ۴ بیتی>> باید از پایه های D4 تا D7 استفاده کنی
و چون تو حالت ۴ بیتی مقدار سیم کشی کمتره معمولا از این حالت استفاده میکنن.
 ۴) RW : اگه این پایه ۰ باشه: نوشتن /اگه ۱ باشه: خواندن
==> در این مورد چیزی بیش از این من تو اینترنت ندیدم ولی به نظرم : اگه ۱ باشه ما میتونیم بخونیم که تو LCD چی چی نوشته شد و اگه صفر باشه میتونیم تو LCD چیز میز  بنویسیم.   mail
۵) E : برا فعال کردن LCD هستش.
۶) RS : تو کتاب که خونده بودم نوشته بود :  اگه این پایه ۰ باشه: ورودی فرمان/اگه ۱ باشه: ورودی کاراکتر
====>به نظرم و به نظر دوستان! تفسیرش این میشه ^_^ :
ورودی فرمان میشه ، یعنی اینکه میتونی مکان ، مکان نما رو تایین کنی ، یا مثلاً دستور پاک کردن صفحه نمایش رو بفرستی و …
 

 

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

خط ۶ و ۸ که شروع و پایان کد نویسی به زبون اسمبلی هست.
و با خط ۷ ما تعیین میکنیم که میکرو قراره به کدوم پایه ی میکرو وصل بشه.(به PORTA–PORTB و… به کدوم میخواد وصل بشه)
که با توجه به کد های زیر میفهمیم که ما تو این پروژه lcd  خودمون رو به پورت سی وصل کردیم.
۰x1B= پورت A
۰x18=پورت B
۰x15=پورت C
۰x12=پورت D
 

دانلود پروژه شمارنده عدد در lcd

تعداد مطالب : 339 تا
مهدی دمیرچیلو جنگ ما فتح قدس را به همراه خواهد داشت. [ امام خمینی (ره) ]
بقیه جلسات : ???
این مطلب هیچ طبقه بندی یی ندارد!
ارسال دیدگاه

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

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

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

4) نظرات حاوی کد برنامه نویسی تایید نمیشوند ( قالب سایت بهم میریزه )

  1. Avatar

    مهمان

    دینا

    ببخشید اگر بخوام معکوس بشمره دستورش چیه ؟ ممنون میشم بهم بگید

  2. Avatar

    مهمان

    ab

    اگر بخام 0 تا 9 به صورت چشمک زن نمایش بده پجوریه؟

  3. Avatar

    مهمان

    نیما

    سلام ،این شمارنده از چند تا چند هست؟؟
    شمارنده از صفر تا ۱۵ چه جوری میشه؟

  4. Avatar

    مهمان

    سعید

    من یه آرایه دارم به این صورت
    number[10]={0,9,1,2,7,4,3,0,8,2,5}
    که مشاهده می کتید یه شماره موبایل هستش
    میخوام این شماره رو روی ال سی دی نمایش بدم حالا باید چی کار کنم؟
    خواهش می کنم کمکم کنید

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

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

      مهدی دمرچیلو

      سلام
      خب چون دیتا های بالا عدد هستن بخوای نمایششون بدی چرت پرت نمایش داده میشه باید یه کاراکتر تبدیلشون کنی – برای این کار به همشون 48 واحد اضافه کن-بعد بیا از تابع نمایش کاراکتر در lcd استفاده کن.

  5. Avatar

    مهمان

    hadi

    سلام جناب مهنذس.ببخشید من مشابه کد شمارو نوشتم ولی کامپایلرم دو تا ایراد میگیره
    Error: undefined symbol ‘buffer
    ایا میتونیذ کمکم کنید؟’

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

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

      مهدی دمرچیلو

      سلام
      میگه buffer رو تعریف نکردی

  6. Avatar

    مهمان

    جعفریاری

    سلام میشه یک کمکی به من کنین، استاد دانشگاه سوالی به من داده که کدش رو میزارم، در انتهاس سوال گفته که کد باید طوری باشه که علاوه بر نشون دادن کلمات همزمان شمارش انجام بشه، ولی منهر کاری میکنم تو پروتوس رو ال سی دی اول کلمات پاک میشن بعد شروع به شمارش میکنه.. ممنون میشم راهنماییم کنین.
    #include
    #include
    #include
    #include
    #include
    #include
    #asm
    .equ __lcd_port=0x1B ;PORTA
    #endasm
    unsigned int i;
    void main(void)
    {
    char buffer[32];
    lcd_init(16);
    lcd_gotoxy(0,0);
    lcd_putsf(“hello”);
    lcd_gotoxy(9,0);
    lcd_putsf(“welcome”);
    for(i=0; i<99; i++){
    lcd_clear();
    lcd_gotoxy(6,0);
    itoa(i,buffer);
    lcd_puts(buffer);
    delay_ms(100);
    }
    while(1){
    }
    }

  7. Avatar

    مهمان

    ناشناس

    سلام روزتون بخیر میشه ساخت رقم شمارنده عدد lcd با کلید مثال بزنید…

  8. Avatar

    مهمان

    ali

    اقا دمتگرم باز مشکلم حل شد

  9. Avatar

    مهمان

    داود هودانلو

    سلام
    خدا قوت
    مدیر گروهمون گفته یه کانتر بسازم ک تعداد ورود و خروج و افراد داخل یه اتاق رو تا ۹۹۹ تو lcd نمایش بده
    نمیدونم باید از کجا شروع کنم
    اگ میشه لطف کنین راهنماییم کنین
    سپاس
    help help

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

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

      مهدی دمرچیلو

      سلام
      اگه کلا کار با میکرو رو بلد نیستی – برو آموزش های aVR که تو سایت هستش رو بخون – البته هر موضوعی بدردت نمیخوره – مثلا ADC فعلا بدردت نمیخوره و …
      بعد برو مطلب LCD از منو Component رو پیدا کن و بخون و بعد چند تا پروژه ساده باهاش ببند
      بعد برو مطلب تایمر avr رو بخون و بعد بشین پروژت رو بنویس
      اگه برنامه نوییسی سی هم بلد نیستی که اول برو اونو بخون و یاد بگیر.

  10. Avatar

    مهمان

    mehran

    سلام داداش میشه برای glcd هم کد بنویسی یا کمکم کنی خیلی گیر کردم
    باید بگم از lcd nokia 5110 استفاده میکنم

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

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

      مهدی دمرچیلو

      سلام
      اگه منظورت از glcd همون ks0108 هستش که مطلب آمزوش و پروژه ازش تو سایت زیاده.
      هیمن ۵۱۱۰ هم فک کنم آموزشش تو سایت باشه

  11. Avatar

    مهمان

    Ehsan

    سلام مهندس سایت خوبی دارید فقط من طرز کار کتابخونه stdlib.h رو نفهمیدم و کاربردشو تو برنامه اگه امکانش هس بیشتر توضیح بدید..ممنون

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

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

      مهدی دمرچیلو

      سلام
      تابع itoa تو کتابخونه فوق قرار داره – لذا مجبور شدم فراخونیش کنم – تابع itoa هم برا ذخیره عدد اعشاری در یه رشته هستش.

  12. Avatar

    مهمان

    علی

    عالی هستی پسر

  13. Avatar

    مهمان

    mohamadreza

    سلام-با تشکر از سایت خوبتون
    میخواستم اگه میشه در مورد مشکلم کمکم کنید:lcd من یک ردیف مستطیل پر رنگ نشون میده

  14. Avatar

    مهمان

    یوسف

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

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

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

      مهدی دمرچیلو

      سلام
      والا دقیقا متوجه منظورتون نشدم – اگه ریز توضیح بدید یا عکسی فیلمی چیزی بدید ممنون میشم.

  15. Avatar

    مهمان

    حامد

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

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

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

      مهدی دمرچیلو

      سلام
      بله میتونید از کتابخونه Alcd استفاده کنید – از کدویزارد نسخه های جدید کدویژن استفاده کنید به صورت خودکار از همین تابع استفاده میکنه

  16. Avatar

    مهمان

    آمیرزا

    خدا خیرت بده . آقا اگه میشه تو پروژه هایی که آموزشی گذاشتید ال سی دی و نمایشگرهایی که استفاده شده رو مدلش رو بفرمایید و اینکه میشه از انواع دیگه استفاده کرد یا اینکه باید تو کد دست برده بشه؟ ممنونم

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

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

      مهدی دمرچیلو

      سلام
      والا تموم lcd ها lcd کاراکتری هستن و تو سایت های خرید قطعه بزنی lcd کاراکتری فقط یه نوع رو مشاهده میکنی……….تو فایل پروتئوس هم که ته مطلب پیوست کردم رو اگه ببینی متوجه میشی مدل lcd چی هستش.

  17. Avatar

    مهمان

    بهمن

    عاااااااااااااااااااااااالی دممممممممممممممممممممت گرررررررررررررم

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

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

    مهدی دمرچیلو

    سلام با توجه به تاخیر در پاسخگویی آیا الان مشکلت حل شده یا نه؟

  19. Avatar

    مهمان

    smo

    دوست عزیز سلام
    واقعا ممنون بخاطر آموزش هات
    میشه این پروژه رو با اینتراپت هم توضیح بدی نمیدونم چطوری با اینتراپت کار کنم
    ی اینتراپت بزنم شمارنده صعوذی بره بالا و ی اینتراپت زدم نزولی شه
    ممنون

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

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

      مهدی دمرچیلو

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

  20. Avatar

    نویسنده سایت

    amir021

    سلام و خسته نباشید yes
    درباره خط 30 اگه بشه توضیح بیشتری بدید تا من که از برنام نویسی هیچی نمیفهمم یک چیزی بفهمم dash crazy

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

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

      مهدی دمرچیلو

      سلام
      تو خط ۱۰–متغییر i از نوع int هستش
      unsigned int i;
      تو خط ۱۴ هم buffer یک آرایه هستش
      char buffer[];
      حالا برا نمایش متغییر i در lcd به وسیله تابع
      lcd_puts();
      باید ابتدا i رو به آرایه تبدیل کرده و داخل buffer ذخیره کرده که این کار رو تابع زیر انجام میده
      itoa(i,buffer);
      که این تابع برای کتابخونه زیر هستش
      #include

  21. Avatar

    مهمان

    Amir

    سلام اون حلقه بی نهایت اخر برای چی نوشتی shock

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

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

      مهدی دمرچیلو

      سلام
      گزاشتم تا برنامه بیکار نمونه….برش داری هم اشکالی نداره

  22. Avatar

    مهمان

    biner

    توی این پروژه فرق بین lcd_putsf و lcd_putsچیه کی و کجا باید از این دو تا استفاده کنیم؟

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

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

      مهدی دمرچیلو

      lcd_putsf : نمایش متن ذخیره شده تو حافظه فلش
      lcd_puts : تو ram
      ——————————–
      موقع ارور ها dash

      • Avatar

        مهمان

        مجتبی

        سلام 1 ساعت کد برنامه که نوشتید ، بالا پایین میکنم چرا آخه چرا این بازی ها رو در میاره این کامپایلر ….
        اگر دیدی توی ال سی دی چرت پرت نشون میده ….. فقط کافیه char buffer[];
        مقدار دهی کنید char buffer[20
        ];
        کارت درست میشه

      • Avatar

        مهمان

        mohammad

        ببخشید اگ بخوام یه شمارنده درست کنم از صفر تا 59 بشمره ..میشه راهنماییم کنید

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

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

          مهدی دمرچیلو

          اگه کد میخوای باس بگم نه