اطلاعیه

Collapse
No announcement yet.

شیفت دادن نوشته ها بصورت عمودی (lcd 2*16)

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

    شیفت دادن نوشته ها بصورت عمودی (lcd 2*16)

    سلام دوستان :bye
    دوستان من میخوام با 2تا کلید (up.down) نوشته ها شیفت پیدا کنند
    مثلا اگه کلید up رو زدم نوشته ها شیفت پیدا کنند به سمت بالا یعنی: اگه تو ردیف اول کلمه test1 نوشته شده بود و تو ردیف دوم test 1 ...test2 بره به سمت بالا و test2 جای گزین بشه . اگه down زده شده شیفت پیدا کنه به سمت پایین

    میخوام منو طراحی کنم تو محیط بسکام که به مشکل برخوردم :read:
    انجمن رو زیرو رو کردم چیزی به پستم نخورد که قانعم کنه :redface:
    مشخصات من در لینک زیر
    http://www.eca.ir/forum2/index.php?topic=1721.msg698645#msg698645

    www.********

    #2
    پاسخ : شیفت دادن نوشته ها بصورت عمودی (lcd 2*16)

    نوشته اصلی توسط majid68
    سلام دوستان :bye
    دوستان من میخوام با 2تا کلید (up.down) نوشته ها شیفت پیدا کنند
    مثلا اگه کلید up رو زدم نوشته ها شیفت پیدا کنند به سمت بالا یعنی: اگه تو ردیف اول کلمه test1 نوشته شده بود و تو ردیف دوم test 1 ...test2 بره به سمت بالا و test2 جای گزین بشه . اگه down زده شده شیفت پیدا کنه به سمت پایین

    میخوام منو طراحی کنم تو محیط بسکام که به مشکل برخوردم :read:
    انجمن رو زیرو رو کردم چیزی به پستم نخورد که قانعم کنه :redface:
    سلام برای اینکار شاید نونه کد زیر کمکت کنه
    k_up alias pind.0
    k_down alias pinb.1
    do
    if k_up=1 then
    home
    lcd "test 1"
    home l
    lcd "test 2"
    end if
    if k_down=1 then
    lcd "test2"
    home l
    lcd "test 1"
    loop
    برد جوجه کشی:
    مطالعه پست 1 (حتما مطالعه کنید)


    مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

    دانلود

    توجه:
    این برد نیمه صنعتی و خانگی هست...
    برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

    آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

    دیدگاه


      #3
      پاسخ : شیفت دادن نوشته ها بصورت عمودی (lcd 2*16)

      سلام به آقا محمد عزیییز :bye
      آقا محمد خیلی گلی
      راستی یه سوال دیگه . حالا اگه بخوام همین کارو یه جوری انجام بدم که مشخص بشه الان رو test1 هستش. مثلا اگه بشه test1 .
      invert بشه خوبه اما فک نمیکنم رو lcdکاراکتریبشه همچین کاری رو پیاده کرد. با GLCD میشه.
      میخوام یه کاری کنم که مشخص بشه که مثلا الان رو test1 هستش بعد اگه کلید ok رو زدم بره زیر روال مربوطه
      مشخصات من در لینک زیر
      http://www.eca.ir/forum2/index.php?topic=1721.msg698645#msg698645

      www.********

      دیدگاه


        #4
        پاسخ : شیفت دادن نوشته ها بصورت عمودی (lcd 2*16)

        نوشته اصلی توسط majid68
        سلام به آقا محمد عزیییز :bye
        آقا محمد خیلی گلی
        راستی یه سوال دیگه . حالا اگه بخوام همین کارو یه جوری انجام بدم که مشخص بشه الان رو test1 هستش. مثلا اگه بشه test1 .
        invert بشه خوبه اما فک نمیکنم رو lcdکاراکتریبشه همچین کاری رو پیاده کرد. با GLCD میشه.
        میخوام یه کاری کنم که مشخص بشه که مثلا الان رو test1 هستش بعد اگه کلید ok رو زدم بره زیر روال مربوطه
        سلام برا این کار شما میتونی گزینه موردنظرت رو به حالت چشمک زن در بیاوری یا مثلا اگه تست یک انتخاب شد چند تا ستاره جلوش باشه که مشخص بشه کدوم گزینه انتخاب شده است همانطور که گفتی تو ال سی دی کاراکتری نمیشه اینورت کرد
        بنابراین برا این کار شما با دو کلید مشخص می کنید
        حالت ستاره
        if kilid1=1 then
        home
        lcd"***test1"
        home l
        lcd"test2 "
        end if

        if kilid2=1 then
        home
        l cd"test1"
        home l
        lcd"***test2"
        end if

        حالت چشمک زن
        if kilid1=1 then
        home
        lcd"test1"
        waitms 500
        lcd" "
        waitms 300
        end if

        if kilid2=1 then
        home l
        lcd"test2"
        waitms 500
        lcd" "
        end if
        با این برنامه لحظه فشرده شدن و نگه داشتن کلید کاراکتر ها چشمک میزنند و در صورت رها کردن چشمک نمی زنند بنابراین شما باید در صورتی که مثلا کلید1 رو زدی باید یک متغیر رو یک کنی و شرط بزاری که اگر این متغیر 1 شد چشمک بزنه حالا اگه کلید هم رها شه به طور دائم چشمک می زنه با کلید اینتر هم باید متغیر رو به حالت پیشفرض برگردانی که از حالت چشمک زدن خارج شوند
        روش های دیگر هم روشن کردن مکان نما و بلینک هست که مناسب این کار نمی باشند
        برد جوجه کشی:
        مطالعه پست 1 (حتما مطالعه کنید)


        مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

        دانلود

        توجه:
        این برد نیمه صنعتی و خانگی هست...
        برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

        آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

        دیدگاه


          #5
          پاسخ : شیفت دادن نوشته ها بصورت عمودی (lcd 2*16)

          محمد جان خیلیییی گلی
          من برناممو به این شکل نوشتم . خوب جواب میده
          $regfile = "m16def.dat"
          $crystal = 8000000

          '............................................ ..............................
          Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0
          Config Lcd = 16 * 2
          Cursor Off
          Cls
          Dim Item(5) As Integer
          Dim I As Integer
          I = 0
          '******************************************** ******************|
          Config Portc.0 = Input : Portc.0 = 1 : Up1 Alias Pinc.0 '|
          Config Portc.1 = Input : Portc.1 = 1 : Down1 Alias Pinc.1 '|
          Config Portc.2 = Input : Portc.2 = 1 : On1 Alias Pinc.2 '|
          Config Portc.3 = Input : Portc.3 = 1 : Off1 Alias Pinc.3 '|
          Config Portc.4 = Input : Portc.4 = 1 : Co Alias Pinc.4 '|
          '******************************************** ******************|
          k_up alias pind.0
          K_down Alias Pinb.1
          Locate 1 , 1
          Lcd " test1"
          Locate 2 , 1
          Lcd " test2"
          Deflcdchar 1 , 32 , 4 , 8 , 23 , 8 , 4 , 32 , 32 ' replace [x] with number (0-7)

          Deflcdchar 2 , 32 , 32 , 4 , 2 , 31 , 2 , 4 , 32 ' replace [x] with number (0-7)
          Hom:
          do
          If Up1 = 0 Then


          Incr I
          Waitms 250


          Select Case I

          Case 1 : Gosub 1

          Case 2 : Gosub 2
          Case 3 : Gosub 3
          Case 4 : Gosub 4

          End Select

          end if
          If On1 = 0 Then
          If I = 1 Then
          Cls
          Lcd "test1 is okey"
          I = 0
          Waitms 100
          Goto Hom
          End If
          If I = 2 Then
          Cls
          Lcd "test2 is okey"
          I = 0
          Waitms 100
          Goto Hom
          End If
          End If
          Loop
          1:
          Cls
          Locate 1 , 1
          Lcd ; Chr(2) ; "test1"
          Locate 2 , 1
          Lcd "test2"
          Locate 1 , 10
          'Lcd I
          'I = 0
          'End If
          Return
          2:
          Cls
          Locate 1 , 1
          Lcd "test1"
          Locate 2 , 1
          Lcd ; Chr(2) ; "test2"

          Return
          3:
          Cls

          Upperline
          Lcd ; Chr(2) ; "test3"
          Lowerline
          Lcd "test4"
          Return
          4:
          Cls
          Upperline
          Lcd "test3"
          Lowerline
          Lcd ; Chr(2) ; "test4"
          I = 0
          Return
          ممنون از اینکه راهنمایی کردی . . عالی هستی :agree:
          مشخصات من در لینک زیر
          http://www.eca.ir/forum2/index.php?topic=1721.msg698645#msg698645

          www.********

          دیدگاه


            #6
            پاسخ : شیفت دادن نوشته ها بصورت عمودی (lcd 2*16)

            نوشته اصلی توسط majid68
            محمد جان خیلیییی گلی
            من برناممو به این شکل نوشتم . خوب جواب میده
            کد:
            [left]$regfile = "m16def.dat"
            $crystal = 8000000
            
            '..........................................................................
            Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0
            Config Lcd = 16 * 2
            Cursor Off
            Cls
            Dim Item(5) As Integer
            Dim I As Integer
            I = 0
            '**************************************************************|
            Config Portc.0 = Input : Portc.0 = 1 : Up1 Alias Pinc.0   '|
            Config Portc.1 = Input : Portc.1 = 1 : Down1 Alias Pinc.1  '|
            Config Portc.2 = Input : Portc.2 = 1 : On1 Alias Pinc.2   '|
            Config Portc.3 = Input : Portc.3 = 1 : Off1 Alias Pinc.3  '|
            Config Portc.4 = Input : Portc.4 = 1 : Co Alias Pinc.4   '|
            '**************************************************************|
            k_up alias pind.0
            K_down Alias Pinb.1
            Locate 1 , 1
            Lcd " test1"
            Locate 2 , 1
            Lcd " test2"
            Deflcdchar 1 , 32 , 4 , 8 , 23 , 8 , 4 , 32 , 32      ' replace [x] with number (0-7)
            
            Deflcdchar 2 , 32 , 32 , 4 , 2 , 31 , 2 , 4 , 32      ' replace [x] with number (0-7)
            Hom:
            do
            If Up1 = 0 Then
            
            
            Incr I
            Waitms 250
            
            
            Select Case I
            
            Case 1 : Gosub 1
            
            Case 2 : Gosub 2
            Case 3 : Gosub 3
            Case 4 : Gosub 4
            
            End Select
            
            end if
            If On1 = 0 Then
            If I = 1 Then
            Cls
            Lcd "test1 is okey"
            I = 0
            Waitms 100
            Goto Hom
            End If
            If I = 2 Then
            Cls
            Lcd "test2 is okey"
            I = 0
            Waitms 100
            Goto Hom
            End If
            End If
            Loop
            1:
            Cls
            Locate 1 , 1
             Lcd ; Chr(2) ; "test1"
            Locate 2 , 1
            Lcd "test2"
            Locate 1 , 10
            'Lcd I
            'I = 0
            'End If
            Return
            2:
            Cls
            Locate 1 , 1
            Lcd "test1"
            Locate 2 , 1
            Lcd ; Chr(2) ; "test2"
            
            Return
            3:
            Cls
            
            Upperline
            Lcd ; Chr(2) ; "test3"
            Lowerline
            Lcd "test4"
            Return
            4:
            Cls
            Upperline
            Lcd "test3"
            Lowerline
            Lcd ; Chr(2) ; "test4"
            I = 0
            Return[/left]
            برنامت که ظاهرا مشکلی نداره برای اطمینان تو پروتیوس چک کن
            ممنون از اینکه راهنمایی کردی . . عالی هستی :agree:
            خواهش می کنم از اینا کم بفرستین
            من حالا به شما کمک میکنم شما هم بعد ها که واسه خودت استاد شدی برا تازه کار ها کمک کن دیگه اینا رو نفرستین یا اگرم میفرستین یک بار کافیه :rolleyes:
            منم ازت ممنونم
            برد جوجه کشی:
            مطالعه پست 1 (حتما مطالعه کنید)


            مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

            دانلود

            توجه:
            این برد نیمه صنعتی و خانگی هست...
            برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

            آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

            دیدگاه


              #7
              پاسخ : شیفت دادن نوشته ها بصورت عمودی (lcd 2*16)

              چشم آقا محمد گل
              تو پروتئوس هم چک کردم جواب داد
              مشخصات من در لینک زیر
              http://www.eca.ir/forum2/index.php?topic=1721.msg698645#msg698645

              www.********

              دیدگاه


                #8
                پاسخ : شیفت دادن نوشته ها بصورت عمودی (lcd 2*16)

                نوشته اصلی توسط majid68
                چشم آقا محمد گل
                تو پروتئوس هم چک کردم جواب داد
                پس حله دیگه :applause: بازم اگه سوالی باشه در خدمتم :rolleyes:
                برد جوجه کشی:
                مطالعه پست 1 (حتما مطالعه کنید)


                مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

                دانلود

                توجه:
                این برد نیمه صنعتی و خانگی هست...
                برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

                آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

                دیدگاه


                  #9
                  پاسخ : شیفت دادن نوشته ها بصورت عمودی (lcd 2*16)

                  :wow:
                  خیلییییی مردی آقا محمد :rolleyes:
                  مشخصات من در لینک زیر
                  http://www.eca.ir/forum2/index.php?topic=1721.msg698645#msg698645

                  www.********

                  دیدگاه

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