Thông báo

Collapse
No announcement yet.

giúp code đếm sản phẩm!!!

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

  • giúp code đếm sản phẩm!!!

    giúp e code với e làm mạch thu phát hồng ngoại và lập trình như thế này mà mỗi lần sản phẩm qua nó đếm lên 2 thay vì nó lên 1 mong các bác giúp e với.e đã làm trong protues thì lên 1 mỗi lần nhưng mà làm mạch thật thì....

    ORG 0000H
    LJMP MAIN
    ORG 0003H
    LJMP ngat_ngoai
    org 0030h
    MAIN:
    setb ea
    setb ie.0
    setb tcon.1
    setb tcon.0
    mov 30h,#0
    call display
    here:
    call display
    sjmp here
    ngat_ngoai:
    inc 30h
    mov a,30h
    cjne a,#100,next
    mov 30h,#0
    next:
    call display
    reti
    display:
    mov a,30h
    mov b,#10
    div ab
    mov dptr,#maled
    movc a,@a+dptr
    mov p2,a
    clr p3.6
    setb p3.7
    call delay
    mov a,b
    movc a,@a+dptr
    mov p2,a
    clr p3.7
    setb p3.6
    call delay
    ret
    delay:
    mov r3,#200
    delay1:
    mov r2,#100
    djnz r2,$
    djnz r3,delay1
    ret
    MALED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
    END
    email
    nick: bangbigboy_bigboy
    sdt :01203380789

  • #2
    tạo 1 cái delay cho sản phẩm đi qua hết rồi mới thoát khỏi ngắt ngoài thử xem

    Comment


    • #3
      e đã thêm khoản delay2 vào nhưng vẫn chưa hết nửa nó cứ tăng lên 2 đơn vị...hjc


      ORG 0000H
      LJMP MAIN
      ORG 0003H
      LJMP ngat_ngoai
      org 0030h
      MAIN:
      setb ea
      setb ie.0
      setb tcon.1
      setb tcon.0
      mov 30h,#0
      call display
      here:
      call display
      sjmp here
      ngat_ngoai:
      inc 30h
      call delay2
      mov a,30h
      cjne a,#100,next
      mov 30h,#0
      next:
      call display
      reti
      display:
      mov a,30h
      mov b,#10
      div ab
      mov dptr,#maled
      movc a,@a+dptr
      mov p2,a
      clr p3.6
      setb p3.7
      call delay
      mov a,b
      movc a,@a+dptr
      mov p2,a
      clr p3.7
      setb p3.6
      call delay
      ret
      delay:
      mov r3,#200
      delay1:
      mov r2,#50
      djnz r2,$
      djnz r3,delay1
      ret
      delay2:
      mov r5,#255
      delay3:
      mov r6,#255
      delay4:
      mov r7,#1
      djnz r7,$
      djnz r6,delay4
      djnz r5,delay3
      ret
      MALED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
      END
      email
      nick: bangbigboy_bigboy
      sdt :01203380789

      Comment


      • #4
        e đã thêm khoản delay2 vào nhưng vẫn chưa hết nửa nó cứ tăng lên 2 đơn vị...hjc


        ORG 0000H
        LJMP MAIN
        ORG 0003H
        LJMP ngat_ngoai
        org 0030h
        MAIN:
        setb ea
        setb ie.0
        setb tcon.1
        setb tcon.0
        mov 30h,#0
        call display
        here:
        call display
        sjmp here
        ngat_ngoai:
        inc 30h
        call delay2
        mov a,30h
        cjne a,#100,next
        mov 30h,#0
        next:
        call display
        reti
        display:
        mov a,30h
        mov b,#10
        div ab
        mov dptr,#maled
        movc a,@a+dptr
        mov p2,a
        clr p3.6
        setb p3.7
        call delay
        mov a,b
        movc a,@a+dptr
        mov p2,a
        clr p3.7
        setb p3.6
        call delay
        ret
        delay:
        mov r3,#200
        delay1:
        mov r2,#50
        djnz r2,$
        djnz r3,delay1
        ret
        delay2:
        mov r5,#255
        delay3:
        mov r6,#255
        delay4:
        mov r7,#1
        djnz r7,$
        djnz r6,delay4
        djnz r5,delay3
        ret
        MALED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
        END
        email
        nick: bangbigboy_bigboy
        sdt :01203380789

        Comment


        • #5
          chú thêm thế này thử xem,
          ngat_ngoai:
          clr ie.7
          inc 30h
          call delay2
          mov a,30h
          cjne a,#100,next
          mov 30h,#0
          next:
          call display
          setb ie.7
          reti

          Comment


          • #6
            vẫn chưa tìm ra được bệnh chỗ đoạn code đó chán quá cứ qua 1 sản phẩm là lên 2 lần.hjc,ko biết ai có code nào về đếm sản phẩm giống như e gửi cho e check với!!!
            về vấn đề mạch thì e nghĩ nó ko có gì sai e làm p3.7,p3.6 điều khiển led p2 xuất dử liệu p3.2 nhận dử liệu từ hồng ngoại.mạch này e đã test của 1 thằng bạn viết code C cho con 89p lắp vào thì nó ok nhưng đoạn code e thì e ko biết nó sai chỗ nào cả.hjc...mong các anh coi giúp với
            email
            nick: bangbigboy_bigboy
            sdt :01203380789

            Comment


            • #7
              bạn bỏ ngắt ngoài dùng quét thử bạn như quét nút nhấn đó rồi bạn dùng chống dội khoảng 50ms xem thế nào.

              Comment


              • #8
                mình thấy code của bạn không hợp lí 1 số chỗ, mình sủa lại như sau

                Code:
                bien equ 30h
                ORG 0000H
                LJMP MAIN
                ORG 0003H
                LJMP ngat_ngoai
                org 0030h
                MAIN:
                setb ea
                setb ie.0
                setb tcon.0
                setb tcon.1
                mov bien,#0
                mov dptr,#maled
                loop_main:
                lcall display
                sjmp loop_main
                
                ngat_ngoai:
                inc bien
                mov a,bien
                cjne a,#100,thoat
                mov bien,#0
                thoat:
                reti
                
                display:
                mov a,bien
                mov b,#10
                div ab
                
                movc a,@a+dptr
                cpl a
                mov p2,a
                clr p3.6
                lcall delay
                setb p3.6
                
                mov a,b
                movc a,@a+dptr
                cpl a
                mov p2,a
                clr p3.7
                lcall delay
                setb p3.7
                ret
                
                delay:
                mov r3,#2
                delay1:
                mov r2,#100
                djnz r2,$
                djnz r3,delay1
                ret
                MALED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
                END
                bạn mô phỏng lại xem nhé

                mình gửi kèm phần đếm lùi sản phẩm bạn tham khảo thêm
                Attached Files

                Comment


                • #9
                  Nếu bạn sử dụng ngắt để đếm sản phẩm thì nên sử dụng thêm kích ngắt bằng cạnh âm, cụ thể nếu sử dụng ngắt ngoài 0 thì câu lệnh là SETB IT0.

                  Thân!
                  "Cái quý nhất của con người ta là sự sống. Đời người chỉ sống có một lần.Phải sống sao cho khỏi xót xa ân hận..."
                  Lê lết, lay lất sống qua ngày! >:)

                  Comment


                  • #10
                    Nguyên văn bởi babykid Xem bài viết
                    nếu bạn sử dụng ngắt để đếm sản phẩm thì nên sử dụng thêm kích ngắt bằng cạnh âm, cụ thể nếu sử dụng ngắt ngoài 0 thì câu lệnh là setb it0.
                    Thân!
                    tcon.0 = it0 @@

                    Comment


                    • #11
                      Nguyên văn bởi babykid Xem bài viết
                      nếu bạn sử dụng ngắt để đếm sản phẩm thì nên sử dụng thêm kích ngắt bằng cạnh âm, cụ thể nếu sử dụng ngắt ngoài 0 thì câu lệnh là setb it0.
                      Thân!
                      tcon.0 = it0 @@

                      Comment


                      • #12
                        ko hiểu nó bị cái gì nửa mình đã thử code các bạn rùi mà vẫn chưa chạy dc nhận vào vẫn lên 2,3 lun..hjc
                        email
                        nick: bangbigboy_bigboy
                        sdt :01203380789

                        Comment


                        • #13
                          Nguyên văn bởi hieuthai2011 Xem bài viết
                          ko hiểu nó bị cái gì nửa mình đã thử code các bạn rùi mà vẫn chưa chạy dc nhận vào vẫn lên 2,3 lun..hjc
                          vậy chắc là do rung phím, bạn thử bỏ lệnh setb tcon.1 đi xem sao, mình dùng ngắt ngoài không dùng lệnh này, mình cũng chưa bị TH này bao giờ

                          Comment

                          Về tác giả

                          Collapse

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

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

                          Collapse

                          Đang tải...
                          X