اطلاعیه

Collapse
No announcement yet.

مشکل با lcd

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

    مشکل با lcd

    سلام دوستان من یه lcd دارم که کاراکتریه ولی نوع اون مشخص نیست ولی 16*2.پایه های 1 و 3 که به زمین وصل پایه های 2و15و16 هم به 5V چون فقط می خوام روش بنویسم rs و rw رو هم به زمین وصل کردم که 0 بشن(صفحه lcd آبی رنگه) ولی وقتی به برق وصلش میکنم فقط ستون اول کاراکتراش معلوم میشن (قبل از ارسال داده به lcd) روی همه ی پایه های داده lcd هم 1 رفته .مشکل داره یا نه ؟اگه نداره چطور فعالش کنم؟ممنون

    #2
    پاسخ : مشکل با lcd

    ولوم رو نزاشتی! :job:
    پایه شماره سه باید به یه ولوم وصل بشه که یه سرش +5 و سر دیگه اش زمینه.واسه تنظیم نوره.یک کیلو کافیه.
    انا لله و انا الیه الراجعون

    دیدگاه


      #3
      پاسخ : مشکل با lcd

      ممنون ولی یه سوال چیزی که من دیدم enable وصله به rs , rw , vss که همه وصل میشن به زمین واسه چی؟مگه enable نباید 1 بشه موقع نوشتن تو lcd

      دیدگاه


        #4
        پاسخ : مشکل با lcd

        6تا پایه lcd باید وصلش به میکرو:
        چهارتا db واسه data که پایه 11تا14 هست.
        پایه e و rs هم به میکرو وصله.(6 و 4)
        16 و5 و1 به زمینه.
        2 و 15 به +5ولت.
        3 هم به ولوم وصله.
        انا لله و انا الیه الراجعون

        دیدگاه


          #5
          پاسخ : مشکل با lcd

          من اینجا یه مقاومت 100 اهم و 10 کیلو اهم و 15 کیلو اهم دارم میشه بجای ولوم از یکی از اینه استفاده کرد؟

          دیدگاه


            #6
            پاسخ : مشکل با lcd

            بله باید تقسیم مقاومتی مناسب درست کنی تا نور مناسب رو بگیری.
            می تونی از ولوم 1 کیلو یا 10 کیلو یا 100کیلو هم استفاده کنی!
            انا لله و انا الیه الراجعون

            دیدگاه


              #7
              پاسخ : مشکل با lcd

              LCD رو به همون روشی که شما گفتید وصل کردم الان صفحه روشن شده(بین پایه 3 و 5v+ مقاومت 1 کیلو گذاشتم البته رنگ نداره شایدم 10 کیلو باشه) ولی 8 پایه رو به میکرو وصل کردم چون دارم با AVRSTUDIO برنامه مینویسم و خیلی بلد نیستم 4 بیتی بفرستم وقتی دستور رو میفرستم RS=0 , E=1 و رو پایه های داده هم همون چیزی که میخوام میره ولی هیچی نمایش داده نمیشه

              کسی نبود کمک من کنه ؟

              دیدگاه


                #8
                پاسخ : مشکل با lcd

                خب اگه avr studio وارد نیستی برنامه رو با بسکام یا کدویژن بنویس بعد با avr studio پروگرامش کن.
                با بسکام خیلی ساده اس.
                پایه های 4تایی رو طبق برنامه بزار و rs و E رو دقت کن.
                انا لله و انا الیه الراجعون

                دیدگاه


                  #9
                  پاسخ : مشکل با lcd

                  آخه با usb وصله به کامپیوتر اونم فقط با avr studio کار میکنه دقیقه مثل شما بستم ولی اون دوتا مقاومت من 1 دونه 10 کیلو گذاشتمو الان از همه دستورا استفاده کردم ولی بازم تو صفحه هیچی نمایش نداد.

                  دیدگاه


                    #10
                    پاسخ : مشکل با lcd

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

                    دیدگاه


                      #11
                      پاسخ : مشکل با lcd

                      #include "usbdrv.h"
                      #include <avr/interrupt.h>
                      #include <avr/io.h>

                      #include <avr/pgmspace.h>
                      #include "global.h"
                      #include "timer.h"
                      #include "lcd.h"
                      #include <avr/delay.h>
                      char *str = "hi hassan";
                      uchar reply[1];
                      uchar usbFunctionSetup(uchar data[8]) {
                      if( data[1] == 0x67 ) //this is my request
                      {
                      PORTA=0x01;
                      lcdPrintData(str, 9);
                      _delay_ms(2000);
                      lcdGotoXY(0,1);
                      lcdPrintData("avr gcc", 7);
                      _delay_ms(5000);
                      lcdClear();

                      PORTC = data[2];//pullups must enable in all time

                      reply[0] = PINB;
                      usbMsgPtr = reply;
                      return 1; //return len of valid data in array
                      }
                      return 0;
                      }
                      int main()
                      {
                      lcdInit();
                      usbInit();
                      sei(); //enable all interrupts
                      //LEDs as output
                      DDRC |= 0xff; //PC0 -> LED1 , PC1 -> LED2
                      DDRA |= 0xff;//enable pullups for keys. PC2->Key1 , PC3->Key2
                      DDRB =0x00;


                      for(;
                      {
                      usbPoll();
                      }
                      }

                      این برنامه منه چندبار بدونه lcd تست شده وقتی تو کامپیوتر همون عدد 0x67 رو میفرستم اون تابع اجرا میشه پس نباید مشکلی دیگه داشته باشه .

                      دیدگاه


                        #12
                        پاسخ : مشکل با lcd

                        من کدویژن بلد نیستم.
                        راستی توی پروتئوس بستی و جواب گرفتی؟
                        انا لله و انا الیه الراجعون

                        دیدگاه


                          #13
                          پاسخ : مشکل با lcd

                          سلام بالاخره وصل شد ولی یه مشکل دیگه ایجاد شده وقتی داخل خود میکرو مثلا مینویسم hi تو lcd نمایش داده میشه ولی وقتی کد اسکی کاراکتر رو بهش میدم اشتباه چاپ میکنه مثلا بجای a می نویسه i نمی دونم چکارش کنم؟

                          دیدگاه


                            #14
                            پاسخ : مشکل با lcd

                            نوشته اصلی توسط rexi1r
                            سلام بالاخره وصل شد ولی یه مشکل دیگه ایجاد شده وقتی داخل خود میکرو مثلا مینویسم hi تو lcd نمایش داده میشه ولی وقتی کد اسکی کاراکتر رو بهش میدم اشتباه چاپ میکنه مثلا بجای a می نویسه i نمی دونم چکارش کنم؟
                            سلام
                            باید توی همون دستوری که شماره میزدی رو شماره هاشو برعکس کنی مثل این
                            dedlcdchar 0,..............
                            lcd chr (0(
                            dedlcdchar 1,..............
                            lcd chr(1)
                            این رو بکنی
                            dedlcdchar 0,..............
                            lcd chr (1)
                            dedlcdchar 1,..............
                            lcd chr(0)

                            دیدگاه


                              #15
                              پاسخ : مشکل با lcd

                              سلام اینی که گفتی کجا هست؟من از lcd.h تو avrstudio استفاده کردم که برای نوشتن از تابع
                              lcdPrintData(data[2],1);
                              استفاده می کنه که آرگومان اول داده که بایته و آرگومان دوم هم طول داده که زدم 1 یعنی 1 بایت

                              دیدگاه

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