Thông báo

Collapse
No announcement yet.

giúp đỡ sử dụng nút nhấn điều khiển chtrình vdk

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • giúp đỡ sử dụng nút nhấn điều khiển chtrình vdk

    mình đang học lập trình vdk 89c51 bằng ngôn ngữ asembly ,bây giờ đang muốn tiếp cận đến vấn đề sử dụng nút nhấn để điều khiển các chương trình trong vdk,cụ thể là mình muốn cho led1 (p3.0) sáng bằng cách nhấn vào nut1 (p2.0),muốn cho led2 (p3.1) sáng bằng cách nhấn vào nut2 (p2.1),muốn cho led3(p3.2) sáng bằng cách nhấn vào nut3 (p2.2),muốn cho led4 (p3.4) sáng bằng cách nhấn vào nut4 (p2.3),
    bạn nào viết giúp mình chương trình mẫu này với,rùi từ đây mình sẽ phat triển thêm,cảm ơn các bạn,
    •´¨`»(`'•.¸(`'•.¸¤*¤¸.-'´)¸.•'´)«´¨`•
    «´¨`•..¤ :¤..•´¨`»
    •´¨`»(¸.•'´(¸.•'´¤*¤`'•.¸)`'•. ¸)«´¨`•

  • #2
    Nguyên văn bởi lethu3006 Xem bài viết
    mình đang học lập trình vdk 89c51 bằng ngôn ngữ asembly ,bây giờ đang muốn tiếp cận đến vấn đề sử dụng nút nhấn để điều khiển các chương trình trong vdk,cụ thể là mình muốn cho led1 (p3.0) sáng bằng cách nhấn vào nut1 (p2.0),muốn cho led2 (p3.1) sáng bằng cách nhấn vào nut2 (p2.1),muốn cho led3(p3.2) sáng bằng cách nhấn vào nut3 (p2.2),muốn cho led4 (p3.4) sáng bằng cách nhấn vào nut4 (p2.3),
    bạn nào viết giúp mình chương trình mẫu này với,rùi từ đây mình sẽ phat triển thêm,cảm ơn các bạn,
    bạn set p2 lên cao nhé.
    phần cứng thì cho sw nối mass khi nhấn
    bạn tìm hiểu lệnh:
    jnb và jmp là ok hà.
    VD:nhan 2.0 cho 3.0 sang
    main:
    setb p2.0
    jnb p2.0,hienthi;neu nhấn p.2.0 thì nhảy đến ht,0 thì nhảy về main
    jmp main
    hienthi:
    mov p3,#01h
    call delay

    Comment


    • #3
      Nguyên văn bởi ITnho Xem bài viết
      bạn set p2 lên cao nhé.
      phần cứng thì cho sw nối mass khi nhấn
      bạn tìm hiểu lệnh:
      jnb và jmp là ok hà.
      VD:nhan 2.0 cho 3.0 sang
      main:
      setb p2.0
      jnb p2.0,hienthi;neu nhấn p.2.0 thì nhảy đến ht,0 thì nhảy về main
      jmp main
      hienthi:
      mov p3,#01h
      call delay
      bạn xem giúp minh chương trình này,mình muốn nhấn p2.0 để thực hiện nhay1,nhưng trong lúc thực hiện nháy 1 mà mình muốn chuyển sang nhay2 bằng cách nhấn tiếp tục p2.1,nhưng sao không được vậy bạn,bạn giúp mình với,cảm ơn bạn nhiều

      org 0000h
      main:
      setb p2.0
      jnb p2.0,nhay1
      setb p2.1
      jnb p2.1,nhay2
      jmp main
      nhay1:
      mov p3, # 11110000b
      call delay
      mov p3, # 00001111b
      call delay
      jmp nhay1
      ret
      nhay2:
      mov p3, # 00000000b
      call delay
      mov p3, # 11111111b
      call delay
      jmp nhay2
      ret
      delay:
      mov r3, #10
      vong1: mov r4, #50
      vong2: mov r5, #250
      djnz r5, $
      djnz r4, vong2
      djnz r3, vong1
      ret
      end
      •´¨`»(`'•.¸(`'•.¸¤*¤¸.-'´)¸.•'´)«´¨`•
      «´¨`•..¤ :¤..•´¨`»
      •´¨`»(¸.•'´(¸.•'´¤*¤`'•.¸)`'•. ¸)«´¨`•

      Comment


      • #4
        huhuhuhuhuhu,ai đó ơi giúp mình với,huhuhu
        •´¨`»(`'•.¸(`'•.¸¤*¤¸.-'´)¸.•'´)«´¨`•
        «´¨`•..¤ :¤..•´¨`»
        •´¨`»(¸.•'´(¸.•'´¤*¤`'•.¸)`'•. ¸)«´¨`•

        Comment


        • #5
          Nguyên văn bởi lethu3006 Xem bài viết
          bạn xem giúp minh chương trình này,mình muốn nhấn p2.0 để thực hiện nhay1,nhưng trong lúc thực hiện nháy 1 mà mình muốn chuyển sang nhay2 bằng cách nhấn tiếp tục p2.1,nhưng sao không được vậy bạn,bạn giúp mình với,cảm ơn bạn nhiều

          org 0000h
          main:
          setb p2.0
          jnb p2.0,nhay1
          setb p2.1
          jnb p2.1,nhay2
          jmp main
          nhay1:
          mov p3, # 11110000b
          call delay
          mov p3, # 00001111b
          call delay
          jmp nhay1;khi ct đang ở nhay1 thì làm sao mà kiểm tra được phím nhấn để thay đổi sang ct khác được.
          ret
          nhay2:
          mov p3, # 00000000b
          call delay
          mov p3, # 11111111b
          call delay
          jmp nhay2
          ret
          delay:
          mov r3, #10
          vong1: mov r4, #50
          vong2: mov r5, #250
          djnz r5, $
          djnz r4, vong2
          djnz r3, vong1
          ret
          end
          org 0000h
          main:
          setb p2.0
          jnb p2.0,nhay1
          setb p2.1
          jnb p2.1,nhay2
          jmp main
          nhay1:
          mov p3, # 11110000b
          call delay
          mov p3, # 00001111b
          call delay
          jmp nhay1;khi ct đang ở nhay1 thì làm sao mà kiểm tra được phím nhấn để thay đổi sang ct khác được.
          ret
          nhay2:
          mov p3, # 00000000b
          call delay
          mov p3, # 11111111b
          call delay
          jmp nhay2
          ret
          delay:
          mov r3, #10
          vong1: mov r4, #50
          vong2: mov r5, #250
          djnz r5, $
          djnz r4, vong2
          djnz r3, vong1
          ret
          end[/quote]
          |

          Comment


          • #6
            Nguyên văn bởi tdm Xem bài viết
            org 0000h
            main:
            setb p2.0
            jnb p2.0,nhay1
            setb p2.1
            jnb p2.1,nhay2
            jmp main
            nhay1:
            mov p3, # 11110000b
            call delay
            mov p3, # 00001111b
            call delay
            jmp nhay1;khi ct đang ở nhay1 thì làm sao mà kiểm tra được phím nhấn để thay đổi sang ct khác được.
            ret
            nhay2:
            mov p3, # 00000000b
            call delay
            mov p3, # 11111111b
            call delay
            jmp nhay2
            ret
            delay:
            mov r3, #10
            vong1: mov r4, #50
            vong2: mov r5, #250
            djnz r5, $
            djnz r4, vong2
            djnz r3, vong1
            ret
            end
            [/QUOTE]

            vậy thì phải sửa lại như thế nào vậy bạn,phièn bạn chỉ giúp mình với
            •´¨`»(`'•.¸(`'•.¸¤*¤¸.-'´)¸.•'´)«´¨`•
            «´¨`•..¤ :¤..•´¨`»
            •´¨`»(¸.•'´(¸.•'´¤*¤`'•.¸)`'•. ¸)«´¨`•

            Comment


            • #7
              Làm cách này không biết có đúng không:

              Thêm 1 cái nút PAUSE nữa, rồi trong nhay1 cho nó kiểm tra nếu nhấn pause thì nhảy về chương trình chính, nếu không thì thôi.

              Comment


              • #8
                Nguyên văn bởi NNA_HA Xem bài viết
                Làm cách này không biết có đúng không:

                Thêm 1 cái nút PAUSE nữa, rồi trong nhay1 cho nó kiểm tra nếu nhấn pause thì nhảy về chương trình chính, nếu không thì thôi.
                trên cái kit của mình có nút clear,nếu mình nhấn nút này rùi nhấn nút nhày thì ok,nhưng giờ mình hổng thích như vậy,mình muón nhấn nút nhày thì lập tức nhảy sang nút nhày kia,hihihihihi
                mong các bạn giúp cho
                •´¨`»(`'•.¸(`'•.¸¤*¤¸.-'´)¸.•'´)«´¨`•
                «´¨`•..¤ :¤..•´¨`»
                •´¨`»(¸.•'´(¸.•'´¤*¤`'•.¸)`'•. ¸)«´¨`•

                Comment


                • #9
                  vậy thì phải sửa lại như thế nào vậy bạn,phièn bạn chỉ giúp mình với[/quote]
                  #include <sfr51.inc>
                  org 0000h
                  setb p2.0
                  setb p2.1
                  main:
                  jnb p2.0,nhay1
                  jnb p2.1,nhay2
                  ljmp main
                  nhay1:
                  mov p3, # 11110000b
                  lcall delay
                  jnb p2.1,nhay2
                  mov p3, # 00001111b
                  lcall delay
                  jnb p2.1,nhay2
                  ljmp nhay1
                  nhay2:
                  mov p3, # 00000000b
                  lcall delay
                  jnb p2.0,nhay1
                  mov p3, # 11111111b
                  lcall delay
                  jnb p2.0,nhay1
                  ljmp nhay2
                  delay:
                  mov r3, #10
                  vong1: mov r4, #50
                  vong2: mov r5, #250
                  djnz r5, $
                  djnz r4, vong2
                  djnz r3, vong1
                  ret
                  end
                  |

                  Comment


                  • #10
                    #include <sfr51.inc>
                    org 0000h
                    setb p2.0
                    setb p2.1
                    main:
                    jnb p2.0,nhay1
                    jnb p2.1,nhay2
                    ljmp main
                    nhay1:
                    mov p3, # 11110000b
                    lcall delay
                    jnb p2.1,nhay2
                    mov p3, # 00001111b
                    lcall delay
                    jnb p2.1,nhay2
                    ljmp nhay1
                    nhay2:
                    mov p3, # 00000000b
                    lcall delay
                    jnb p2.0,nhay1
                    mov p3, # 11111111b
                    lcall delay
                    jnb p2.0,nhay1
                    ljmp nhay2
                    delay:
                    mov r3, #10
                    vong1: mov r4, #50
                    vong2: mov r5, #250
                    djnz r5, $
                    djnz r4, vong2
                    djnz r3, vong1
                    ret
                    end
                    sử dụng cách của bạn thì chỉ dung cho nhưng chuơng trình đơn giản thui còn những chương trinh phức tạp hơn thì bó tay,bị lỗi nhiều lắm,huhuhuhuhuhu còn cách giải quyết nào không vậy bạn ơi,huhuhuhu
                    •´¨`»(`'•.¸(`'•.¸¤*¤¸.-'´)¸.•'´)«´¨`•
                    «´¨`•..¤ :¤..•´¨`»
                    •´¨`»(¸.•'´(¸.•'´¤*¤`'•.¸)`'•. ¸)«´¨`•

                    Comment


                    • #11
                      các bạn toàn học hợp ngữ à.Ai gioi C giup minh voi

                      Comment


                      • #12
                        giúp với nào huhuhu,chán rùi nè
                        •´¨`»(`'•.¸(`'•.¸¤*¤¸.-'´)¸.•'´)«´¨`•
                        «´¨`•..¤ :¤..•´¨`»
                        •´¨`»(¸.•'´(¸.•'´¤*¤`'•.¸)`'•. ¸)«´¨`•

                        Comment


                        • #13
                          org 0000h
                          main:
                          setb p2.0
                          jnb p2.0,nhay1
                          setb p2.1
                          jnb p2.1,nhay2
                          jmp main
                          nhay1:
                          mov p3, # 11110000b
                          call delay
                          mov p3, # 00001111b
                          call delay
                          jmp nhay1
                          ret
                          nhay2:
                          mov p3, # 00000000b
                          call delay
                          mov p3, # 11111111b
                          call delay
                          jmp nhay2
                          ret
                          delay:
                          mov r3, #10
                          vong1: mov r4, #50
                          vong2: mov r5, #250
                          djnz r5, $
                          djnz r4, vong2
                          djnz r3, vong1
                          ret
                          end
                          CT của bạn chỉ chạy dc 1 trong 2 CT con thôi, vì 2 vòng quét riêng biệt mà. nếu mún chọn nút khác chỉ cò cách là reset lại. còn ko thì viết bằng cách ngắt.

                          Comment


                          • #14
                            Nguyên văn bởi lethu3006 Xem bài viết
                            sử dụng cách của bạn thì chỉ dung cho nhưng chuơng trình đơn giản thui còn những chương trinh phức tạp hơn thì bó tay,bị lỗi nhiều lắm,huhuhuhuhuhu còn cách giải quyết nào không vậy bạn ơi,huhuhuhu
                            mình chỉ sửa lại chuơng trình của bạn theo yêu cầu bạn đặt ra.Còn với chuơng trình phức tạp không ai viết như vây cả.
                            |

                            Comment


                            • #15
                              Về thuật toán thì đúng vậy rồi! Mô phỏng chạy cũng OK lắm .

                              Nhưng khi làm phần cứng thì gắn nó ko chạy hay chạy bị lỗi. BIết tại sao không?

                              --> Vì bạn thiếu chống nãy cho nút nhấn đó. Nếu đang tự học thì tự nghiên cứu đi nha, lên mạng gõ "chống nãy cho nút nhấn" là thấy liền hà. Thời gian chống nãy khoảng 300ms, còn độ nhạy là 20ms.

                              Comment

                              Về tác giả

                              Collapse

                              lethu3006 Tìm hiểu thêm về lethu3006

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X