اطلاعیه

Collapse
No announcement yet.

مشکل با lcd 20*4 وavr

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

    مشکل با lcd 20*4 وavr

    با سلام
    من یک برنامه نوشتم با atmega8 و lcd 20*4 همه چیز برنامه درست عمل میکنه ولی بعد از دو سه دقیقه تمام فونتها روی lcd به هم میریزه
    پاور رو قطع میکنم ودوباره وصل میکنم تو همون مدت درسته ولی باز به هم میریزه
    یک نکته دیگه این که بیشتر وقتی متن های نوشته شده روی lcd تغییر میکنه این مشکل زودتر پیش میاد

    از دوستان خواهش می کنم کمک کنند

    #2
    پاسخ : مشکل با lcd 20*4 وavr

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

    دیدگاه


      #3
      پاسخ : مشکل با lcd 20*4 وavr

      منبع تغذیه رگوله با 7805
      منظورتون از خازن ها چیه ؟
      از میکرو خروجی رله گرفتم ولی با یک 7812 از مدار جداست و با ترانزیستور راه اندازی میشه

      دیدگاه


        #4
        پاسخ : مشکل با lcd 20*4 وavr

        LCD به صورت 4بیت راه اندازی شده یا باس 8 بیتی ؟
        تو چه محلی استفاده میشه ؟
        با چه زبانی برنامه می نویسی ؟
        از زیربرنامه زیاد استفاده کردی؟
        پشت های سخت افزاری و نرم افزاری چندند؟

        دیدگاه


          #5
          پاسخ : مشکل با lcd 20*4 وavr

          راهاندازی 4 بیتی
          زبان برنامه نویسی بیسیک
          از زیر برنامه دو سه تا ولی لیبل هشت نه تا
          محلش توی کارخانه ولی مدار داخل باکس فلزی هست
          منظرتون رو از سوال چهارمی نفهمیدم

          دیدگاه


            #6
            پاسخ : مشکل با lcd 20*4 وavr

            تجربه به من ثابت کرده باس هشت بیتی بهتر جواب میده و کمتر نویز می گیره . با این حال این نویز معمولا فقط روی LCD می افته . پس با برنامه تا حدی میشه پیچوندش . یعنی هر جایی از LCD که متنی نداره رو با یک متن خالی ( Space ) پر کن .

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

            اون قسمت چهارم هم ایناست :

            $Hwstack = 200
            $Swstack = 200
            $framesize = 200


            اینا رو اول برنامه اضافه کن . با این دستورات میزان حافظه های پشته رو در رم میکرو تعیین می کنی . البته این اعدادو همین طوری نوشتم ( پیش فرضش برای ATMEGA32 به ترتیب 32 و 8 و 8 هست اگه اشتباه نکنم ) . نحوه محاسبش هم به زیربرنامه ها و توابع مورد استفاده تعداد دستورات Call و ... بستگی داره که یه جایی تو انجمن گفته بودم. اما فعلا همین اعداد احتمالا جواب میده .

            دیدگاه


              #7
              پاسخ : مشکل با lcd 20*4 وavr

              نوشته اصلی توسط mahan110
              منبع تغذیه رگوله با 7805
              منظورتون از خازن ها چیه ؟
              از میکرو خروجی رله گرفتم ولی با یک 7812 از مدار جداست و با ترانزیستور راه اندازی میشه
              برای رله دیود 1N4148 در نظر گرفتی؟

              دیدگاه


                #8
                پاسخ : مشکل با lcd 20*4 وavr

                تشکر می کنم از دوستان که جواب دادن
                باید خدمت دوستان عزیز عرض کنم که برای رله دیود 4001 گذاشتم
                وسوال دیگر این که در برنامه همون دستورات رو که دادین همونطور وارد کنم کجا و چه طوری
                راستی فرکانس کاری میکرو همون پیش فرضش هست اگه از یک کریستال خارجی استفاده کنم بهتر نیست؟
                من با ponyprog میکرو رو پرگرام میکنم اگه ممکنه طریقه تنظیم فیوز بیتها رو برای کریستال خارجی بگید
                بازم ممونم

                دیدگاه


                  #9
                  پاسخ : مشکل با lcd 20*4 وavr

                  اون دستوراتو همون اول برنامه قرار بده . بعد از تعریف میکرو و فرکانس کاری.
                  این دوتایی که الان گفتمو حتما تو برنامه تعریف کن . فرکانسی که تعریف می کنیباید با مقدار تنظیمی در فیوزبیت ها یکی باشه .
                  استفاده از کریستال خارجی مطمئن خیلی نتیجه بهتری داره . اما اسیلاتور داخلی هم قابل اطمینانه ( به ظرط ثابت بدون تغذیه و ... ) .

                  دیدگاه


                    #10
                    پاسخ : مشکل با lcd 20*4 وavr

                    نوشته اصلی توسط mahan110
                    تشکر می کنم از دوستان که جواب دادن
                    باید خدمت دوستان عزیز عرض کنم که برای رله دیود 4001 گذاشتم
                    وسوال دیگر این که در برنامه همون دستورات رو که دادین همونطور وارد کنم کجا و چه طوری
                    راستی فرکانس کاری میکرو همون پیش فرضش هست اگه از یک کریستال خارجی استفاده کنم بهتر نیست؟
                    من با ponyprog میکرو رو پرگرام میکنم اگه ممکنه طریقه تنظیم فیوز بیتها رو برای کریستال خارجی بگید
                    بازم ممونم
                    سلام:
                    دیود 1n4001 برای گرفتن جریان برگشتی رله مناسب نیست از 1n4148 استفاده کن احتمال زیاد درست میشه

                    دیدگاه


                      #11
                      پاسخ : مشکل با lcd 20*4 وavr

                      سلام ...............

                      نه اینکه مناسب نباشه .. اگه تحلیل نمودارهاشون رو بررسی کنید میبینید که 4148 بهتر خواهد بود از 4001 .. من هم با این ایده موافقم .. موفق باشید ..
                      دوستان! مدتی کمتر به سایت میام ..

                      دیدگاه


                        #12
                        پاسخ : مشکل با lcd 20*4 وavr

                        نوشته اصلی توسط حسام الدین
                        سلام ...............

                        نه اینکه مناسب نباشه .. اگه تحلیل نمودارهاشون رو بررسی کنید میبینید که 4148 بهتر خواهد بود از 4001 .. من هم با این ایده موافقم .. موفق باشید ..
                        سلام:
                        تایید مطلب دوست عزیز حسام الدین بله 1n4148 توی فرکانس بالا بهتر جاب میده

                        دیدگاه


                          #13
                          پاسخ : مشکل با lcd 20*4 وavr

                          با سلام خدمت دوستان
                          با تشکر از شما
                          همه اون کارهایی که گفتید رو انجهم دادم ولی بازم همون مشکل باقیست
                          لطفا به برنامه یک نگاهی بکنین شاید ازبرنامه باشه ولی برنامه درست کا می کنه
                          $regfile "m8def.dat"
                          $crystal = 1000000

                          $hwstack = 200
                          $swstack = 200
                          $framesize = 200

                          Config Lcd = 20 * 4
                          Config Lcdpin = Pin , Rs = Portc.5 , E = Portc.4 , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0
                          Config Pind.0 = Output
                          Config Pind.2 = Output
                          Config Pinb.4 = Input
                          Config Pind.5 = Input
                          Config Pind.6 = Input
                          Config Pind.7 = Input
                          Config Pinb.1 = Input
                          Config Pinb.2 = Input
                          Config Pinb.3 = Input
                          Config Pind.3 = Output
                          Config Pind.1 = Output

                          Config Debounce = 100




                          Dim A As Byte
                          Dim S As Byte
                          Dim Z As Word
                          Dim T As Byte
                          Dim Sh As Byte
                          Dim Ti As Byte
                          Dim Ala As Byte
                          Dim X As Byte
                          Dim Ala2 As Byte
                          Dim M As Byte
                          Dim Lsb_a As Byte
                          Dim Lsb_b As Byte
                          Dim Lsb_c As Byte

                          Z = 0
                          S = 0
                          M = 0
                          Ti = 0
                          Declare Sub Mas
                          Declare Sub Asg
                          Declare Sub Ssa

                          Readeeprom Ti , 10
                          Readeeprom S , 15
                          Readeeprom A , 20
                          Readeeprom Z , 25

                          Cls
                          Cursor Off
                          Home
                          Cursor Blink
                          Lcd "I"
                          Waitms 200
                          Locate 1 , 2
                          Lcd "N"
                          Waitms 200
                          Locate 1 , 4
                          Lcd "T"
                          Waitms 200
                          Locate 1 , 5
                          Lcd "H"
                          Waitms 200
                          Locate 1 , 6
                          Lcd "E"
                          Waitms 200
                          Locate 1 , 8
                          Lcd "N"
                          Waitms 200
                          Locate 1 , 9
                          Lcd "A"
                          Waitms 200
                          Locate 1 , 10
                          Lcd "M"
                          Waitms 200
                          Locate 1 , 11
                          Lcd "E"
                          Waitms 200
                          Locate 1 , 13

                          Lcd "O"
                          Waitms 200
                          Locate 1 , 14
                          Lcd "F"
                          Waitms 200
                          Locate 1 , 16
                          Lcd "G"
                          Waitms 200
                          Locate 1 , 17
                          Lcd "O"
                          Waitms 200
                          Locate 1 , 18

                          Lcd "D"
                          Waitms 200
                          Locate 2 , 4
                          Lcd "aaaaaa"
                          Waitms 500
                          Locate 3 , 4
                          Lcd "TEL : 111111"
                          Waitms 500
                          Locate 4 , 1
                          Lcd "CREATE BY SHETAB ENG"

                          Cursor Noblink
                          Cursor Off
                          Wait 2
                          Cls



                          Frist: 'f label
                          Ala = 0
                          If Pinb.1 = 1 Then
                          If Pinb.2 = 1 Then Goto Alarm1
                          Else
                          If Pinb.1 = 1 Then
                          If Pinb.2 = 0 Then Goto Alarm2
                          End If
                          End If
                          Startt: 'set of parameter
                          Cls
                          Do

                          Locate 1 , 2
                          Lcd "TO RUN PLEAS START"
                          Locate 3 , 1
                          Lcd "PART NUM" ; " " ; Z



                          Debounce Pind.7 , 1 , Asg , Sub


                          If Pinb.0 = 1 Then
                          Goto Main
                          End If
                          Loop


                          Main:

                          Cls
                          T = 0
                          M = 0
                          X = 0
                          Do
                          Locate 1 , 8
                          Lcd "main"
                          Locate 2 , 1
                          Lcd "PART NUM" ; " " ; Z
                          Locate 3 , 1

                          If Pind.4 = 1 Then Goto Startt

                          If Pinb.1 = 0 Then
                          If Pinb.2 = 0 Then
                          Cls
                          Goto Run



                          If Pinb.1 = 0 Then
                          If Pinb.2 = 1 Then
                          Goto Jak
                          Waitms 500
                          End If
                          End If
                          End If
                          End If

                          Loop

                          Run:
                          Locate 1 , 9
                          Lcd "RUN"
                          Set Portd.0


                          Do
                          Locate 3 , 12
                          Lcd "<"
                          Waitms 100
                          Locate 3 , 11
                          Lcd "<"
                          Waitms 100
                          Locate 3 , 10
                          Lcd "<"
                          Waitms 100
                          Locate 3 , 9
                          Lcd "<"
                          Waitms 100
                          Locate 3 , 8
                          Lcd "<"
                          Waitms 100
                          Locate 3 , 7
                          Lcd "<"
                          Waitms 100
                          Cls
                          Waitms 100
                          Locate 1 , 9
                          Lcd "RUN"
                          If Pind.7 = 1 Then
                          Reset Portd.0
                          Reset Portd.1
                          Goto Startt
                          End If
                          If Pinb.1 = 1 Then
                          Reset Portd.0
                          Cls
                          Goto Run2

                          End If


                          Loop
                          Jak:
                          Cls
                          Locate 4 , 8
                          Lcd "PRESS"
                          Locate 2 , 2 : Lcd Ti
                          Locate 3 , 2 : Lcd T 'tre label
                          Set Portd.2
                          Incr Z
                          Writeeeprom Z , 25

                          Do
                          Waitms 100
                          Incr T
                          If Pind.7 = 1 Then
                          Reset Portd.2
                          Goto Startt

                          End If
                          If T = Ti Then

                          Reset Portd.2

                          Goto Runagin

                          End If
                          Loop
                          Alarm1:
                          Set Portd.3
                          Cls
                          Do
                          Locate 4 , 4
                          Lcd "CHECK THE PART"
                          Waitms 500
                          Cls
                          Waitms 500
                          If Pind.7 = 1 Then
                          Goto Startt
                          Reset Portd
                          End If
                          If Pinb.1 = 0 Then
                          Reset Portd.3
                          Goto Startt
                          End If

                          Loop
                          Alarm2:
                          Run2:
                          Set Portd.1

                          Cls
                          Locate 1 , 4
                          Lcd "SPEED SLOW"
                          Do
                          Waitms 100
                          Locate 3 , 8
                          Lcd "&"
                          Locate 3 , 9
                          Lcd "&"
                          Locate 3 , 10
                          Lcd "&"
                          Locate 3 , 11
                          Lcd "&"
                          Locate 3 , 12
                          Lcd "&"
                          Waitms 100
                          Cls
                          Locate 1 , 6
                          Lcd "SPEED SLOW"

                          If Pind.7 = 1 Then
                          Reset Portd.0
                          Reset Portd.1
                          Goto Startt

                          End If
                          If Pinb.2 = 1 Then
                          Reset Portd.1

                          Goto Run2set
                          End If

                          Loop




                          Sub Asg
                          If Pind.7 = 1 Then Incr Sh
                          If Sh = 3 Then Sh = 0
                          Waitms 100
                          If Sh = 1 Then
                          Goto Sett1
                          End If
                          If Sh = 2 Then
                          Goto Sett2
                          End If
                          If Sh = 3 Then
                          Goto Sett 3
                          End If
                          End Sub



                          Sett1:
                          Cls

                          Locate 1 , 4
                          Lcd "SET PARAMETER"
                          Locate 2 , 1 : Lcd "PRESS TIME"
                          Locate 3 , 1 : Lcd "AFTER SLOW" ; " " ; S
                          Locate 4 , 1 : Lcd "RUN AGINE" ; " " ; A
                          Do
                          Locate 2 , 12
                          Lcd Ti
                          If Pind.5 = 1 Then Incr Ti
                          Waitms 25
                          If Pind.6 = 1 Then Decr Ti
                          Waitms 25
                          Writeeeprom Ti , 10
                          Waitms 10
                          If Pind.7 = 1 Then
                          Goto Sett2
                          End If
                          Waitms 150
                          Locate 2 , 12
                          Lcd " "
                          Waitms 150
                          Loop
                          Sett2:
                          Cls

                          Locate 1 , 4
                          Lcd "SET PARAMETER"
                          Locate 2 , 1 : Lcd "PRESS TIME" ; " " ; Ti
                          Locate 3 , 1 : Lcd "AFTER SLOW"
                          Locate 4 , 1 : Lcd "RUN AGINE" ; " " ; A
                          Do

                          Locate 3 , 12

                          Lcd S

                          If Pind.5 = 1 Then Incr S
                          Waitms 25
                          If Pind.6 = 1 Then Decr S
                          Waitms 25
                          Writeeeprom S , 15
                          Waitms 10
                          If Pind.7 = 1 Then
                          Goto Sett3
                          End If
                          Waitms 150
                          Locate 3 , 12
                          Lcd " "
                          Waitms 150
                          Loop



                          Sett3:
                          Cls

                          Locate 1 , 4
                          Lcd "SET PARAMETER"
                          Locate 2 , 1 : Lcd "PRESS TIME" ; " " ; Ti
                          Locate 3 , 1 : Lcd "AFTER SLOW" ; " " ; S
                          Locate 4 , 1 : Lcd "RUN AGINE"
                          Do
                          Locate 4 , 11
                          Lcd A

                          If Pind.5 = 1 Then Incr A
                          Waitms 25
                          If Pind.6 = 1 Then Decr A
                          Waitms 25
                          Writeeeprom A , 20
                          Waitms 10
                          If Pind.7 = 1 Then
                          Goto Startt
                          End If
                          Waitms 150
                          Locate 4 , 11
                          Lcd " "
                          Waitms 150
                          Loop
                          Run2set:
                          Do
                          Incr X
                          Waitms 100
                          If X => S Then
                          Goto Jak
                          End If
                          Loop
                          Runagin:
                          Do
                          Incr M
                          Waitms 500
                          If A => M Then
                          Goto Main
                          End If
                          Loop

                          دیدگاه


                            #14
                            پاسخ : مشکل با lcd 20*4 وavr

                            نوشته اصلی توسط mahan110
                            با سلام
                            من یک برنامه نوشتم با atmega8 و lcd 20*4 همه چیز برنامه درست عمل میکنه ولی بعد از دو سه دقیقه تمام فونتها روی lcd به هم میریزه
                            پاور رو قطع میکنم ودوباره وصل میکنم تو همون مدت درسته ولی باز به هم میریزه
                            یک نکته دیگه این که بیشتر وقتی متن های نوشته شده روی lcd تغییر میکنه این مشکل زودتر پیش میاد

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

                            دیدگاه


                              #15
                              پاسخ : مشکل با lcd 20*4 وavr

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


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

                              دیدگاه

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