اطلاعیه

Collapse
No announcement yet.

کمک مدار کیبرد4x4

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

    کمک مدار کیبرد4x4

    سلام
    لطفا کمک کنید
    من این مدارو ساختم
    یه مدار که هرچی تو کیبورد4x4 تایپ کنی توی lcd مینویسه(برنامش به زبان سی توی کدویژن هستش)
    فایل هگز رو هم روی atmega16پروگرم کردم
    الان مدارو که روشن میکنم فقط لامپ سبز پس زمینه lcd روشن میشه و دیگه خبری از نوشته ها نیست
    البته کریستال موجود تو مدار 8mhz که چون نبود من 6 گذاشتم
    لطفا هر چه سریعتر راهنمایی کنید مشکل از مداره یا جایی رو اشتباه کردم؟
    http://www.yasiupload.com/uploads/13...3086677061.rar

    #2
    پاسخ : کمک مدار کیبرد4x4

    در بیشتر این گونه موارد علت عدم نتیجه گیری از LCD ها انتخاب ناصحیح فرکانس کار میکرو در زمان پروگرام نمودن است. توجه کنید که چنانچه فرکانس کار میکرو از فرکانس تعیین شده در کامپایلر بیشتر باشد معمولا چنین مشکلی پیش میآید. چون سرعت LCD ها پائین است نمیتواند به درخواست های میکروکنترلر پاسخ دهد.

    دیدگاه


      #3
      پاسخ : کمک مدار کیبرد4x4

      مشکل از کریستال نیست شما هر مقداری که بذارید فقط سرعت برنامه عوض میشه
      ساختار برنامه شما خیلی عجیبه .... هیج جا شما lcd رو پاک نمی کنید واسه همین عملا با زدن یک کلید دیگه صفحه پر میشه و نمیتونید چیزی بنویسید . هیچ جایی هم delay نگداشتید که در صورت پاک کردن lcd بتونید اون رو برای مدتی ببینید .
      این برنامه رو میتونید از تو سایت پیدا کنید (بدون اشکال )
      اما نکته ای که به نظر من میرسه ایه که جای پایه ها در پروتئوس برعکس واقعیت هست حتما توجه کنید پایه های lcd رو درست وصل کرده باشید وگرنه با تغییر پایه ها فقط نور پشت زمینه فعال میشه
      Don't hesitate to ask any question ..

      دیدگاه


        #4
        پاسخ : کمک مدار کیبرد4x4

        نوشته اصلی توسط syavash_kasraeee
        مشکل از کریستال نیست شما هر مقداری که بذارید فقط سرعت برنامه عوض میشه
        در واقع اینطور نیست. سرعت برنامه تغییر میکنه و همچنین توابع مربوط به delay نیز با کاهش فرکانس افزایش و با افزایش فرکانس کاهش می یابند که این مورد دومی ممکنه مشکل ساز شه. شاید بگوئید در کدویژن تابع LCD از تست پرچم مشغول استفاده میکنه و نباید تحت تاثیر قرار بگیره ولی با نگاه دقیق به تابع آن مشاهده میکنیم که برای تحریک پایه های آن از یک تابع تاخیر داخلی استفاده شده است:
        http://www.eca.ir/forum2/index.php?t...3704#msg243704

        نوشته اصلی توسط syavash_kasraeee
        ساختار برنامه شما خیلی عجیبه .... هیج جا شما lcd رو پاک نمی کنید واسه همین عملا با زدن یک کلید دیگه صفحه پر میشه و نمیتونید چیزی بنویسید . هیچ جایی هم delay نگداشتید که در صورت پاک کردن lcd بتونید اون رو برای مدتی ببینید .
        با توجه به تابع main در این برنامه مشاهده میشه که حداقل تاقبل از رسیدن به تابع keypad(); اشکال وجود نداشته و باید عبارت test keypad روی صفحه نمایش داده میشد ، که طبق گفته آقای mohsen_chavooshi اینطور نشده. بنابر این قبل از اشکال نرم افزاری نوعی اشکال سخت افزاری وجود داره که شاید مربوط به همین مشکل فرکانس باشه. البته خود آقای mohsen_chavooshi باید اعلام کنند که این مورد را رعایت کرده اند یا نه؟

        void main(){
        PORTB=0xff;
        DDRB=0x0f;
        lcd_init(16);
        lcd_gotoxy(0,0);
        lcd_putsf("test keypad"
        keypad();
        while(1){
        };
        }

        نوشته اصلی توسط syavash_kasraeee
        اما نکته ای که به نظر من میرسه ایه که جای پایه ها در پروتئوس برعکس واقعیت هست حتما توجه کنید پایه های lcd رو درست وصل کرده باشید وگرنه با تغییر پایه ها فقط نور پشت زمینه فعال میشه
        نکته ای که اشاره کردید فکر نمیکنم در مورد LCD های کاراکتری صادق باشه ، بلکه در مورد LCD ها گرافیکی این تفاوت وجود داره. ولی به هرحال این احتمال هم وجود داره که پایه ها درست وصل نشده باشند.

        دیدگاه


          #5
          پاسخ : پاسخ : کمک مدار کیبرد4x4

          نوشته اصلی توسط perfect

          نکته ای که اشاره کردید فکر نمیکنم در مورد LCD های کاراکتری صادق باشه ، بلکه در مورد LCD ها گرافیکی این تفاوت وجود داره. ولی به هرحال این احتمال هم وجود داره که پایه ها درست وصل نشده باشند.
          در مورد کریستال باید بگم که من به اندازه ای که فکرشو بکنید از lcd استفاده کردم و هروقت هر کریستالی دستم اومده جای کریستال دیگه گداشتم مثلا حتی 3 رو جای 11.0592 گذاشتم این قضیه در عمل اصلا مشکل ساز نیست اون زمانی که شما در مورد lcd فرمودید اونقدر ها با تغییر فرکانس تغییر نمیکنه که بخواد خراب بشه
          در مورد پایه های lcd هم نیاز نیست که شما خیلی عجیب فکر کنید من خودم اولین باری که با lcd کار کردم همین کارو انجام دادم و از روی پروتئوس بستم . بعد فهمیدم تو پروتئوس پایه 1 سمت چپ هست و تو واقعیت سمت راست
          Don't hesitate to ask any question ..

          دیدگاه


            #6
            پاسخ : کمک مدار کیبرد4x4

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

            دوباره مدار رو چک کن و همانطور که دوستمون گفت باید تاقبل از رسیدن به تابع keypad() عبارت test keypad روی صفحه نمایش داده شود و طبق گفته شما میتوان نتیجه گرفت که اشکال اصلی در نحوه بستن مدار هست.

            دقت کن. :-B
            تشکر لازم نیست. :^O
            اینها همش وظیفه ست. :^O

            دیدگاه


              #7
              پاسخ : پاسخ : کمک مدار کیبرد4x4

              نوشته اصلی توسط syavash_kasraeee
              در مورد کریستال باید بگم که من به اندازه ای که فکرشو بکنید از lcd استفاده کردم و هروقت هر کریستالی دستم اومده جای کریستال دیگه گداشتم مثلا حتی 3 رو جای 11.0592 گذاشتم این قضیه در عمل اصلا مشکل ساز نیست اون زمانی که شما در مورد lcd فرمودید اونقدر ها با تغییر فرکانس تغییر نمیکنه که بخواد خراب بشه
              بنده هم که عرض کردم چنانچه از فرکانسی پائین تر از فرکانس معرفی شده به کامپایلر استفاده کنید برای LCD مشکل ساز نیست. مشکل زمانی بوجود میاد که از از یک کریستال با فرکانس بالاتر استفاده کنید.
              سوال بنده از آقای mohsen_chavooshi این بود که آیا فرکانس اعلام شده به کامپایلر با فرکانس کاری برابره یا نه؟ ولی باتوجه به عدم پیگیری ایشون ظاهراً مشکل خود رو حل کرده اند. بنابر این ادامه بحث بی فایده است.

              نوشته اصلی توسط syavash_kasraeee
              من خودم اولین باری که با lcd کار کردم همین کارو انجام دادم و از روی پروتئوس بستم . بعد فهمیدم تو پروتئوس پایه 1 سمت چپ هست و تو واقعیت سمت راست
              در این مورد هم مشکل از Proteus نیست. شماره 1 و آخر پین های LCD بر روی آن به طور واضح نوشته شده. و شما باید طبق اون عمل میکردید نه چپ و راست بودن مطابق شکل.
              ولی در مورد پایه های LCD های گرافیکی این تفاوت در ترتیب پایه ها وجود داره. به دو شکل زیر توجه کنید خودتون تفاوت جایگاه پین هارو متوجه میشید :


              ترتیب پایه ها برای GLCD با تراشه KS108 بر اساس دیتاشیت:

              دیدگاه


                #8
                پاسخ : کمک مدار کیبرد4x4

                سلام
                ممنون که وقت گذاشتین
                دوستان این برنامه رو کسی دیگه نوشته و آماده کرده و من فقط دارم میسازمش
                من فقط چک کردم دیدم ظاهرا مشکلی نداره و باید کار کنه
                مداررو کامل از نظر اتصالات چک کردم مشکلی نداشت
                پایه های lcd رو هم از روی اسم هاشون وصل کردم(vss k A ...)
                درمورد فیوزبیتها و تنظیماتش میشه بیشتر توضیح بدین
                اگه مدار دیگه ای شبیه همین اما با این قطعات(که مجبور نشم دوباره بخرم)که کاملا تست شده داخل سایت هست لطفا معرفی کنید
                زیاد وقت ندارم
                بازم از لطفتون ممنون

                دیدگاه


                  #9
                  پاسخ : کمک مدار کیبرد4x4

                  با سلام
                  به نظر من از همون کریستال داخلی استفاده کنید ،خیال خودتون رو راحت کنید؛ اون کریستال و خازن ها رو هم بزارید کنار!
                  خوب برای اینکار فیوز بیت ها cksel0:3 رو به صورت زیر تنظیم کنید تا کریستال داخلی با فرکانس 8mhz تنظیم بشه : cksel0=0و cksel1=0 و cksel2=1 و cksel3=0

                  دیدگاه


                    #10
                    پاسخ : کمک مدار کیبرد4x4

                    نوشته اصلی توسط mojtaba_led
                    با سلام
                    به نظر من از همون کریستال داخلی استفاده کنید ،خیال خودتون رو راحت کنید؛ اون کریستال و خازن ها رو هم بزارید کنار!
                    خوب برای اینکار فیوز بیت ها cksel0:3 رو به صورت زیر تنظیم کنید تا کریستال داخلی با فرکانس 8mhz تنظیم بشه : cksel0=0و cksel1=0 و cksel2=1 و cksel3=0
                    میشه بگید فیوزبیتهارو از کجا میشه تغییر داد؟
                    توی کدویژن من نتونستم جایی رو پیدا کنم
                    جلو همه اینا از قبل صفر شده و قابل تغییر نیستن

                    دیدگاه


                      #11
                      پاسخ : کمک مدار کیبرد4x4

                      نوشته اصلی توسط mohsen_chavooshi
                      میشه بگید فیوزبیتهارو از کجا میشه تغییر داد؟
                      توی کدویژن من نتونستم جایی رو پیدا کنم
                      جلو همه اینا از قبل صفر شده و قابل تغییر نیستن
                      سلام.
                      برای اینکه فیوز بیتها رو تغییر بدین طبق شکل زیر از منوی tools گزینه Chip Programmer رو انتخاب کنید.


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



                      بعد از انتخاب گزینه Chip Programmer پنجره زیر باز خواهد شد. برای اینکه از اسیلاتور داخلی با فرکانس 8Mhz استفاده کنید فیوز بیتها رو مطابق شکل تیک بزنید. (فیوز بیتها در قسمت راست لیست شده اند).




                      دیدگاه


                        #12
                        پاسخ : کمک مدار کیبرد4x4

                        دقیقا همین مشکل رو من هم داشتم . به یه مهندس مراجعه کردم ولی تو کامپیوتر اون ال سی دی درست کار میکرد و نشون میداد. بعد برنامه ی پروتئوس خودشو به من هم داد و گفت برنامه پروتئوستو عوض کنی خوب میشه. و خوب هم شد.
                        نورپردازان باران نور شهرستان آران وبیدگل
                        barannoor69@yahoo.com

                        دیدگاه

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