اطلاعیه

Collapse
No announcement yet.

ts12864a LCD

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

    #31
    پاسخ : ts12864a LCD

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

    دیدگاه


      #32
      پاسخ : ts12864a LCD

      سلام
      مشکل شما با LCD کاملا حل شد؟
      هرکه خود را یک بار با اشکهایش شستشو دهد تا زنده است پاک و مقدس میماند

      دیدگاه


        #33
        پاسخ : ts12864a LCD

        سلام
        اره و من از شما هم تشکر کردم
        اما نمیالن مشکلم با تایمر صفر هست که نمیتونم تو بسکام راش بندازم اما تایمر 1 رو راحت راه میندازم :cry:

        دیدگاه


          #34
          پاسخ : ts12864a LCD

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

          دیدگاه


            #35
            پاسخ : ts12864a LCD

            آقای ma_bazrafshan فکر کنم تو انجمن چندین تایپک در مورد تایمر صفر بود.

            آقای microtecknic کدوم نرم افزارو میگید؟
            www.icesi.ir

            دیدگاه


              #36
              پاسخ : ts12864a LCD

              سلام
              میلاد جان خوبی؟
              ببین همه اون تاپیک ها رو خوندم و بعضی هاشو خودم نوشتم اما مشکلم حل نشد
              :cry:

              دیدگاه


                #37
                پاسخ : ts12864a LCD

                خوب حالا مشکلت چیه همون تایمر 0 رو میگی؟

                یه کم بیشتر توضیح بده. برنامتو هم بذار.
                www.icesi.ir

                دیدگاه


                  #38
                  پاسخ : ts12864a LCD

                  سلام
                  خوبی؟
                  آقا مشکلاتم حل شد :wow:

                  دیدگاه


                    #39
                    پاسخ : ts12864a LCD

                    سلام
                    اقا من سرعت موتور رو روی lcd دارم نشون میدم اما وقتی سرعت صفر میشه lcd عدد صفر رو نشون نمی ده بلکه اخرین عدد رو نشون میده
                    البته اول که شروع به کار میکنه صفر رو نشون میده اما در انتها که از متوقف میشه هم باید صفر نشون بده که نمیده چرا؟

                    دیدگاه


                      #40
                      پاسخ : ts12864a LCD

                      نوشته اصلی توسط ma_bazrafshan
                      سلام
                      اقا من سرعت موتور رو روی lcd دارم نشون میدم اما وقتی سرعت صفر میشه lcd عدد صفر رو نشون نمی ده بلکه اخرین عدد رو نشون میده
                      البته اول که شروع به کار میکنه صفر رو نشون میده اما در انتها که از متوقف میشه هم باید صفر نشون بده که نمیده چرا؟
                      مسلما ایراد نرم افزاری داری. دوباره برنامه رو چک کن. اگه پیدا نکردی ، برنامه رو بذار تا برررسیش کنیم.

                      دیدگاه


                        #41
                        پاسخ : ts12864a LCD

                        فکر کنم بیسکام با این کنترلر ks108 مشکل داره البته این موضوع از قبل هم بوده فکر کنم اگه از کاپایر تحت بیسیک دیگه ای استفاده کنی زود تر نتیجه بگیری و اگه نه حتما باید bas com باشه برو از GF LCD سری T693 بخر خیال خودتو راحت کن .............. ورژن lcd تو کانفیگ پایه ها تغییر ایجاد نمیکنه
                        اینو مطمعن باش...... خوراک بیس کام کنترلر T693 هستش...........

                        دیدگاه


                          #42
                          پاسخ : ts12864a LCD

                          سلام
                          ببینید lcd کاملا درست کار میکنه منتها مشکل اینجاست که وقتی موتور ایست میکنه خوب؟lcd برا نمایش سرعت موتور صفر رو نشون نمیده
                          آقا حامد بازم ممنونم
                          $regfile = "M16def.dat"
                          $lib "glcdKS108.LBX"
                          $include "font8x8.font"
                          $crystal = 8000000
                          'Config Adc = Single , Prescaler = Auto , Reference = Avcc
                          Config Graphlcd = 128 * 64sed , Dataport = Porta , Controlport = Portc , Ce = 7 , Ce2 = 6 , Cd = 5 , Rd = 4 , Reset = 2 , Enable = 3
                          Config Timer1 = Counter , Edge = Rising
                          Config Timer0 = Timer , Prescale = 8
                          Config Pinb.3 = Output
                          Dim X As Byte , Y As Byte , A As Byte
                          Dim W As Word , Perc As Word , Volt As Word , Volt_d As Byte
                          Dim Check As Bit , Count As Integer
                          Dim Mor As Word , Noise As Integer , Mor2 As Word
                          Enable Interrupts
                          Enable Timer1
                          Enable Timer0
                          Setfont Font8x8
                          Cls
                          Check = 0
                          Count = 0
                          Noise = 0
                          Mor2 = 0
                          Counter1 = 0

                          Start Timer1
                          On Timer0 Int_routin
                          Timer0 = 6
                          Start Timer0
                          Do

                          If Check = 1 Then
                          Toggle Portb.3
                          Check = 0

                          Start Adc
                          Mor = Counter1
                          If Noise = 3 Then
                          Mor = Mor2 / 3
                          Mor2 = 0
                          Mor = Mor * 60
                          Else
                          Mor2 = Mor + Mor2
                          Noise = Noise + 1
                          Counter1 = 0

                          End If
                          Lcdat 1 , 1 , "RPM="
                          Locate 1 , 5 : Lcd Mor
                          Counter1 = 0

                          End If
                          Loop
                          End
                          Int_routin:
                          Stop Timer0
                          Incr Count
                          If Count = 4000 Then
                          Count = 0
                          Check = 1
                          End If
                          Timer0 = 6
                          Start Timer0
                          Return

                          دیدگاه


                            #43
                            پاسخ : ts12864a LCD

                            نوشته اصلی توسط ma_bazrafshan
                            سلام
                            ببینید lcd کاملا درست کار میکنه منتها مشکل اینجاست که وقتی موتور ایست میکنه خوب؟lcd برا نمایش سرعت موتور صفر رو نشون نمیده
                            کاش دوباره یه توضیحی میدادی که قراره چیکار کنی.
                            اما من که برنامه رو همین طوری یه نگاه کردم یه چیز برام واضح بود.
                            تنها چیزی که نمایش داده میشه متغیر Mor هست. که این متغیر تنها در 3 جا در سمت چپ تساوی قرار میگیره(یعنی تو سه جا می تونه تغییر کنه) با توجه به برنامه Mor یا توسط مقدار کانتر می تونه صفر بشه یا توسط Mor2 .
                            اگه فرض کنیم Mor توسط Mor2 صفر میشه پس باید خود Mor2 هم یه جایی صفر بشه. تنها جایی که Mor2 صفر میشه برقراری شرط Noise=3 هست . من جایی ندیدم که متغیر Noise جایی بتونه دوباره صفر بشه تا دوباره بتونه تا 3 برسه....
                            ...
                            دوباره یه بررسی بکن. اگه حل نشد یه توضیح مختصر راجع به نحوه عملکرد پروژه بده تا روش کار کنیم.

                            در ضمن برای LCD های KS0108 از همون LCDAT استفاده کن. ( یه جا تو برنامه از Locate استفاده کردی که البته خطای دیباگ نداره)

                            دیدگاه


                              #44
                              پاسخ : ts12864a LCD

                              سلام
                              ببین یرنامه در اصل اینه

                              $regfile = "M16def.dat"

                              $lib "glcdKS108.LBX"

                              $include "font8x8.font"

                              $crystal = 8000000
                              '
                              Config Adc = Single , Prescaler = Auto , Reference = Avcc

                              Config Graphlcd = 128 * 64sed , Dataport = Porta , Controlport = Portc , Ce = 7 , Ce2 = 6 , Cd = 5 , Rd = 4 , Reset = 2 , Enable = 3

                              Config Timer1 = Counter , Edge = Rising

                              Config Timer0 = Timer , Prescale = 8

                              Config Pinb.3 = Outpu

                              Dim X As Byte , Y As Byte , A As Byte

                              Dim W As Word , Perc As Word , Volt As Word , Volt_d As Byte

                              Dim Check As Bit , Count As Intege

                              Dim Mor As Word , Noise As Integer , Mor2 As Word

                              Enable Interrupts

                              Enable Timer1

                              Enable Timer0

                              Setfont Font8x8

                              Cls

                              Check = 0

                              Count = 0

                              Counter1 = 0


                              Start Timer1

                              On Timer0 Int_routin

                              Timer0 = 6

                              Start Timer0

                              Do


                              If Check = 1 Then

                              Toggle Portb.3

                              Check = 0

                              Start Adc

                              Mor = Counter1

                              Mor = Mor * 60

                              Lcdat 1 , 1 , "RPM
                              ="
                              Lcdat 1 , 5 : Lcd Mo
                              r
                              Counter1 = 0


                              End If
                              Loop

                              End
                              Int_routin:
                              Stop Timer0
                              Incr Count
                              If Count = 4000 Then
                              Count = 0
                              Check = 1
                              End If
                              Timer0 = 6
                              Start Timer0
                              Return
                              حالا این برنامه یه کاره ساده انجام میده
                              سرعت یک موتور رو روی lcd نشون میده به این ترتیب که تعداد دفعاتی که سنسور هال پالس میده رو در هر یک ثانیه میخونه یه تایمر برا شمردن یک ثانیه

                              بکار رفته و یک تایمر هم برا این که تعداد پالس رو تو یه ثانیه بشماره خوب؟حالا مساله اینجاست که سرعت موتور که به صفر میرسه روlcd صفر نشون داده نمیشه بلکه اخرین عدد میمونه رو lcd یعنی در اصل lcd درست کار میکنه اما نوشته اخر پاک نمی شه
                              درضمن با اون mor 2 میخواستم 3 بار ورودی رو بخونم بعد بر سه تقسیم کنم بعد نشون بدم که نیویز رو یه جورایی کم کنم البته نویز که نه همون پرش عدد رو lcd رو میگم

                              من میخوام که رو lcd صف

                              دیدگاه


                                #45
                                پاسخ : ts12864a LCD

                                من باز برنامه رو سطحی نگاه کردم.
                                جند تا نکته به ذهنم رسید:
                                1- با دستور LCDAT شماره سطر و شماره پیکسل ستون رو مشخص می کنی. در عمل "=RPM" دیده نمیشه.
                                2- قسمت مربوط به تولید 1 ثانیه کاملا درسته.
                                3- برنامه کانتر هم مشکلی نداره.
                                4-دلیل پیکربندی ADC رو نفهمیدم. کجا از ADC استفاده کردی؟
                                5- این بار فکر می کنم ایراد از سخت افزارت باشه. یه برنامه ساده برای کانتر بنویس و دوباره امتحان کن. همون طور که تو برنامه تعریف کردی باید یک لبه بالا رنده داشته باشی . چک کن ببین واقعا همین طوره؟ می تونی پایه کانتر رو با یک مقاومت Pull Down کنی.

                                دیدگاه

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