Tư vấn: 0979.466.469 / 0938.128.290

MENU

Đồng hồ đo vòng tua số dạng không tiếp xúc bằng vi điều khiển 8051

Nhận mua hàng nước ngoài

Một dự án đồng hồ đo vòng tua số không tiếp xúc gồm ba chữ số, sử dụng vi điều khiển 8051, có thể được sử dụng để đo số vòng tua mỗi giây của một bánh xe, đĩa, trục hoặc bất cứ thứ gì quay như vậy, đã được giới thiệu trong dự án này. Đồng hồ đo tua có thể đo tối đa lên đến 255 vòng/giây với độ chính xác là 1 vòng/giây. Bạn chỉ cần đặt cảm biến gần với dải phản xạ (bìa nhôm, giấy trắng hoặc một thứ gì đó tương tự) dán trên bề mặt quay, và màn hình sẽ hiển thị số vòng/giây. Sơ đồ mạch của đồng hồ đo vòng tua số được hiển thị dưới đây.

Phần đầu của mạch là bộ cảm biến quang dựa trên fototransistor Q4 và đèn LED đỏ D4. Mỗi khi dải phản xạ trên đối tượng quay đi qua trước bộ cảm biến, ánh sáng phản xạ rơi vào fototransistor, làm cho nó dẫn nhiều hơn và do đó điện áp tập trung giảm về zero. Khi xem qua một máy oscilloscope, biểu đồ điện áp tập trung của fototransistor Q4 (2N5777) sẽ trông như thế này:

Phần tiếp theo là bộ đơn vị điều kiện tín hiệu dựa trên ic opamp LM324 (IC1). Chỉ có một opamp trong ic tức LM324 được sử dụng ở đây và nó được nối như một bộ so sánh với điện áp tham chiếu ở mức 3.5V (sử dụng các résitor R16 và R17). Nhiệm vụ của bộ so sánh này là chuyển đổi dạng sóng biến đổi từ fototransistor thành dạng sóng xung vuông gọn gàng để nó có thể được áp dụng vào vi điều khiển. Mỗi khi điện áp tập trung của fototransistor xuống dưới 3.5V, đầu ra của bộ so sánh sẽ vào quá mức âm, và mỗi khi điện áp tập trung của fototransistor lên trên 3.5V, đầu ra của bộ so sánh sẽ vào quá mức dương, dẫn đến một dạng sóng như thế này:

Từ hai biểu đồ trên, bạn có thể thấy rằng cạnh giảm dần âm của sóng biểu thị sự đi qua của dải phản xạ qua bộ cảm biến, và điều đó có nghĩa là một vòng tua. Nếu bạn có thể đo được số cạnh giảm dần âm xảy ra trong một giây, đó là số vòng tua mỗi giây của đối tượng quay, và đó là điều mà vi điều khiển thực hiện ở đây.

Vi điều khiển 8051 ở đây thực hiện hai công việc chính:

  1. Đếm số xung giảm dần âm có sẵn ở chân T1 (chân 15).

  2. Thực hiện các tính toán cần thiết và hiển thị số đếm trên màn hình bảy đoạn 3 chữ số.

Để đếm, cả hai bộ đếm của 8051 (Timer0 và Timer1) được sử dụng. Timer 1 được cấu hình là bộ đếm tự động 8 bit để đăng ký số xung giảm dần âm đầu vào và Timer0 được cấu hình là một

Program.

ORG 000H
MOV DPTR,#LUT              // moves the addres of LUT to DPTR
MOV P1,#00000000B          // Sets P1 as an output port
MOV P0,#00000000B          // Sets P0 as an output port
MAIN: MOV R6,#14D
      SETB P3.5
      MOV TMOD,#01100001B  // Sets Timer1 as Mode2 counter & Timer0 as Mode1 timer
      MOV TL1,#00000000B   //loads initial value to TL1
      MOV TH1,#00000000B   //loads initial value to TH1
      SETB TR1             // starts timer(counter) 1
BACK: MOV TH0,#00000000B   //loads initial value to TH0
      MOV TL0,#00000000B   //loads initial value to TL0
      SETB TR0             //starts timer 0
