اطلاعیه

Collapse
No announcement yet.

راه اندازی lcd با atmega16

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #31
    پاسخ : راه اندازی lcd با atmega16

    نوشته اصلی توسط mehdi_nxp
    سلام
    پروتئوس یه کم با lcd گرافیکی مشکل داره اینو بنا به تجربه میگم.
    خودم چند روز سر همین مشکل سرکار بودم
    من فایل های شما رو دانلود نکردم ولی این مشکل به احتمال 99% مال تابع glcd_init هست.
    اصلا این تابع رو استفاده کردید؟
    اگه استفاده کردید و باز هم کار نمیکنه کد این تابع رو اینجا قرار بدید.
    انشاا... که حل میشه اینجوریم :angry: نمیخاد. :biggrin:
    نه استفاده نکردم از این!! به جاش توابع
    کد:
    glcd_on();
    و
    glcd_off();
    هستش فکر کنم!


    نوشته اصلی توسط mehdi_nxp
    الان که یه نگاه به عکسهای شما انداختم فهمیدم که:
    شما تو شماتیک پایه RST رو به VCCوصل کردید چرا؟
    این پایه حتما باید به میکرو وصل بشه و در تابع glcd_init از اون استفاده میشه و نقش بسیار بسیار مهمی داره.
    مگه شما از توابع آماده استفاده نمیکنید؟
    اگه نه بگید تا بهتر بشه کمک کرد.
    نه! ولی ریست ال.سی.دی اکتیو لو هستش و موقع اسمبل کردم مستقیم به گراند وصل میکنم! نمیشه که نمیشه!!! :sad:

    دیدگاه


      #32
      پاسخ : راه اندازی lcd با atmega16

      این تابع که میبینید برای راه اندازی اولیه lcd میباشد که یک بار باید اجرا شود.
      همون طور که میبینید پایه RST توی این تابع استفاده شده.و برای ریست کردن lcd به کار میره.
      شما این کد رو با برنامه ات مچ کن و یک با اجراش کن اگه باز هم کار نکرد،دارم براش :evil:
      کد:
      void InitGlcd(void){
       DirRS = 0; تنظیم پایه rs به صورت خروجی
       DirRW = 0;
       DirEN = 0;
       DirCS1 = 0;
       DirCS2 = 0;
       DirRST = 0;
       DirGlcdDataBus = 0x00;
      
       RS = 0;
       RW = 0;
       EN = 0;
       CS1 = 0;
       CS2 = 0;
       RST = 0;
       GlcdDataBus = 0x00;
      
        RST = 0;
       RST = 1;
       ClearGlcd(0); 
      }
      تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

      دیدگاه


        #33
        پاسخ : راه اندازی lcd با atmega16

        نوشته اصلی توسط mehdi_nxp
        این تابع که میبینید برای راه اندازی اولیه lcd میباشد که یک بار باید اجرا شود.
        همون طور که میبینید پایه RST توی این تابع استفاده شده.و برای ریست کردن lcd به کار میره.
        شما این کد رو با برنامه ات مچ کن و یک با اجراش کن اگه باز هم کار نکرد،دارم براش :evil:
        کد:
        void InitGlcd(void){
         DirRS = 0; تنظیم پایه rs به صورت خروجی
         DirRW = 0;
         DirEN = 0;
         DirCS1 = 0;
         DirCS2 = 0;
         DirRST = 0;
         DirGlcdDataBus = 0x00;
        
         RS = 0;
         RW = 0;
         EN = 0;
         CS1 = 0;
         CS2 = 0;
         RST = 0;
         GlcdDataBus = 0x00;
        
          RST = 0;
         RST = 1;
         ClearGlcd(0); 
        }
        احتمالا درسته و مشکل از برنامه و کد هست، چون الآن فایل هگز یکی از دوستان رو پروگرم کردم و خیلی راحت نمایش داد و کار کرد!! احتمالا کتابخونه مشکل داره و باید به طور ریشه ای عوض کنم!!!

        دیدگاه


          #34
          پاسخ : راه اندازی lcd با atmega16

          با تشکر از راهنمایی دوستان، مشکل حل شد

          تصاویر هم به خوبی نمایش داده میشه:

          دیدگاه


            #35
            پاسخ : راه اندازی lcd با atmega16

            آفرین به این همتت
            گفت که دیوانه نهی لایق این خانه نهی

            دیدگاه


              #36
              پاسخ : راه اندازی lcd با atmega16

              سلام
              میخواستم نور بک لایت lcd رو با ی پورت میکرو کنترل کنم مثلا ی شستی میذاریم که با فشار اون به مدت دو ثانبه بک لایت روشن باشه
              و تا زمانی که شستی رو رها نکنیم بک لایت بعد از دو ثانیه خاموش نشه
              اگه کسی هست راهنماییم کنه چجوری کدش رو بنویسم ممنون میشم
              با تشکر از دوستان

              دیدگاه


                #37
                پاسخ : راه اندازی lcd با atmega16

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

                دیدگاه

                لطفا صبر کنید...
                X