Thông báo

Collapse
No announcement yet.

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

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

  • 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

  • #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


    • #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


      • #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


        • #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


          • #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


            • #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


              • #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


                • #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


                  • #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


                    • #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


                      • #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...
                        X