HERE: JNB TF0,HERE         // checks for Timer 0 roll over
      CLR TR0              // stops Timer0
      CLR TF0              // clears Timer Flag 0
      DJNZ R6,BACK
      CLR TR1              // stops Timer(counter)1
      CLR TF0              // clears Timer Flag 0
      CLR TF1              // clears Timer Flag 1
      ACALL DLOOP          // Calls subroutine DLOOP for displaying the count
      SJMP MAIN            // jumps back to the main loop
DLOOP: MOV R5,#100D
BACK1: MOV A,TL1           // loads the current count to the accumulator
       MOV B,#100D
       DIV AB              // isolates the first digit of the count
       SETB P1.0
       ACALL DISPLAY       // converts the 1st digit to 7 seg pattern
       MOV P0,A            // puts the pattern to Port 0
       ACALL DELAY         // 1mS delay
       ACALL DELAY
       MOV A,B
       MOV B,#10D
       DIV AB              // isolates the secong digit of the count
       CLR P1.0
       SETB P1.1
       ACALL DISPLAY       // converts the 2nd digit to 7 seg pattern
       MOV P0,A
       ACALL DELAY
       ACALL DELAY
       MOV A,B             // moves the last digit of the count to accumulator
       CLR P1.1
       SETB P1.2
       ACALL DISPLAY       // converts the 3rd digit to 7 seg pattern
       MOV P0,A
       ACALL DELAY
       ACALL DELAY
       CLR P1.2
       DJNZ R5,BACK1       // repeats the subroutine DLOOP 100 times
       RET

DELAY: MOV R7,#250D        // 1mS delay
 DEL1: DJNZ R7,DEL1
       RET

DISPLAY: MOVC A,@A+DPTR    // gets 7 seg digit drive pattern for current value in A
         CPL A             //  (See Note 1)
         RET
LUT: DB 3FH                // Look up table (LUT) starts here
     DB 06H
     DB 5BH
     DB 4FH
     DB 66H
     DB 6DH
     DB 7DH
     DB 07H
     DB 7FH
     DB 6FH
END

Ghi chú.

Quảng cáo đặt hàng nhập
  1. Bảng tra cứu được sử dụng ở đây được làm cho một màn hình bảy đoạn cực âm chung (được sử dụng trong các dự án trước) và ở đây chúng tôi đang sử dụng một màn hình cực dương chung. Lệnh CPL A sẽ bổ sung mẫu điều khiển chữ số trong bộ tích trữ để nó phù hợp với màn hình cực dương. Điều này được làm chỉ để tiết kiệm thời gian của tôi nhưng không phải là phương pháp theo sách giáo khoa. Cách đúng là tạo một bảng tra cứu riêng biệt cho cấu hình cực dương và tránh lệnh CPL A thừa.

Ezoic 2) LM324 là một opamp tứ và chỉ một opamp bên trong nó được sử dụng ở đây. Tôi sử dụng LM324 chỉ vì đó là opamp cung cấp đơn duy nhất có với tôi vào thời điểm đó. Bạn có thể sử dụng bất kỳ opamp cung cấp đơn nào phù hợp với điện áp cung cấp của chúng tôi (5V). Bạn thậm chí có thể sử dụng một opamp cung cấp kép (như 741 phổ biến) ở chế độ cung cấp đơn (+V pin kết nối với cung cấp dương và -V pin kết nối với mặt đất) nhưng tôi sẽ không khuyên bạn nên làm như vậy trừ khi bạn có một đồng hồ đo dao động. Opamp cung cấp kép được cấu hình ở chế độ cung cấp đơn sẽ không cho kết quả như một opamp cung cấp đơn chuyên dụng trong cùng tình huống.

  1. Như chúng ta đã thấy trước đó, Bộ đếm 0 tạo ra khoảng thời gian 1 giây được cấu hình ở Chế độ 1 (bộ đếm 16 bit). Vì vậy, nhiều nhất nó có thể đếm là 2^16 và đó là 65536. Trong 8051, tần số tinh thể được chia cho 12 bằng một mạng nội bộ trước khi áp dụng nó làm đồng hồ cho bộ đếm. Điều đó có nghĩa là bộ đếm sẽ tăng lên một cho mỗi 1/12 của tần số tinh thể. Đối với một hệ thống 8051 được đồng bộ hóa với một tinh thể 12MHz, thời gian cần thiết cho một sự gia tăng của bộ đếm sẽ là 1µS (tức là 1/12MHz). Vì vậy, thời gian trễ tối đa có thể được thu được bằng một phiên của bộ đếm sẽ là 65536µS và nó được lặp lại 14 lần để có được độ trễ 1 giây. Hãy đọc bài viết này Trì hoãn sử dụng bộ đếm 8051 để hiểu rõ hơn.

