Thông báo

Collapse
No announcement yet.

Xin hỏi về quét + đếm sản phẩm

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

  • Xin hỏi về quét + đếm sản phẩm

    Cho mình hỏi về vấn đề này với, nghĩ mãi mà ko biết thuật toán giải quyết:

    -Bình thường làm mạch đếm sản phẩm, dùng 8951 + led 7+ nút ấn + 1 vài linh kiện linh tinh. Khi ấn nút ( sản phẩm đi qua) thì led 7 tăng 1 giá trị. Bài của em là vậy và đã xong, cắm mạch thật chạy rồi, nhưng em có 1 thắc mắc nhỏ muốn nâng cấp

    -Bài của em thì ấn nút thì leb 7 tăng, giữ nút thì ko có hiện tượng gì hết, vì đã tạo biến xác định "nút đã ấn", nhả rồi ấn tiếp thì mới tăng được tiếp.

    Bây giờ em mún ấn rồi giữ nút thì Led 7 tăng từ từ ( Khoảng 0.5s thì tăng 1 số).
    Nếu mà xóa biến " nút đã ấn " đi thì tốc độ tăng của nó rất chóng mặt, khoảng 1 lần ấn tăng 20-40 đơn vị.

    Còn chắc chắn ko thể thêm " delay0,5 s" vào để hạn chế biến Led7 tăng được, vì em đang dùng quét led với tần số 10ms ( Cho 4 led7). nếu có delay 0,5s thì còn gì là quét nữa.

    Vấn đề của em là vậy mong các bô lão giúp đỡ, chỉ cho phương hứong giải quyết
    Last edited by kissyou; 24-04-2011, 16:24.

  • #2
    KO ai biết chỉ giùm em với

    Comment


    • #3
      Nguyên văn bởi kissyou Xem bài viết
      Cho mình hỏi về vấn đề này với, nghĩ mãi mà ko biết thuật toán giải quyết:

      -Bình thường làm mạch đếm sản phẩm, dùng 8951 + led 7+ nút ấn + 1 vài linh kiện linh tinh. Khi ấn nút ( sản phẩm đi qua) thì led 7 tăng 1 giá trị. Bài của em là vậy và đã xong, cắm mạch thật chạy rồi, nhưng em có 1 thắc mắc nhỏ muốn nâng cấp

      -Bài của em thì ấn nút thì leb 7 tăng, giữ nút thì ko có hiện tượng gì hết, vì đã tạo biến xác định "nút đã ấn", nhả rồi ấn tiếp thì mới tăng được tiếp.

      Bây giờ em mún ấn rồi giữ nút thì Led 7 tăng từ từ ( Khoảng 0.5s thì tăng 1 số).
      Nếu mà xóa biến " nút đã ấn " đi thì tốc độ tăng của nó rất chóng mặt, khoảng 1 lần ấn tăng 20-40 đơn vị.

      Còn chắc chắn ko thể thêm " delay0,5 s" vào để hạn chế biến Led7 tăng được, vì em đang dùng quét led với tần số 10ms ( Cho 4 led7). nếu có delay 0,5s thì còn gì là quét nữa.

      Vấn đề của em là vậy mong các bô lão giúp đỡ, chỉ cho phương hứong giải quyết
      Bạn tạo một ngắt Timer, khi xác định nút đang nhấn thì cho phép ngắt Timer -> 500ms tăng biến đếm 1 lần. Khi xác định nút đã nhả ra thì cấm ngắt Timer -> số ngưng đếm.
      Công ty TNHH Tự Động Hóa Đạt Lân
      32/36, Ông Ích Khiêm, F14, Q11
      ĐT: 08.3974 7308 - 0937.197.001
      email:
      Webite:

      Comment


      • #4
        Nghĩa là thêm 1 timer nữa hả bạn?

        Comment


        • #5
          Nguyên văn bởi kissyou Xem bài viết
          Nghĩa là thêm 1 timer nữa hả bạn?
          Bạn viết bằng C hay ASM vậy? Nếu bằng ASM thì mình có thể viết dùm bạn đoạn code dể tham khảo.
          Công ty TNHH Tự Động Hóa Đạt Lân
          32/36, Ông Ích Khiêm, F14, Q11
          ĐT: 08.3974 7308 - 0937.197.001
          email:
          Webite:

          Comment


          • #6
            Tốt nhất bài này bạn dùng ngắt ngoài là ok nhất . k phụ thuộc vào tần số quét led.

            Comment


            • #7
              bạn ơi, mình cũng đang phải làm về mạch đếm sản phẩm sử dụng vi xử lí 8051. trong quá trình viết code, mình nảy sinh ra 1 khó khăn mà chưa giải quyết được. bạn đã từng viết code thì xem hộ mình với nhé.

              chương trình chính của mình là gửi liên tục các giá trị số sản phẩm đếm được gửi qua led. sau đó, mình dùng ngắt là INT0. khi có ngắt INT0, nó thực hiện tăng giá trị hiển thị trên bảng led.

              tuy nhiên, khi bắt tay vào làm thì có 1 thực tế như sau đo là khi thực hiện ngắt, các trạng thái của chương trình chính được lưu lại trong ngăn xếp. và, khi thực hiện xong ngắt, trạng thái cũng như giá trị của chương trình chính lại được khôi phục lại như cũ. như vậy, việc ngắt để tăng giá trị cho hiển thị của mình đã không có tác dụng?
              mình phải làm thế nào đây?
              cảm ơn bạn rất nhiều.
              Code:
                 ORG    000H
                 LJMP   MAIN
                 ORG    0003H
                 LJMP   DEM_SP
              
              
              MAIN:
                 MOV    IE,#81H
              
              
              
                 MOV    P1,#00H
                 MOV    R3,#00H
                 MOV    R4,#00H
                 MOV    R5,#00H
                 MOV    R6,#00H
                 MOV    R7,#00H
              
              AGAIN:   									 ; CHUONG TRINH HIEN THI
                 MOV    P2,R3
                 SETB   P1.0
                 LCALL  DELAY
                 CLR    P1.0
              
                 MOV    P2,R4
                 SETB   P1.1
                 LCALL  DELAY
                 CLR    P1.1
              
                 MOV    P2,R5
                 SETB   P1.2
                 LCALL  DELAY
                 CLR    P1.2
              
                 MOV    P2,R6
                 SETB   P1.3
                 LCALL  DELAY
                 CLR    P1.3
              
                 MOV    P2,R7
                 SETB   P1.4
                 LCALL  DELAY
                 CLR    P1.4
              
                 LJMP   AGAIN
              
              DEM_SP:					                       ; CHUONG TRINH DEM SAN PHAM
                 INC    R3
                 CJNE   R3,#0AH,HANG_CHUC
                 RETI
              
              HANG_CHUC:
                 MOV    R3,#00H
                 INC    R4
                 CJNE   R4,#0AH,HANG_TRAM
                 RETI
              
              HANG_TRAM:
                 MOV    R4,#00H
                 INC    R5
                 CJNE   R5,#0AH,HANG_NGHIN
                 RETI
              
              
              HANG_NGHIN:
                 MOV    R5,#00H
                 INC    R6
                 CJNE   R6,#0AH,HANG_VAN
                 RETI
              
              
              HANG_VAN:
                 MOV    R6,#00H
                 INC    R7
                 CJNE   R7,#0AH,STOP
                 RETI
              
              STOP:
                 CLR   IE.7												  ; CHUONG TRINH KET THUC
                 
              DELAY:
                 MOV   R2,#255
              LAP:   DJNZ R2,LAP
                 
                 RET
              
                 END

              Comment


              • #8
                Nguyên văn bởi fee_08 Xem bài viết
                Tốt nhất bài này bạn dùng ngắt ngoài là ok nhất . k phụ thuộc vào tần số quét led.
                Bạn fee_08 ơi, bạn đã đọc kỹ yêu cùa của chủ topic chưa vậy? Theo mình đọc thì mình hiểu ý của chủ topic muốn nói như vầy:
                Nếu sản phẩm đang tác động đến vi xử lý(che cảm biến quang, đá công tắc hành trình ....) thì số đếm cứ tự động tăng
                Bây giờ em mún ấn rồi giữ nút thì Led 7 tăng từ từ ( Khoảng 0.5s thì tăng 1 số).
                Còn không biết bạn dùng ngắt thì tác động như thế nào, mình nghĩ dùng ngắt mức thì cũng phải có timer để số tự động tăng lên thôi.
                Không biết ý mình như vậy có đúng không, rất mong bạn góp ý.
                Công ty TNHH Tự Động Hóa Đạt Lân
                32/36, Ông Ích Khiêm, F14, Q11
                ĐT: 08.3974 7308 - 0937.197.001
                email:
                Webite:

                Comment


                • #9
                  Cảm ơn bạn vothanhlong. ý của mình đúng là vậy. Là nếu đang ấn nút thì sản phẩm vẫn từ từ tăng. Bài mình làm hiện tại thì ấn nút thì nó chỉ tăng 1, nhả ra ấn tiếp thì mới tăng. Mình viết bằng ASM. Bạn có thể hướng dẫn thuật toán cụ thể ko? để mình suy nghĩ tạo code . Thank

                  Comment


                  • #10
                    Mình đã cho thêm 1 ngắt Timer nữa, và kết quả có vẻ khả quan hơn, nhưng mà có 1 lỗi nhỏ sau:

                    - Giữ thì nút led 7 tăng từ từ theo thời gian mình đặt (500ms) ( Có vẻ thành công)
                    Nhưng mà giờ là hiện tượng ấn nút, ấn nhanh( Có thể ấn mất có 400ms) thì led 7 ko tác động, ấn lâu 1 chút là tăng 2 biến ( Vì thơi gian ấn nút ta ko thể tính chính xác đc). Yêu cầu công nghệ bài em đưa ra là:
                    -Ấn nút rồi nhả tay ngay thì led7 tăng 1, nếu giữ nút thì led7 tăng từ từ. Như vậy lập trình ko thỏa mãn cho lắm

                    Comment


                    • #11
                      anh em ơi cho e hỏi với ak, e đang làm đồ án, đếm sản phẩm, có thể đếm lên 1024, dùng ic 555 để tạo xung đếm, ai có code cho e với ạ

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X