اطلاعیه

Collapse
No announcement yet.

ساخت منو در LCD 16*2

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

    ساخت منو در LCD 16*2

    سلام دوستان خوبم
    من ی برنامه نوشتم که روی LCD منویی رو نمایش میده و کاربر وقتی روی گزینه اول کلید ENTER رو میزنه باید وارد زیرمنو بشه و با زدن کلیدهای چپ یا راست استپ موتور رو به هر طرف که لازمه میچرخونه ، و با زدن دوباره ی کلید ENTER باید به منوی اصلی برگرده .
    حالا مشکلی که من دارم اینه که با زدن ENTER ممکنه که بلافاصله وارد زیرمنو نشه یا لازمه که ENTER رو بیشتر نگه داره یا چند بار ENTER کنه !
    اگر ممکنه من رو راهنمایی کنید که چکار کنم تا این تاخیر برطرف بشه ؟
    البته این رو هم بگم که خروجی تو proteus و روی بردبورد متفاوت هستش ! من شماتیک برنامه توی پروتئوس و عکس بردبورد رو هم براتون میزارم.
    لینک فایل : http://up.toca.ir/images/mt8n9neagp9ewum21nx3.zip


    #2
    پاسخ : ساخت منو در LCD 16*2

    سلام منم تو پروژه هایی که کلید داشت همین مشکل رو داشتم
    ولی یکی از اساتید منو راهنمایی کرد و مشکل بر طرف شد ، ایشون میگفت باید تاخیر کلید زنی رو تو برنامه ها لحاظ کنیم !
    مثلا برای ورودی های کلید به عنوان مثال میشه از این دستور استفاده کرد :

    کد:
    If Pinc.2 = 1 Then
    Waitms 30
    If Pinc.2 = 1 Then
     دستورات مربوط یه If
     End If
    Waitms رو بین 25 تا 30 بزار تا به بهترین نتیجه برسی
    - اَللّهُمَّ عَجِّل لِوَليِّکَ الفَرَج -
    ارتباط با من : ir02x6
    طراحی و ساخت انواع منابع تغذیه سوئیچینگ - SMPS Designer

    دیدگاه


      #3
      پاسخ : ساخت منو در LCD 16*2

      سلام
      اینو هم استفاده کردم بدنیست . :smile:
      کد:
      If Pinc.3 = 0 Then
       Sound Speaker , 120 , 20
       B = 0
        For Key = 1 To 4
            B = B + 1
          Waitms 70
        Next Key
         If B >= 4 Then Goto menu1
      
      End If

      دیدگاه


        #4
        پاسخ : ساخت منو در LCD 16*2

        نوشته اصلی توسط ir02x6
        سلام منم تو پروژه هایی که کلید داشت همین مشکل رو داشتم
        ولی یکی از اساتید منو راهنمایی کرد و مشکل بر طرف شد ، ایشون میگفت باید تاخیر کلید زنی رو تو برنامه ها لحاظ کنیم !
        مثلا برای ورودی های کلید به عنوان مثال میشه از این دستور استفاده کرد :

        کد:
        If Pinc.2 = 1 Then
        Waitms 30
        If Pinc.2 = 1 Then
         دستورات مربوط یه If
         End If

        Waitms رو بین 25 تا 30 بزار تا به بهترین نتیجه برسی
        این کار رو انجام دادم ، الان برمیگرده تو منوی اصلی ولی همچنان تو تابع زیر منوی اول میمونه !
        یعنی وقتی برمیگرده تو منوی اصلی کلید های بالا و پایین کار نمیکنه ولی کلیدهای چپ و راست رو میزنیم استپ موتور رو میچرخونه!
        مشکل این از کجاست؟

        دیدگاه


          #5
          پاسخ : ساخت منو در LCD 16*2

          اساتید کمـــــــــــــــــــــــــــک :sad:

          دیدگاه


            #6
            پاسخ : ساخت منو در LCD 16*2

            سلام ظاهرا شما با کد ویژن کار می کنید . تو بیسیک دستورات مختلفی برای فراخوانی توابع هست به طور مثال gosub, goto, call .
            goto فراخوانی تابع بدون بازگشت . call فراخوانی تابع با بازگشت .
            حالا شما تو کدویژن احتمالا از دستوری استفاده کردی که مثل call عمل میکنه . شما باید هنگامی که وارد زیر منو شدید از دستوری استفاده کنید که به تابع منو اصلی برود و بازگشت به زیر منو نداشته باشد.

            دیدگاه


              #7
              پاسخ : ساخت منو در LCD 16*2

              yasser2000 جان شما خالی ارسال کردید یا من نمیبینم؟!!!!! :arrow:
              oo:

              دیدگاه


                #8
                پاسخ : ساخت منو در LCD 16*2

                yasser2000 منظورتون اگه call by value و call by refrence هست که اینها رعایت شده.
                شما کدی رو که ضمیمه کردم رو دیدی؟

                دیدگاه


                  #9
                  پاسخ : ساخت منو در LCD 16*2

                  نوشته اصلی توسط ami!n
                  yasser2000 منظورتون اگه call by value و call by refrence هست که اینها رعایت شده.
                  شما کدی رو که ضمیمه کردم رو دیدی؟
                  سلام
                  بله کد شما رو دیدم . البته من با کدویژن کار نکردم . تو نت گشتم دستور Goto براش پرش به یه برچسب هست .
                  با دستور goto امتحان کردی ؟

                  لطفا کدویژن کار ها کمک کنند .

                  دیدگاه


                    #10
                    پاسخ : ساخت منو در LCD 16*2

                    منم با WinAVR کار نکردم دوست عزیز

                    من برای خروج از تابع از فلگ position_flag استفاده کردم ، مادامی که 1 باشه تابع اجرا میشه 0 هم که باشه تابع اجرا نمیشه.

                    مغز خودمم داره error میده oo: :angry:
                    نمیدونم چکارش کنم

                    دیدگاه


                      #11
                      پاسخ : ساخت منو در LCD 16*2

                      راستی مهندس GOTO مگه تو زبانهایی مثل Basic استفاده نماشه؟
                      منظور اینکه خودش ی ضعف نیست و برنامه رو ناخوانا و پیچیده نمیکنه؟
                      تا اونجا که یادم میاد همهآ‌ی برنامه نویسای C استفاده از GOTO رو رد میکنن!

                      دیدگاه


                        #12
                        پاسخ : ساخت منو در LCD 16*2

                        کد:
                        dim a as bit
                        if pinx.y = 0 and a= 0 then 
                        a = 1
                        
                        other instructions
                        //
                        //
                        //
                        
                        end if
                        if pinx.y=1 and a = 1 then a = 0
                        دلا خو کن به تنهایی که از تنها بلا خیزد

                        دیدگاه

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