Hỏi: Mạch đếm số lần nhấn nút

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • mvuongvn
    Thành viên mới
    • Oct 2011
    • 12

    #1

    Hỏi: Mạch đếm số lần nhấn nút

    Em đang làm chương trình đếm số lần nhấn nút 999-0 hiển thị 3 led 7. Giá trị gán vô count2 tối đa chỉ đc 255, em muốn gán số 999 zô cho nó thì phải làm sao?
    Thanks


    Count2 EQU 31H
    SP2 BIT P0.0
    ORG 0000h


    START4: MOV count2,#255
    NEXT2: MOV A,count2
    MOV B,#100
    DIV AB
    MOV DPTR,#TABLE
    MOVC A,@A+DPTR
    MOV P1,A
    MOV A,B
    MOV B,#10
    DIV AB
    MOV DPTR,#TABLE
    MOVC A,@A+DPTR
    MOV P2,A
    MOV A,B
    MOVC A,@A+DPTR
    MOV P3,A

    WT2: JNB SP2,WT2
    WAIT2: JB SP2,WAIT2
    LCALL DELY10MS
    JB SP2,WAIT2
    DEC Count2
    MOV A,Count2
    CJNE A,#-1,NEXT2
    LJMP START4
    DELY10MS: MOV R6,#20
    D1: MOV R7,#248
    DJNZ R7,$
    DJNZ R6,D1
    RET
    TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
    END
  • kidteam
    Thành viên tích cực
    • Nov 2010
    • 1633

    #2
    thì dùng 3 biến
    1 biến lưu hàng trăm, 1 lưu chục, 1 lưu đơn vị

    Comment

    • Ck33spkt
      Thành viên tích cực
      • Apr 2010
      • 616

      #3
      Nguyên văn bởi kidteam Xem bài viết
      thì dùng 3 biến
      1 biến lưu hàng trăm, 1 lưu chục, 1 lưu đơn vị
      Bác biết thì xin chỉ rõ hơn cho anh em học hỏi với. Chứ cứ chém chung chung thế này thì biết lối nào mà lần?

      Comment

      • kidteam
        Thành viên tích cực
        • Nov 2010
        • 1633

        #4
        tôi bây giờ không dùng ASM nữa
        thấy bạn viết code asm nên chỉ nói gợi ý thôi
        thế là mọi người hiểu được rồi mà

        Comment

        • duytien
          Thành viên chính thức
          • May 2007
          • 68

          #5
          bạn đang viết cho con 89S hả, nếu thế tôi khuyên bạn thử tìm phần mềm bascom mà dùng, nó khá đơn giản và phục vụ cho 89S là tuyệt lắm đó.
          Còn như yêu cầu của bạn thì kidteam đã nói khá rõ mà có lẽ bạn chưa hiểu, để mình nói rõ thêm
          Bạn có 3 con led 7 đúng k, vậy thì mỗi con sẽ hiển thị 1 số, nghĩa là mỗi 1 con sẽ có 1 biến nhớ (hay 1 ô nhớ ), mà 1 biến nhớ thì nhớ từ 1-9 vô tư. Như thế khi bạn quét cho hiển thị thì quét ở biến nhớ nào sẽ cho led tương ứng ở biến nhớ đó sáng. Khi nhịp đếm tăng lên 1 số, nghĩa là 1 biến nhớ thay đổi. Chương trình sẽ quét và giải mã rồi sẽ hiển thị lên. Cứ thế.
          Bạn đã hiểu ý tưởng làm chưa

          Comment

          • mvuongvn
            Thành viên mới
            • Oct 2011
            • 12

            #6
            Vâng. E đã viết lại chạy rồi. Giờ phải chuyển qua quét led cho tiết kiệm port nữa
            Để e tìm phần mềm đó nghiên cứu

            Comment

            • Ck33spkt
              Thành viên tích cực
              • Apr 2010
              • 616

              #7
              Nguyên văn bởi mvuongvn Xem bài viết
              Vâng. E đã viết lại chạy rồi. Giờ phải chuyển qua quét led cho tiết kiệm port nữa
              Để e tìm phần mềm đó nghiên cứu

              Bác có thể cho em xin code và mạch mô phỏng của bác về học hỏi được ko?

              Comment

              • hoangbaolam
                Thành viên mới
                • Dec 2011
                • 27

                #8
                Nguyên văn bởi kidteam Xem bài viết
                thì dùng 3 biến
                1 biến lưu hàng trăm, 1 lưu chục, 1 lưu đơn vị
                nói cho có nói

                Comment

                • mvuongvn
                  Thành viên mới
                  • Oct 2011
                  • 12

                  #9
                  Mình đang chuyển qua kiểu quét led mà chưa chạy được. Nối trực tiếp ra 3 con led 7 ra 3 port thì đc. Để mấy bữa nữa mình làm quét led xong sẽ tung lên

                  Comment

                  • kidteam
                    Thành viên tích cực
                    • Nov 2010
                    • 1633

                    #10
                    Nguyên văn bởi hoangbaolam Xem bài viết
                    nói cho có nói
                    mọi người đều hiểu mà bạn
                    chắc có mỗi bạn không hiểu thôi

                    Comment

                    • kidteam
                      Thành viên tích cực
                      • Nov 2010
                      • 1633

                      #11
                      Nguyên văn bởi mvuongvn Xem bài viết
                      Mình đang chuyển qua kiểu quét led mà chưa chạy được. Nối trực tiếp ra 3 con led 7 ra 3 port thì đc. Để mấy bữa nữa mình làm quét led xong sẽ tung lên
                      bạn tạo hàm delay tương ứng với thạch anh và tần số quét
                      chú ý tần số nếu không led sẽ bị nháy

                      Comment

                      • locct2011
                        Thành viên mới
                        • Apr 2012
                        • 26

                        #12
                        em có đoạn code này đếm lên xuống 2 led nhưng chưa được oke lắm!! em cũng đang nghiên cứu và học thêm mọi người xem và chỉ giáo giúp em với nha!! xem có giúp ích được gì cho chủ top không nhé:
                        ORG 00H
                        MOV R0,#0
                        SETB P3.0
                        SETB P3.1
                        MAIN:

                        JNB P3.0,TANG
                        JNB P3.1,GIAM
                        SJMP HIENTHI
                        TANG: INC R0
                        CALL HIENTHI
                        CJNE R0,#15,HIENTHI
                        MOV R0,#0
                        SJMP MAIN
                        GIAM: DEC R0

                        CALL HIENTHI
                        CJNE R0,#-1,HIENTHI
                        MOV R0,#0
                        SJMP MAIN

                        HIENTHI: MOV R7,#5
                        VL: MOV A,R0
                        MOV B,#10
                        DIV AB
                        MOV DPTR,#MAHEX
                        MOVC A,@A+DPTR
                        MOV P2,A
                        CLR P1.7
                        CALL DELAY
                        SETB P1.7
                        MOV A,B
                        MOV DPTR,#MAHEX
                        MOVC A,@A+DPTR
                        MOV P2,A
                        CLR P1.6
                        CALL DELAY
                        SETB P1.6
                        DJNZ R7,VL
                        JMP MAIN
                        DELAY:
                        MOV R1,#100
                        L1: MOV R2,#100
                        DJNZ R2,$
                        DJNZ R1,L1
                        RET



                        mahex: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
                        END

                        Comment

                        Về tác giả

                        Collapse

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

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

                        Collapse

                        Đang tải...