Ezoic 4) Cũng đọc bài viết này Giao tiếp màn hình bảy đoạn với 8051 trước khi thực hiện dự án này.

Phiên bản LCD của máy đo tốc độ quay sử dụng 8051. Đây chỉ là một sửa đổi của máy đo tốc độ quay số sử dụng 8051 ở trên. Một mô-đun LCD 16×2 được sử dụng ở đây để hiển thị đầu ra. Đầu ra được cho bằng vòng / phút (vòng quay trên phút) và số chữ số được tăng từ 3 lên 5. Mạch này có thể hiển thị lên đến 10200 vòng / phút và nó chính xác hơn phiên bản LED. Ngoài ra, có một sự thay đổi trong mạch cảm biến. Một cặp bộ phát / bộ thu IR (LTH-1550) được sử dụng để cảm nhận vòng / phút thay vì sự kết hợp bộ phát / bộ thu IR, LED rời. Việc sử dụng mô-đun ngắt ánh sáng LTH-1550 làm cho nó bền và ổn định hơn. Sự can thiệp của ánh sáng nhìn thấy được giảm thiểu vì LTH-1550 chỉ cảm nhận IR. Nguyên lý làm việc gần giống như phiên bản trước nhưng chương trình được sửa đổi nhiều. Sơ đồ mạch của máy đo tốc độ quay LCD sử dụng 8051 được cho dưới đây.

Ezoic Máy đo tốc độ quay LCD sử dụng 8051 Mạch nguồn. Một mạch nguồn đơn giản 12V, 5V / 1A dựa trên IC điều chỉnh điện áp 7805 và 7812 được cho dưới đây.

Program for the LCD tachometer.
    
    RS EQU P2.7
    RW EQU P2.6
    E  EQU P2.5
    ORG 00H
MOV DPTR,#LUT 
SETB P3.5 
CLR P2.0
MAIN: MOV R6,#22D
      MOV TMOD,#01100001B  
      MOV TL1,#00000000B   
      MOV TH1,#00000000B   
      SETB TR1             
BACK: MOV TH0,#00000000B   
      MOV TL0,#00000000B   
      SETB TR0             
HERE: JNB TF0,HERE         
      CLR TR0              
      CLR TF0              
      DJNZ R6,BACK
      CLR TR1              
      CLR TF0              
      CLR TF1
      MOV A,TL1
      CJNE A,#75D,SKIP 
SKIP: JC SKIP1
      SETB P2.0
SKIP1:JNC CONT
      CLR P2.0
CONT: CLR PSW.7
      MOV B,#100D    
      DIV AB
      MOV R0,A
      MOV A,B
      MOV B,#10D
      DIV AB
      MOV R1,A
      MOV R2,B
      
      MOV A,R2
      MOV B,#4D
      MUL AB
      MOV B,#10D
      DIV AB
      MOV R4,B
      MOV R2,A
      MOV A,R1
      MOV B,#4D
      MUL AB
      ADD A,R2
      MOV B,#10D
      DIV AB
      MOV R5,B
      MOV R2,A
      MOV A,R0
      MOV B,#4D
      MUL AB
      ADD A,R2
      MOV B,#10D
      DIV AB
      MOV R6,B
      MOV R7,A
     
      
      ACALL DINT
      ACALL TEXT1
      ACALL LINE2
      ACALL TEXT2
      ACALL NUM
      
      LJMP MAIN    
   
   
   
 DINT: ACALL CMD 
    MOV A,#0FH 
    ACALL CMD
    MOV A,#01H 
    ACALL CMD
    MOV A,#06H 
    ACALL CMD
    MOV A,#83H 
    ACALL CMD
    MOV A,#3CH 
    ACALL CMD
    RET
    
