Thông báo

Collapse
No announcement yet.

Giúp em cái thuật toán này.

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

  • Giúp em cái thuật toán này.

    Đang học nên còn gà lắm,máy bác giúp e phần này với.

    Có 8 nút nhấn đc nối vào p1,8 công tắc DIP đc nối vào p2,khi nút nhấn đóng thì port tích cực 0,dùng lệnh gì để so sánh số nút nhấn p1 = p2 thì setb 1 chân nào đó lên mức cao.

    ví dụ mình gạt DIP ở p2 là 5,nếu ở p1 mà có 5 nút hoặc >5 đc nhấn (nút nào cũng đc,ko theo thứ tự) thì led sáng,ko bằng thì led tắt.

    Có cái ảnh cho dễ hiểu ạ.
    Click image for larger version

Name:	sch.jpg
Views:	1
Size:	57.7 KB
ID:	1414410
    ĐT: 0972 20 58 68
    Gmail:

  • #2
    ai giúp em cách làm với,sau khi đọc giá trị từ các port rồi đưa vào thanh ghi nào đó,sau đó so sánh nếu bằng thì cho led sáng,ko bằng thì tắt led đc ko các bác.
    ĐT: 0972 20 58 68
    Gmail:

    Comment


    • #3
      mov a,p1
      cjne a,p2,kobang
      batled
      jmp didaudo
      kobang:
      tatled
      lập trình vi điều khiển 8051 - avr - pic- thiết kế mạch điện tử

      Học Hiểu Nguyên Tắc - Tuân Theo Nguyên Tắc - Giải Trừ Nguyên Tắc

      Comment


      • #4
        Nguyên văn bởi tan955 Xem bài viết
        mov a,p1
        cjne a,p2,kobang
        batled
        jmp didaudo
        kobang:
        tatled
        cái này nó chỉ so sánh theo thứ tự thôi bác ơi,giả sử p2.0 = 0 và p1.1 =0 thì nó cũng bật led,ở đây e muốn so sánh số bit ở 2 port ko theo thứ tự.

        mong các bácq giúp đỡ.
        ĐT: 0972 20 58 68
        Gmail:

        Comment


        • #5
          Hình như bạn hỏi chưa ai hiểu đc ý bạn hay sao ấy, bạn có thể nói rỏ hơn chút để mọi ng có thể giúp đc
          _--------------------------------------------------

          **** ------------------------------------------***

          Comment


          • #6
            Nguyên văn bởi romance_qt Xem bài viết
            Hình như bạn hỏi chưa ai hiểu đc ý bạn hay sao ấy, bạn có thể nói rỏ hơn chút để mọi ng có thể giúp đc
            Ý là như thế này,giả sử ở P2 có 4 nút đc nhấn (nhấn giữ luôn) ko theo thứ tự,ví dụ p2.0,p2.1,p2.3,p2.4.
            ở P1 nếu có 4 nút đc nhấn (nhấn luôn) cũng ko theo thứ tự,vdk sẽ so sánh số lượng nút đc nhấn ở 2 port nếu bằng nhau hay lớn hơn thì cho bật led,nếu ko bằng hay < hơn thì tắt led.
            ĐT: 0972 20 58 68
            Gmail:

            Comment


            • #7
              sao bạn ko đọc trạng thái của 2 port nhỉ. bạn đọc trạng thái của 2 port rồi chuyển vào 2 biến x,y chẳng hạn sau đó đếm số bit 0 hoặc bit 1 của 2 biến rồi đem so sánh
              Website chính thức đổi địa chỉ website thành
              Mời các bạn ghé thăm !!!

              Comment


              • #8
                Nguyên văn bởi mast090 Xem bài viết
                sao bạn ko đọc trạng thái của 2 port nhỉ. bạn đọc trạng thái của 2 port rồi chuyển vào 2 biến x,y chẳng hạn sau đó đếm số bit 0 hoặc bit 1 của 2 biến rồi đem so sánh
                viết dùm mình cái ví dụ 2 nút đi bạn.
                ĐT: 0972 20 58 68
                Gmail:

                Comment


                • #9
                  Nguyên văn bởi hoangnam555 Xem bài viết
                  viết dùm mình cái ví dụ 2 nút đi bạn.
                  viết thử dùm bạn đoạn code :
                  Code:
                  mov p1,#0xff
                  mov p2,#0xff
                  bien_1 EQU 10H
                  bien_2 EQU 11H
                  tu_dau:
                  mov  bien_1,#00
                  mov  bien_2,#00
                  ;doc port1
                  mov r7,#8
                  mov a,P1
                  chua_het:
                  rrc a
                  jnc co_nut_nhan
                  jmp quay_8bit
                  co_nut_nhan:
                  inc  bien_1
                  quay_8bit:
                  djnz r7,chua_het
                  ;doc port2
                  mov r7,#8
                  mov a,P2
                  chua_het1:
                  rrc a
                  jnc co_nut_nhan1
                  jmp quay_8bit1
                  co_nut_nhan1:
                  inc  bien_2
                  quay_8bit1:
                  djnz r7,chua_het1
                  mov a,bien_1
                  cjne a,bien_2,khong_bang
                  setb p3.7
                  jmp tu_dau
                  khong_bang:
                  jc nho_hon
                  setb p3.7
                  jmp tu_dau
                  nho_hon:clr  p3.7
                  jmp tu_dau
                  end
                  |

                  Comment


                  • #10
                    Nguyên văn bởi mast090 Xem bài viết
                    sao bạn ko đọc trạng thái của 2 port nhỉ. bạn đọc trạng thái của 2 port rồi chuyển vào 2 biến x,y chẳng hạn sau đó đếm số bit 0 hoặc bit 1 của 2 biến rồi đem so sánh
                    với asm mà làm kiểu đó chắc cũng không dễ

                    @nam:
                    hóa ra chú hỏi bên codientu, anh cũng đoán là chú, giờ khẳng định chắc chắn

                    Comment


                    • #11
                      Nguyên văn bởi kidteam Xem bài viết
                      với asm mà làm kiểu đó chắc cũng không dễ

                      @nam:
                      hóa ra chú hỏi bên codientu, anh cũng đoán là chú, giờ khẳng định chắc chắn
                      cái nick như nhau mà a
                      thank a nhé,để test coi sao.
                      ĐT: 0972 20 58 68
                      Gmail:

                      Comment


                      • #12
                        Nguyên văn bởi hoangnam555 Xem bài viết
                        Ý là như thế này,giả sử ở P2 có 4 nút đc nhấn (nhấn giữ luôn) ko theo thứ tự,ví dụ p2.0,p2.1,p2.3,p2.4.
                        ở P1 nếu có 4 nút đc nhấn (nhấn luôn) cũng ko theo thứ tự,vdk sẽ so sánh số lượng nút đc nhấn ở 2 port nếu bằng nhau hay lớn hơn thì cho bật led,nếu ko bằng hay < hơn thì tắt led.
                        Bạn có thể tham khảo code này:
                        Code:
                            org    00h
                            mov    p1, #0ffh
                            mov    p2, #0ffh
                        lap_lai:    acall    sodem_1
                            acall    sodem_2
                        ;
                            mov    a, 81h        ; doc so nut duoc bam o p1 vao acc
                            cjne    a, 82h, ktra    ; ko bang nhau => kiem tra xem cai nao lon hon
                            setb    p3.7        ; so nut bam bang nhau => bat den
                            sjmp    lap_lai
                        ktra:    jc    tat_led
                            setb    p3.7
                            sjmp    lap_lai
                        tat_led:    clr    p3.7
                            sjmp    lap_lai
                        ;---------------------------------------------------------------------
                        ; Chuong trinh con sodem_1 va sodem_2 co nhiem vu
                        ; dem so nut duoc bam o 2 port 1 và port 2
                        ;---------------------------------------------------------------------
                        sodem_p1:
                            mov    r1, #8
                            mov    81h, #0h
                            clr    c
                            mov    a, p1
                        loop1:    rlc    a
                            jc    tang_bien
                            sjmp    back1
                        tang_p1:    inc    81h
                        back1:    djnz    r1, loop1
                            ret
                        ;-----------------------------------
                        sodem_p2:
                            mov    r2, #8
                            mov    82h, #0h
                            clr    c
                            mov    a, p2
                        loop2:    rlc    a
                            jc    tang_p2
                            sjmp    back2
                        tang_p2:    inc    82h
                        back2:    djnz    r2, loop2
                            ret
                        ;------------------------------------------------------
                            end
                        P/S: Máy tính mình hỏng nên chưa biên dịch và kiểm tra được code

                        Comment


                        • #13
                          Cái này kiểm tra từng chân của port đc ko nhỉ,giả sử như nút nhấn đc nối vào p1,và p2 (chỉ 6 nút) và led cũng gắn vào p2.

                          P2 vừa xuất nhập chắc đc hả mấy bác.
                          ĐT: 0972 20 58 68
                          Gmail:

                          Comment


                          • #14
                            Nguyên văn bởi hoangnam555 Xem bài viết
                            Cái này kiểm tra từng chân của port đc ko nhỉ,giả sử như nút nhấn đc nối vào p1,và p2 (chỉ 6 nút) và led cũng gắn vào p2.

                            P2 vừa xuất nhập chắc đc hả mấy bác.
                            Không hiểu ý bạn hỏi lắm!

                            Comment


                            • #15
                              Nguyên văn bởi Ck33spkt Xem bài viết
                              Không hiểu ý bạn hỏi lắm!
                              Click image for larger version

Name:	12.jpg
Views:	1
Size:	53.9 KB
ID:	1367562

                              là như thế này nè bạn.
                              ĐT: 0972 20 58 68
                              Gmail:

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X