Thông báo

Collapse
No announcement yet.

cần giúp sữa lối lập trình cho mạch 2 led 7 đoạn

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

  • cần giúp sữa lối lập trình cho mạch 2 led 7 đoạn

    mình đang làm mạch đếm số từ 0 đến 99, nhưng chắc vì chưa hiểu rõ kỹ thuật quét led nên mạch mình làm, 2 con đèn led 7đoạn nó chưa sáng liên tục đc mà cứ chớp tắt, mọi người xem rồi giúp mình với, tại đây là bài báo cáo vi xử lý của mình, cám ơn mọi người nha


    org 0000h
    main:
    mov r0,#00h
    quet:
    mov r1,#07h
    loop:
    mov a,r0
    mov b,#10
    div ab
    mov dptr,#bangled
    movc a,@a+dptr
    mov p2,a
    clr p3.6
    call delayms
    setb p3.6
    mov a,b
    mov dptr,#bangled
    movc a,@a+dptr
    mov p2,a
    clr p3.7
    call delayms
    setb p3.7
    djnz r1,loop
    inc r0
    cjne r0,#99,quet
    call delay500ms
    sjmp main
    delay500ms:
    mov r5,#5
    d1:
    mov r4,#200
    d2:
    mov r3,#250
    djnz r3,$
    djnz r4,d2
    djnz r5,d1
    ret
    delayms:
    mov r7,#200
    d:
    mov r6,#200
    djnz r6,$
    djnz r7,d
    ret

    bangled:
    DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H
    end

  • #2
    cái này phải chạy mạch thật thì nó mới sáng liên tục còn mô phỏng thì nó chỉ chớp tắt thôi
    Never forget who you are!

    Comment


    • #3
      Không phải do mô phỏng nhấp nháy đâu bạn .. Lỗi này có thể do tần số quét của bạn quá nhỏ , cần phải xóa dữ liệu của các led như của bạn là Port P2=0xff ,để chống nhiễu , giật .. .Mình dùng C nên k sửa dc cho bạn chỉ góp ý thế thôi . Chúc thành công

      Comment


      • #4
        Nguyên văn bởi chick3nb0y9x Xem bài viết
        mình đang làm mạch đếm số từ 0 đến 99, nhưng chắc vì chưa hiểu rõ kỹ thuật quét led nên mạch mình làm, 2 con đèn led 7đoạn nó chưa sáng liên tục đc mà cứ chớp tắt, mọi người xem rồi giúp mình với, tại đây là bài báo cáo vi xử lý của mình, cám ơn mọi người nha
        thay led 7 đoạn đơn bằng 7 đoạn dạng thanh.
        thay 2 tranzitor bằng cổng đảo.
        giảm giá trị delayms
        tăng r1 để cho đếm châm lại.
        Code:
             org 0000h
        main:
        mov r0,#00h
        quet:
        mov r1,#100
        loop:
        mov a,r0
        mov b,#10
        div ab
        mov dptr,#bangled
        movc a,@a+dptr
        mov p2,a
        clr p3.6
        call delayms
        setb p3.6
        mov a,b
        mov dptr,#bangled
        movc a,@a+dptr
        mov p2,a
        clr p3.7
        call delayms
        setb p3.7
        djnz r1,loop
        inc r0
        cjne r0,#99,quet
        call delay500ms
        sjmp main
        delay500ms:
        mov r5,#5
        d1:
        mov r4,#200
        d2:
        mov r3,#250
        djnz r3,$
        djnz r4,d2
        djnz r5,d1
        ret
        delayms:
        mov r7,#2
        d:
        mov r6,#200
        djnz r6,$
        djnz r7,d
        ret
        
        bangled:
        DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H
        end
        Attached Files
        |

        Comment


        • #5
          mình đã từng làm thử nhiều mạch này như bạn. 1 thực tế là với tất cả các bài dùng ghép nối theo bus mà hiển thị bằng led 7 thanh thì đều bị nháy mà không sáng liên tục.
          bạn hãy thay 2 led 7 thanh đó bằng led 7 thanh khác đó là mpx2. mpx2 thực tế cũng chỉ là do 2 led 7 thanh ghép lại. nhưng, khi hiển thị nó lại có thể hiển thị sáng liên tục được.
          không tin, thử xem. he

          Comment


          • #6
            cho mình hỏi, nếu dùng 1 nút ấn để đếm hiến thị số,mỗi lần tăng lên một, và một nút ấn reset để reset lại khi cần thì code sửa lại như thế nào vậy

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...
            X