TEXT1: MOV A,#84D
    ACALL DISPLAY
    MOV A,#65D 
    ACALL DISPLAY
    MOV A,#67D
    ACALL DISPLAY
    MOV A,#72D
    ACALL DISPLAY
    MOV A,#79D
    ACALL DISPLAY
    MOV A,#77D
    ACALL DISPLAY
    MOV A,#69D
    ACALL DISPLAY
    MOV A,#84D
    ACALL DISPLAY
    MOV A,#69D
    ACALL DISPLAY
    MOV A,#82D
    ACALL DISPLAY
    RET

TEXT2:MOV A,#82D
      ACALL DISPLAY
      MOV A,#80D
      ACALL DISPLAY
      MOV A,#77D
      ACALL DISPLAY
      MOV A,#32D
      ACALL DISPLAY
      RET
    
LINE2:MOV A,#0C0H 
    ACALL CMD
    RET

    
   
NUM:MOV A,R7
    ACALL ASCII
    ACALL DISPLAY
    MOV A,R6
    ACALL ASCII
    ACALL DISPLAY
    MOV A,R5
    ACALL ASCII
    ACALL DISPLAY
    MOV A,R4
    ACALL ASCII
    ACALL DISPLAY
    MOV A,#0D
    ACALL ASCII
    ACALL DISPLAY
    RET
    
   
    
CMD: MOV P0,A
    CLR RS
    CLR RW
    SETB E
    CLR E
    ACALL DELAY
    RET

DISPLAY:MOV P0,A
    SETB RS
    CLR RW
    SETB E
    CLR E
    ACALL DELAY
    RET

DELAY: CLR EN
    CLR RS
    SETB RW
    MOV P0,#0FFh
    SETB E
    MOV A,P0
    JB ACC.7,DELAY
    CLR E
    CLR RW
    RET

ASCII: MOVC A,@A+DPTR
       RET
    
LUT: DB  48D
     DB  49D
     DB  50D
     DB  51D
     DB  52D
     DB  53D
     DB  54D
     DB  55D
     DB  56D
     DB  57D
   
    END

Chương trình này thực sự đếm số xung âm tiến âm âm trong khoảng 1.5 giây, và sau đó nhân với 40 để tính được số vòng quay trên mỗi phút.

Chương trình này có thể được sử dụng để đo tốc độ quay của một thiết bị hoặc máy móc dựa trên tần số của các xung âm tiến âm âm (xung âm âm điện) mà nó nhận được trong khoảng thời gian 1.5 giây. Xung âm âm thường được sử dụng trong các ứng dụng đo lường và kiểm tra trong nhiều lĩnh vực khác nhau.

Bằng cách nhân số xung âm âm bằng 40, chương trình này chuyển đổi tần số đo được thành số vòng quay trên mỗi phút (RPM). Điều này giúp người dùng biết được tốc độ quay của thiết bị hoặc máy móc mà họ đang đo, giúp họ kiểm tra và theo dõi hiệu suất hoặc hoạt động của nó.

 

Gia công pcb 932*150
Sản phẩm nổi bật
Sale 0%
78000 /Cái
/ Cái

Code: 6016-042 Còn hàng

Lưu xem sau
Sale 0%
35000 /Cái
/ Cái

Code: 6016-029 Còn hàng

Lưu xem sau
Sale 0%
Led sáng màu đỏ
121000 /Cái
/ Cái

Code: M-6016-035 Còn hàng

Lưu xem sau
Sale 0%
50000 /Cái
/ Cái

Code: M-6016-020 Còn hàng

Lưu xem sau
Hỗ trợ liên kết
0979466469
0899909838
0938128290
0899909838
Khiếu nại: 0964238397
0979466469
0868565469
0868565469

Hotline: 0979 466 469

Loading
0964238397
Bạn cần linh kiện mẫu ? 7-11 ngày