Thông báo

Collapse
No announcement yet.

Chương trình con này có tác dụng gì?

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

  • Chương trình con này có tác dụng gì?

    ht: mov b,#10
    div ab
    add a,#10
    mov p2,a
    acall delay3
    mov a,b
    add a,#0
    mov p2,a
    acall delay3
    ret
    Nó nằm trong ct quét phím, nhưng mình không hiểu. Các bạn giúp nhé ! thanks
    Đăng ký Dropbox có ngay 2GB lưu trữ online miễn phí:

  • #2
    Bạn pót luôn nguyên chương trình quét phím luôn đi. Như vậy ai mà biết được.
    P2 có phải dùng để quét phím không?

    Comment


    • #3
      OK, có ngay
      ;chuong trinh quet phim
      #include <Rc51Regs.inc>
      phim equ 30h
      ORG 0000H
      MAIN:
      ACALL IN_HEX
      ACALL HT
      SJMP MAIN
      ;.........................................
      in_hex:
      mov r3,#50
      back1: acall get_key
      jnb 10,exp1
      djnz r3,back1
      back2: mov r3,#50
      back3: lcall get_key
      jb 10,back2
      djnz r3,back3
      setb 11
      mov phim,r6
      exp1: nop
      ret

      get_key:
      mov a,#0feh
      mov r2,#0
      scan_row:
      mov p2,a
      mov r4,a
      ;chuan bi quet cac cot va nhay
      jnb p2.4,row_0
      jnb p2.5,row_1
      jnb p2.6,row_2
      jnb p2.7,row_3
      ;khong co phim an thi chuyen den cot tiep theo
      mov a,r4
      rl a
      inc r2
      cjne r2,#4,scan_row
      setb p2.6
      sjmp no_code


      row_0:
      mov a,r2
      add a,#0
      setb 10
      mov r6,a
      sjmp exit

      row_1:
      mov a,r2
      add a,#4
      setb 10
      mov r6,a
      sjmp exit
      row_2:
      mov a,r2
      add a,#8
      setb 10
      mov r6,a
      sjmp exit
      row_3:
      mov a,r2
      add a,#12
      setb 10
      mov r6,a
      sjmp exit

      no_code:
      clr 10
      exit:
      ret

      ht: mov b,#10
      div ab
      add a,#10
      mov p2,a
      acall delay3
      mov a,b
      add a,#0
      mov p2,a
      acall delay3
      ret

      delay3:
      mov r0,#200
      djnz r0,$
      ret
      Đăng ký Dropbox có ngay 2GB lưu trữ online miễn phí:

      Comment


      • #4
        Đó là 1 chường trình chống nẩy phím khi sử dụng với bàn phím .
        Vì khi bạn nhấn 1 phím do các phím sử dụng công tấc cơ khí ! thì khi 1 nút nhất xuống nó thường không chính xác rằng có 1 xung cạnh lên ,và thường có nhiễu xung nhỏ từ giá trí mức thấp cho đến mức cao ,và khi buông ra cũng vậy !
        Professional Digital Genset & Hydraulic Furukawa ,Tamrock RockDrill
        email:
        forum : gensetvietnam.forumvi.com

        Comment


        • #5
          Ở chương trình này, R2 tương ứng với quét 4 cột, R2 = 0,1,2,3
          Khi kiểm tra hàng, nếu hàng bị tác động thì cộng giá trị hiện tại của R2 với giá trị tương ứng là 0, 4, 8, 12 với hàng 0,1,2,3.
          Ví dụ, nếu đang kiểm tra cột 0, thì hiện tại R2 = 0, nếu hàng 0 bị tác động thì giá trị mã phím là 0, nếu hàng 1 thì là 1.
          Nếu kiểm tra cột 4, R2 = 3, tương ứng hàng 0 bị tác động thì mã phím là 3, 1 là 7, ...

          Giả sử phím chính xác là hàng 4 cột 4, thì mã phím là 3+12 = 15, được lưu trong A
          ht:
          mov b,#10
          div ab
          add a,#10
          mov p2,a
          acall delay3
          mov a,b
          add a,#0
          mov p2,a
          acall delay3
          ret
          dùng để hiện thị mã phím ra port2, ví dụ mã phím là 15, A/10 = 1 dư 5, B = 5.
          Vậy gởi giá trị 1 ra Port2 sau khoảng thời gian delay thì gởi 5, để kiểm tra.

          Không biết chương trình có chạy được kô bạn nhỉ, nhưng viết kiểu này mình cho là chưa được tốt lắm. ở phần tính toán mã phím.
          Diễn đàn Vi điều khiển:

          Comment


          • #6
            Chương trình này có chút vấn đề:
            1. Có ai lại vừa quét phím vừa hiển thị trên cùng 1 port bao giờ (quét phím dùng hết 8 chân port rồi)
            2. Cách hiển thị cũng có vấn đề: ví dụ phím là 15 thì A/10+10=11=0BH=00001011b xuất giá trị này ra port 2 làm gì? Sau đó phần dư là 5 +0 =0 (dư 1 lệnh) lại xuất ra port 2 làm gì?

            Comment


            • #7
              Thế mới khó hiểu. Chương trình này trong tài liệu của ông thầy phụ trách thực tập xưởng cho đó.
              Đăng ký Dropbox có ngay 2GB lưu trữ online miễn phí:

              Comment


              • #8
                Vậy bạn xem phần cứng của ông thầy này như thế nào?

                Comment


                • #9
                  Phần cứng ko có j ca, chỉ có Ban phím nối vào P1 thoi, bàn phím ko nối lên VCC hay GND
                  Đăng ký Dropbox có ngay 2GB lưu trữ online miễn phí:

                  Comment


                  • #10
                    Nếu vậy thì chương trình sai rồi bàn phín nối vào port mà lại quét port2.

                    Comment


                    • #11
                      Nguyên văn bởi dinhchithanh Xem bài viết
                      Phần cứng ko có j ca, chỉ có Ban phím nối vào P1 thoi, bàn phím ko nối lên VCC hay GND
                      Bạn nói đúng rồi, công tắc 4x4 nối với P1, còn P2 là để hiểnthị ra công tắc nào. Ở đoạn chương trình trên ông thầy Nam ghi lộn là P1 ở đoạn tìm phím.
                      Nếu chẳng một phen sương thấm lạnh
                      Hoa mai đâu dễ tỏa mùi hương

                      Comment


                      • #12
                        Đây là một đoạn code về bàn phím 4x4 mắc ở P1
                        Sau khi nhấn phím, mã bàn phím sẽ lưu ở biến Keycode và set bit cờ nhan
                        Đoạn code đã được chống rung phím và khi phím được nhã ra thì mới kết thúc chương trình:

                        ;................................................. .....................
                        ; CHUONG TRINH NAY KHI CO PHIM NHAN THI KIEM TRA XEM :
                        ; PHIM NAO DUOC NHAN : KEYCODE
                        ; CO NHAN PHIM KHONG : NHAN
                        BANPHIM:
                        CLR NHAN
                        MOV R4,#50 ; so 50 la so hop ly de chong rung
                        IN1: CALL GETKEY
                        JNC THOATIN2
                        DJNZ R4,IN1
                        MOV NHAN,C
                        PUSH ACC
                        IN2: MOV R4,#50 ; de phat hien phim duoc nha
                        IN3: CALL GETKEY
                        JC IN2
                        DJNZ R4,IN3
                        POP ACC
                        MOV KEYCODE,A
                        THOATIN2: RET
                        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

                        ; CHUONG TRINH NAY XAC DINH DUOC MA PHIM DA NHAN VAO KEYCODE VA SET BIT NHAN VA CO C
                        GETKEY: MOV A, #0FEH
                        MOV R6, #4
                        TEST: MOV P1, A
                        MOV R7, A
                        MOV A, P1
                        ANL A, #0F0H
                        CJNE A, #0F0H, KEYHIT
                        MOV A, R7
                        RL A
                        DJNZ R6, TEST
                        CLR C
                        SJMP EXIT
                        KEYHIT: MOV R7, A
                        MOV A, #4
                        CLR C
                        SUBB A, R6
                        MOV R6, A
                        MOV A, R7
                        SWAP A
                        MOV R5, #4
                        AGAIN: RRC A
                        JNC DONE
                        INC R6
                        INC R6
                        INC R6
                        INC R6
                        DJNZ R5, AGAIN
                        DONE: SETB C
                        MOV NHAN, C
                        MOV A, R6
                        EXIT: RET
                        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

                        Comment


                        • #13
                          Phần Hay Nhất Của Ma Trận Phím đó Là Phần Chống Rung Phím! Mình Nghĩ Vậy!
                          SỰ HỌC LÀ MÃI MÃI......!!!!

                          Comment

                          Về tác giả

                          Collapse

                          dinhchithanh Handsome Tìm hiểu thêm về dinhchithanh

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

                          Collapse

                          Đang tải...
                          X