ADC (Bộ chuyển đổi tương tự thành kỹ thuật số) đóng một phần rất quan trọng trong nhiều dự án nhúng và bài viết này là về việc giao tiếp một ADC với điều khiển nhúng 8051. ADC 0804 là ADC được sử dụng ở đây và trước khi tiến hành qua quy trình giao tiếp, chúng ta phải hiểu rõ cách ADC 0804 hoạt động.
ADC 0804. ADC0804 là bộ chuyển đổi tương tự thành kỹ thuật số theo phương pháp so sánh liên tục 8 bit từ National semiconductors. Các tính năng của ADC0804 bao gồm đầu vào điện áp tương tự khác biệt, phạm vi điện áp đầu vào từ 0-5V, không cần điều chỉnh không, bộ tạo xung nội, điện áp tham chiếu có thể được điều chỉnh bên ngoài để chuyển đổi các phạm vi điện áp tương tự nhỏ hơn thành độ phân giải 8 bit, v.v. Sơ đồ chân của ADC0804 được hiển thị trong hình dưới đây.
Sơ đồ chân ADC0804 Sơ đồ chân của ADC0804
Điện áp tại Vref/2 (chân 9) của ADC0804 có thể được điều chỉnh bên ngoài để chuyển đổi các phạm vi điện áp đầu vào nhỏ hơn thành độ phân giải 8 bit đầy đủ. Vref/2 (chân 9) để trống có nghĩa là phạm vi điện áp đầu vào từ 0-5V và kích thước bước là 5/255=19,6V. Hãy xem bảng dưới đây để biết về các điện áp Vref/2 khác nhau và các phạm vi điện áp đầu vào tương ứng
Các bước để chuyển đổi tín hiệu đầu vào tương tự và đọc dữ liệu từ ADC0804:
Sơ đồ mạch.
Giao tiếp ADC0804 với 8051 Hình ảnh bên trên cho thấy sơ đồ mạch để giao tiếp ADC0804 với 8051. Mạch khởi động ADC để chuyển đổi tín hiệu tương tự được cung cấp, sau đó nhận dữ liệu kỹ thuật số tương ứng và hiển thị nó trên mảng đèn LED được kết nối tại P0. Ví dụ, nếu điện áp đầu vào tương tự Vin là 5V, thì tất cả đèn LED sẽ sáng, cho thấy số 11111111 ở hệ nhị phân, tương đương với số 255 ở hệ thập phân. AT89s51 là vi điều khiển được sử dụng ở đây. Các chân dữ liệu ra (D0 đến D7) của ADC0804 được kết nối với các chân cổng P1.0 đến P1.7 tương ứng. Các đèn LED D1 đến D8 được kết nối với các chân cổng P0.0 đến P0.7 tương ứng. Các resistor R1 đến R8 là các resistor giới hạn dòng. Nói một cách đơn giản, P1 của vi điều khiển là cổng đầu vào và P0 là cổng đầu ra. Tín hiệu điều khiển cho ADC (INTR, WR, RD và CS) có sẵn tại các chân cổng P3.4 đến P3.7 tương ứng. Resistor R9 và tụ C1 liên quan đến mạch xung nội bộ của ADC. Resistor biến R10 tạo thành một bộ chia điện áp có thể được sử dụng để áp dụng một điện áp tương tự đầu vào cụ thể vào ADC. Nút nhấn S1, resistor R11 và tụ C4 tạo thành một cơ chế đặt lại sau khi nhấn. Cứng quay X1 và tụ C2, C3 liên quan đến mạch xung của vi điều khiển.
ORG 00H
MOV P1,#11111111B // initiates P1 as the input port
MAIN: CLR P3.7 // makes CS=0
SETB P3.6 // makes RD high
CLR P3.5 // makes WR low
SETB P3.5 // low to high pulse to WR for starting conversion
WAIT: JB P3.4,WAIT // polls until INTR=0
CLR P3.7 // ensures CS=0
CLR P3.6 // high to low pulse to RD for reading the data from ADC
MOV A,P1 // moves the digital data to accumulator
CPL A // complements the digital data (*see the notes)
MOV P0,A // outputs the data to P0 for the LEDs
SJMP MAIN // jumps back to the MAIN program
END
Ghi chú: Toàn bộ mạch có thể được cung cấp từ nguồn 5V DC. ADC 0804 có đầu ra ở mức thấp hoạt động và hướng dẫn "CPL A" (Complement A) được sử dụng để làm cho hiển thị trở nên dễ dàng. Ví dụ, nếu đầu vào là 5V, thì đầu ra sẽ là 11111111 và nếu không sử dụng "CPL A," nó sẽ là 00000000, điều này sẽ khá kỳ lạ để quan sát.
Hotline: 0979 466 469