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

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

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

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

1) تعداد حروف غیر فارسی از حروف فارسی بیشتر باشه دیدگاه به صورت خودکار حذف میشه.

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

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

  1. مهمان

    سعید

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

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

      مهدی دمرچیلو

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

      1397/02/03
      08:27
  2. مهمان

    hadi

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

    1396/11/09
    10:08
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/11/09
      10:28
  3. مهمان

    جعفریاری

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

    1396/10/19
    04:21
  4. مهمان

    ناشناس

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

    1396/09/09
    12:23
  5. مهمان

    ali

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

    1396/05/18
    02:07
  6. مهمان

    داود هودانلو

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

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

      مهدی دمرچیلو

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

      1396/01/12
      11:49
  7. مهمان

    mehran

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

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

      مهدی دمرچیلو

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

      1395/12/12
      06:42
  8. مهمان

    Ehsan

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

    1395/11/07
    03:37
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/11/07
      03:56
  9. مهمان

    علی

    عالی هستی پسر

    1395/09/08
    06:10
  10. مهمان

    mohamadreza

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

    1395/06/24
    10:56
  11. مهمان

    یوسف

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

    1395/01/14
    07:59
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/01/14
      08:50
  12. مهمان

    حامد

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

    1395/01/11
    06:34
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/01/12
      12:01
  13. مهمان

    آمیرزا

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

    1394/10/17
    12:38
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1394/10/17
      06:27
  14. مهمان

    بهمن

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

    1394/09/14
    06:10
  15. نویسنده این مطلب

    مهدی دمرچیلو

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

    1394/03/11
    06:00
  16. مهمان

    smo

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

    1394/02/10
    09:55
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1394/03/11
      05:42
  17. نویسنده سایت

    amir021

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

    1393/12/24
    12:44
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1393/12/24
      01:20
  18. مهمان

    Amir

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

    1393/11/03
    06:39
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1393/11/03
      07:20
  19. مهمان

    biner

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

    1393/10/30
    04:35
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1393/10/30
      05:34
      • مهمان

        مجتبی

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

        1395/01/14
        02:05
      • مهمان

        mohammad

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

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

          مهدی دمرچیلو

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

          1395/08/22
          03:47