اطلاعیه

Collapse
No announcement yet.

چرا lcd کار نمی کند؟

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

    #31
    پاسخ : چرا lcd کار نمی کند؟

    DDRD=0xff
    پوتانسیومتر 10k بین پایه سه و منفی مدارت
    اتصالاتت هم طبق دیتاشیت lcd چک کن
    کارنکرد یه عکس از تمامی اتصالات بزار طوری که معلوم باشه چیو کجا وصل کردی و برنامت هم بزار بگم کجای کارت مشکل داره
    سقراط : دانش من بدانجایی رسید که فهمیدم هیچ نمیدانم.

    دیدگاه


      #32
      پاسخ : چرا lcd کار نمی کند؟

      جسارتا پورتی که به ال سی دی وصل میشه نباید خروجی باشه.باید ورودی باشه.
      آیا جهالت نیست که آدمی ساعات شیرین امروز را فدای روزهای آینده کند؟

      دیدگاه


        #33
        پاسخ : چرا lcd کار نمی کند؟

        نوشته اصلی توسط pooyan-shafiei
        جسارتا پورتی که به ال سی دی وصل میشه نباید خروجی باشه.باید ورودی باشه.
        دوست عزیز مطمنی؟؟؟ باید خروجی از میکرو باشه فقط زمان خوندن رجیستر وضعیت lcd باید ورودی به میکرو باشه
        جهان پیر است و بی بنیاد ازاین فرهاد کش فریاد
        که کرد افسون و نیرنگش ملول از جان شیرینم

        دیدگاه


          #34
          پاسخ : چرا lcd کار نمی کند؟

          نوشته اصلی توسط pooyan-shafiei
          جسارتا پورتی که به ال سی دی وصل میشه نباید خروجی باشه.باید ورودی باشه.
          سلام
          دوست عزیز باید خروجی باشه

          دیدگاه


            #35
            پاسخ : چرا lcd کار نمی کند؟

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

            دیدگاه


              #36
              پاسخ : چرا lcd کار نمی کند؟

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

              دیدگاه


                #37
                پاسخ : چرا lcd کار نمی کند؟

                نوشته اصلی توسط pooyan-shafiei
                والا من تا حالا هرچی ال سی دی را انداختم ورودی بوده.شما تو کد ویزارد هم که تنظیمات را انجام میدید پورت ورودی تنظیم میشه.

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

                دیدگاه


                  #38
                  پاسخ : چرا lcd کار نمی کند؟

                  شما یه مرجع به من معرفی کنید من قانع میشم.یا کتاب یا سایت آموزشی که به زبان c باشه.
                  آیا جهالت نیست که آدمی ساعات شیرین امروز را فدای روزهای آینده کند؟

                  دیدگاه


                    #39
                    پاسخ : چرا lcd کار نمی کند؟

                    اولا من خودم به زبون c با IAR یه کتابخونه برا درایو lcd نوشتم که پورتم به صورت خروجیه دوما این روحیه پرسش گر و منبع طلب شما خوبه ها ولی در کل یه سری چیزا مثل روز روشنه اطلاعات از میکرو به السیدی انتقال پیدا میکنه پس از، میکرو خروج و به السیدی ورود میکنه این مثل روز روشنه دوما شما یه مدار ببند با lcd ولی السیدی و وصل نکن یه led جای پایه های lcd به میکروت ببندی چشمک زدنشو میبینی .فقط در زمانی که میکرو بخواد از lcd وضعیت رو بخونه پورت میکرو ورودی میشه به عبارت دیگه تا زمانی که پایه R/W السیدی صفره پورت میکرو خروجیه :redface:
                    جهان پیر است و بی بنیاد ازاین فرهاد کش فریاد
                    که کرد افسون و نیرنگش ملول از جان شیرینم

                    دیدگاه


                      #40
                      پاسخ : چرا lcd کار نمی کند؟

                      شما تو نت سرچ کنید "راه انداختن ال سی دی کاراکتری" من سایتی را ندیدم که پورت را خروجی کنه.
                      در واقع اطلاعات قراره به ال سی دی فرستاده بشه.پس اگه پورت ورودی هم باشه و یک بشه با یه مقاومت پول پ داخلی یک میشه دیگه.چون ال سی دی از پورت جریان نمیکشه پس منطقش حفظ میشه.
                      آیا جهالت نیست که آدمی ساعات شیرین امروز را فدای روزهای آینده کند؟

                      دیدگاه


                        #41
                        پاسخ : چرا lcd کار نمی کند؟

                        چطوری صفر میشه بعدش؟
                        جهان پیر است و بی بنیاد ازاین فرهاد کش فریاد
                        که کرد افسون و نیرنگش ملول از جان شیرینم

                        دیدگاه


                          #42
                          پاسخ : چرا lcd کار نمی کند؟

                          متوجه سوالتون نشدم.صفر و یک شدنش که مثل حالت خروجی میمونه.فقط وقتی ورودی در نظر میگیریم پورت ها با یه مقاومت از داخل به 0 یا 1 متصل میشند.اگه ازشون جریان کشیده نشده منطقشون همون 0 یا 1 میمونه.ولی مثلا اگه 1 باشه و از بیرون به زمین وصل بشه،منظق ورت هم به 0 تغییر میکنه.
                          آیا جهالت نیست که آدمی ساعات شیرین امروز را فدای روزهای آینده کند؟

                          دیدگاه


                            #43
                            پاسخ : چرا lcd کار نمی کند؟

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

                            دیدگاه


                              #44
                              پاسخ : چرا lcd کار نمی کند؟

                              سلام یه کده اینو تو یه فایل هدر بریزید و سپس داخل برنامه فراخوانی کنید
                              کد:
                              #include <delay.h>
                              #include <stdlib.h>
                              #define LCD_RS PORTA.5
                              #define LCD_EN PORTA.4
                              #define LCD_D4 PORTA.3
                              #define LCD_D5 PORTA.2
                              #define LCD_D6 PORTA.1
                              #define LCD_D7 PORTA.0
                              #define LCD_STROBE ((LCD_EN = 1),(LCD_EN=0))
                              void lcd_write(unsigned char c){
                                if(c & 0x80) LCD_D7=1; else LCD_D7=0;
                                if(c & 0x40) LCD_D6=1; else LCD_D6=0;
                                if(c & 0x20) LCD_D5=1; else LCD_D5=0;
                                if(c & 0x10) LCD_D4=1; else LCD_D4=0;
                                LCD_STROBE;
                                if(c & 0x08) LCD_D7=1; else LCD_D7=0;
                                if(c & 0x04) LCD_D6=1; else LCD_D6=0;
                                if(c & 0x02) LCD_D5=1; else LCD_D5=0;
                                if(c & 0x01) LCD_D4=1; else LCD_D4=0;
                                LCD_STROBE;  
                                delay_us(40);
                              }
                              void lcd_clear(void){
                                LCD_RS = 0;
                                lcd_write(0x1);
                                delay_ms(2);
                              }
                              void lcd_puts(const char * s){
                                LCD_RS = 1;
                                while(*s) lcd_write(*s++);
                              }
                              void lcd_putch(unsigned char c){
                                LCD_RS = 1;  
                                lcd_write(c);
                              }
                              void lcd_goto(unsigned char pos,unsigned char line){
                                LCD_RS = 0;
                                if (line==0)
                                lcd_write(0x80 + pos);
                                else
                                lcd_write(0x80 + pos+ 0x40);
                              }   
                              void lcd_init(void){
                                LCD_RS = 0;
                                delay_ms(15);
                                LCD_D4 = 1;
                                LCD_D5 = 1;
                                LCD_STROBE;  
                                delay_ms(5);
                                LCD_STROBE;
                                delay_us(100);
                                LCD_STROBE;
                                delay_ms(5);
                                LCD_D4 = 0;
                                LCD_STROBE;  
                                delay_us(40);
                                 
                                lcd_write(0x28);
                                lcd_write(0x0C);
                                lcd_write(0x06);
                                lcd_write(0x01);
                              }
                              بعدش این قسمت و یه بار به برنامه اضافه کنید و یه بار حذف کنید نتیجه رو مشاهده کنید
                              کد:
                              DDRA=0x3f;
                              توابع() lcd_init نباید مقدار دهی بشه اینجا
                              سقراط : دانش من بدانجایی رسید که فهمیدم هیچ نمیدانم.

                              دیدگاه

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