نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
أَللّهُمَّ ارْزُقْنی شَفاعَةَ الْحُسَیْنِ یَومَ الْوُرُودِ
مهدی دمیرچیلو

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

30

به نام خدا : آموزش ساخت شمارنده عدد در 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

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

    مهمان

    ابوالفضل

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

  2. دینا

    مهمان

    دینا

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

  3. ab

    مهمان

    ab

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

  4. نیما

    مهمان

    نیما

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

  5. سعید

    مهمان

    سعید

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

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

  6. hadi

    مهمان

    hadi

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

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

  7. جعفریاری

    مهمان

    جعفریاری

    سلام میشه یک کمکی به من کنین، استاد دانشگاه سوالی به من داده که کدش رو میزارم، در انتهاس سوال گفته که کد باید طوری باشه که علاوه بر نشون دادن کلمات همزمان شمارش انجام بشه، ولی منهر کاری میکنم تو پروتوس رو ال سی دی اول کلمات پاک میشن بعد شروع به شمارش میکنه.. ممنون میشم راهنماییم کنین.
    #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){
    }
    }

  8. ناشناس

    مهمان

    ناشناس

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

  9. ali

    مهمان

    ali

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

  10. داود هودانلو

    مهمان

    داود هودانلو

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

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

  11. mehran

    مهمان

    mehran

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

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

  12. Ehsan

    مهمان

    Ehsan

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

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

  13. علی

    مهمان

    علی

    عالی هستی پسر

  14. mohamadreza

    مهمان

    mohamadreza

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

    مشاهده پاسخ ها (3)
  15. یوسف

    مهمان

    یوسف

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

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

  16. حامد

    مهمان

    حامد

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

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

  17. آمیرزا

    مهمان

    آمیرزا

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

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

  18. بهمن

    مهمان

    بهمن

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

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

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

    مهدی دمرچیلو

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

  20. smo

    مهمان

    smo

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

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

  21. amir021

    نویسنده سایت

    amir021

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

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

  22. Amir

    مهمان

    Amir

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

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

  23. biner

    مهمان

    biner

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

    مشاهده پاسخ ها (4)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

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

      • مجتبی

        مهمان

        مجتبی

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

      • mohammad

        مهمان

        mohammad

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

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

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

          مهدی دمرچیلو

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