اطلاعیه

Collapse
No announcement yet.

مشکل در برنامه با lcd 2*16

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

    مشکل در برنامه با lcd 2*16

    با سلام خدمت دوستان عزیز و با تشکر بابت تمامی راهنمایی هایی که به این جانب نمودید ...
    دوستان به یک مشکل برخوردم که خواستم به مانند همیشه مزاحم شما دوستان شوم برای حل مشکل ...
    مشکل :
    مشکل اینجاست که در مدارم سه کلید اضافه نمودم و برای مدار یک منو ساختم .... حالا وقتی مداررا روشن میکنم وارد منو که میشوم هر ثانیه صفحه ال سی دی میره و میاد تو تست پروتئوس هم همین مشکل هست ....
    دوستان یک نگاه به برنامه بندازید ببینید میدون مشکل از کجاست ؟؟؟
    کد:
    $regfile = "m32def.dat"
    $crystal = 1000000
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
    Config Adc = Single , Prescaler = Auto , Reference = Internal
    Config Portc = Output
    Config Portd = Output
    Config Portb = Output
    Config Pina.0 = Input
    Config Pina.1 = Input
    Config Pina.5 = Input                    'Up
    Config Pina.6 = Input                    'Down
    Config Pina.7 = Input                    'Mode
    
    Set Porta.5
    Set Porta.6
    Set Porta.7
    
    Up_key Alias Pina.5
    Down_key Alias Pina.6
    Mode_key Alias Pina.7
    
    Config Clock = Soft
    Time$ = "23:59:50"
    Deflcdchar 0 , 12 , 18 , 18 , 12 , 32 , 32 , 32 , 32
    Deflcdchar 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4        ' replace ? with number (0-7)
    Deflcdchar 2 , 32 , 8 , 21 , 13 , 5 , 10 , 20 , 32     ' replace ? with number (0-7)
    Deflcdchar 3 , 1 , 32 , 1 , 1 , 1 , 2 , 4 , 32       ' replace ? with number (0-7)
    Deflcdchar 4 , 16 , 17 , 16 , 29 , 13 , 2 , 4 , 32     ' replace ? with number (0-7)
    Deflcdchar 5 , 32 , 32 , 32 , 21 , 17 , 17 , 14 , 32    ' replace ? with number (0-7)
    
    Dim A As Word
    Dim B As Word
    Dim C As Single
    Dim Uptemp As Single
    Dim Downtemp As Single
    Dim Fan As Single
    Dim Motor As Single
    Dim Heater As Single
    Dim Day As Single
    Dim Menu As Single
    Day = 0
    Uptemp = 38
    Downtemp = 36
    Fan = 00
    Heater = 00
    Motor = 00
    
    Cursor Off
    
    Normal:
    Enable Interrupts
    Waitms 500
    Start Adc
    Do
    A = Getadc(0)
    B = Getadc(1)
    C = A - B
    C = C / 4
    
      If Mode_key = 0 Then
       Cls
       Disable Interrupts
       Incr Menu
       If Menu > 5 Then
         Menu = 0
         Goto Normal
       End If
       Waitms 200
      End If
    
      Select Case Menu
      Case 1:
      Cls : Home : Lcd "UP TEMP = " ; Uptemp
      Waitms 200
      If Up_key = 0 Then
       If Uptemp < 60 Then Incr Uptemp
      End If
      If Down_key = 0 Then
       If Uptemp > 0 Then Decr Uptemp
      End If
      Case 2:
      Cls : Home : Lcd "DOWN TEMP = " ; Downtemp
      Waitms 200
      If Up_key = 0 Then
       If Downtemp < 60 Then Incr Downtemp
      End If
      If Down_key = 0 Then
       If Downtemp > 0 Then Decr Downtemp
      End If
      Case 3:
      Cls : Home : Lcd "MOTOR OFF = " ; Motor
      Waitms 200
      If Up_key = 0 Then
       If Motor < 1 Then Incr Motor
      End If
      If Down_key = 0 Then
       If Motor > 0 Then Decr Motor
      End If
      Case 4:
      Cls : Home : Lcd "FAN OFF = " ; Fan
      Waitms 200
      If Up_key = 0 Then
       If Fan < 1 Then Incr Fan
      End If
      If Down_key = 0 Then
       If Fan > 0 Then Decr Fan
      End If
      Case 5:
      Cls : Home : Lcd "HEATER OFF = " ; Heater
      Waitms 200
      If Up_key = 0 Then
       If Heater < 1 Then Incr Heater
      End If
      If Down_key = 0 Then
       If Heater > 0 Then Decr Heater
      End If
       End Select
       Home : Lcd "Temp =" ; C ; Chr(0) ; "c  "
       Lowerline : Lcd ; Chr(5) ; Chr(4) ; ":" ; Time$ ; Chr(3) ; Chr(2) ; ":" ; Day ;
       If Time$ = "00:00:00" Then Day = Day + 1
       If C < Downtemp Then Set Portb.0
       If C >= Uptemp Then Reset Portb.0
       If Fan = 1 Then Reset Portb.1
       If Heater = 1 Then Reset Portb.0
       If Motor = 1 Then Reset Portb.2
       Loop
    End
    پیشاپیش از تمامی دوستان متشکرم ...
    طراحی برد و شماتیک و برنامه نویسی پروژه شما با هزینه اندک پذیرفته میشود ...برای سفارش پیغام خصوصی بدید ...

    #2
    پاسخ : مشکل در برنامه با lcd 2*16

    همچنان منتظر کمک شما دوستان عزیز ...
    طراحی برد و شماتیک و برنامه نویسی پروژه شما با هزینه اندک پذیرفته میشود ...برای سفارش پیغام خصوصی بدید ...

    دیدگاه


      #3
      پاسخ : مشکل در برنامه با lcd 2*16

      سلام
      برنامه نویسیت اشتباه هست البته در قسمت منو , شما نباید دستور cls رو در هر تغییر بنویسی برای اینکه بتونی اعداد اضافی یا کار کتر های اضافی رو پاک کنی مثلا فرض کنید مقدار یک متغیر افزایش دادید ومقدارش شد یه عدد 3 رقمی و دوباره خواستید کاهش بدید که بشه 1 رقمی واون 2 عدد قبلی پاک بشن نباید از cls اشتفده کنی چون داخل حلقه هست هر بار که حلقه تکرار بشه یکبار صفحه السی دی پاک میشه که اشتباه هست
      شما cls ها رو پاک کن واینطوری بنویس برای مثال یک خط مینویسم

      Case 1:
      " " ; Home : Lcd "UP TEMP = " ; Uptemp
      cls رو حذف کن وپس از متغیر uptemp یه نقطه ویرگول بذار و بعد یک گیومه وبهد نسبت به تعداد رقم فاصله یا space بذار و بعد دوباره گیومه
      و همه خطهای دیگه رو همینطور اصلاح کن
      اگه نتونستی بگو خودم برنامه رو اصلاح کنم
      امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

      دیدگاه


        #4
        پاسخ : مشکل در برنامه با lcd 2*16

        سلام
        بیا برنامه رو برات کلا اصلاح کردم و با پرتئوس هم تست کردم وفایلهاشو برات اپ کردم از ادرس زیر دانلود کن
        http://uplod.ir/phoqhzq82mg9/eeeeeeee.rar.htm
        امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

        دیدگاه


          #5
          پاسخ : مشکل در برنامه با lcd 2*16

          خیلی آقایی داداش ...
          چند روزیه گیر این مسئله شدم ...
          نمیدونستم ایراد از کجاس ...
          ممنونتم یه دنیا ...مشکل با کمکتون حل شد ...

          طراحی برد و شماتیک و برنامه نویسی پروژه شما با هزینه اندک پذیرفته میشود ...برای سفارش پیغام خصوصی بدید ...

          دیدگاه


            #6
            پاسخ : مشکل در برنامه با lcd 2*16

            سلام
            خواهش میکنم شما لطف دارید بالاخره تو انجمت باید به هم دیگه کمک کنیم خب حدارو شکر که مشکلتون حل شد
            امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

            دیدگاه

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