Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
188,23 KB
Nội dung
Interfacing ADC0808 với 8051 Vi điều khiển Bởi Saddam Bình luận ADC0808 interfacing với-8.051 vi điều khiển ADC chuyển đổi Analog to Digital , chuyển đổi liệu tương tự sang định dạng số; Thường sử dụng để chuyển đổi điện áp tương tự sang định dạng số Tín hiệu Analog có vơ số giá trị giống sóng sin hay lời nói chúng ta, ADC chuyển chúng thành mức trạng thái đặc biệt, đo số số lượng vật lý Thay chuyển đổi liên tục, ADC chuyển đổi liệu định kỳ, thường gọi tỷ lệ lấy mẫu Modem điện thoại ví dụ ADC, sử dụng cho internet, chuyển đổi liệu tương tự sang liệu số, máy tính hiểu, máy tính hiểu liệu số Ưu điểm việc sử dụng ADC là, Chúng tơi tiếng ồn loại bỏ hiệu từ tín hiệu ban đầu tín hiệu số du lịch hiệu so với analog Đó lý mà âm số rõ ràng, lắng nghe Hiện có nhiều vi điều khiển thị trường có ADC inbuilt với nhiều kênh Và cách sử dụng đăng ký ADC họ chúng tơi giao diện Khi chúng tơi lựa chọn 8.051 gia đình vi điều khiển để thực dự án, cần chuyển đổi ADC, sau chúng tơi sử dụng ADC bên ngồi Một số chip ADC bên ngồi 0803,0804,0808,0809 có nhiều Hôm giao tiếp với 8-kênh ADC với AT89s52 Microcontroller ADC0808 / 0809 Các thành phần: Bộ điều khiển 8051 (AT89S52) ADC0808 / 0809 Màn hình LCD 16x2 Điện trở (1k, 10k) POT (10k x 4) Capacitor (10uf, 1000uf) Đỏ dẫn Bánh mì PCB 7805 Tinh thể 11,0592 MHz Quyền lực Dây kết nối ADC0808 / 0809: ADC0808 / 0809 thiết bị CMOS đơn logic điều khiển tương thích vi xử lý có 28 chân mang lại giá trị bit cho đầu vào chân đầu vào ADC kênh (IN0-IN7) Độ phân giải mã hóa liệu tương tự thành 256 mức (2 ) Thiết bị có ba dòng địa kênh: ADDA, ADDB ADDC để chọn kênh Dưới Sơ đồ Pin cho ADC0808: ADC0808 / 0809 yêu cầu xung đồng hồ để chuyển đổi Chúng tơi cung cấp cách sử dụng Dao động cách sử dụng vi điều khiển Trong dự án áp dụng tần số cách sử dụng vi điều khiển Chúng ta chọn kênh đầu vào cách sử dụng dòng Địa chỉ, chọn dòng đầu vào IN0 cách giữ ba dòng địa (ADDA, ADDB ADDC) Thấp Nếu muốn chọn kênh đầu vào IN2 cần giữ ADDA, ADDB thấp ADDC cao Để chọn tất kênh đầu vào khác, nhìn vào bảng cho: Tên kênh ADC Mã PIN ADDC PIN ADDB Mã ADDA IN0 LOW LOW LOW TRONG LOW LOW CAO TRONG LOW CAO LOW IN3 LOW CAO CAO IN4 CAO LOW LOW IN5 CAO LOW CAO IN6 CAO CAO LOW IN7 CAO CAO CAO Mạch Mô tả: Mạch "Interfacing ADC0808 với 8.051" phức tạp có chứa nhiều dây kết nối để kết nối thiết bị với Trong mạch chủ yếu sử dụng AT89s52 8.051 vi điều khiển, ADC0808, Potentiometer LCD Màn hình 16x2 kết nối với vi điều khiển 89s52 chế độ 4-bit Kiểm soát pin RS, RW En kết nối trực tiếp tới pin P2.0, GND P2.2 Và chân liệu D4-D7 nối với chân P2.4, P2.5, P2.6 P2.7 89s52 Đầu ADC0808 pin kết nối trực tiếp với cổng P1 AT89s52 Địa đường dây ADDA, ADDB, AADC kết nối P3.0, P3.1, P3.2 ALE (bật chốt địa chỉ), SC (chuyển đổi bắt đầu), EOC (kết thúc chuyển đổi), OE (bật ra) chân đồng hồ kết nối P3.3, P3.4, P3.5, P3.6 P3.7 Và sử dụng ba potentiometers kết nối pin 26, 27, 28 ADC0808 Một pin volt điều chỉnh điện áp volt 7805 sử dụng để cấp nguồn cho mạch Đang làm việc: Trong dự án giao tiếp ba kênh ADC0808 Và để trình diễn chúng tơi sử dụng ba điện trở biến Khi cấp nguồn cho mạch, vi điều khiển khởi tạo LCD cách sử dụng lệnh thích hợp, cho đồng hồ đến ADC chip, chọn kênh ADC cách sử dụng dòng địa gửi tín hiệu chuyển đổi bắt đầu đến ADC Sau ADC lần đọc đầu vào kênh ADC chọn chuyển đổi đầu sang vi điều khiển Sau vi điều khiển hiển thị giá trị vị trí Ch1 LCD Và sau thay đổi kênh vi điều khiển kênh ADC cách sử dụng dòng địa Và sau ADC đọc kênh chọn gửi đầu cho vi điều khiển Và hiển thị hình LCD tên Ch2 Và khôn ngoan kênh khác Làm việc ADC0808 giống với công việc ADC0804 Trong điều này, vi điều khiển cung cấp tín hiệu đồng hồ 500 KHz cho ADC0808, sử dụng ngắt Timer 0, ADC u cầu tín hiệu đồng hồ hoạt động Bây vi điều khiển gửi tín hiệu LOW đến CAO để pin ALE (pin hoạt động cao nó) ADC0808 phép chốt địa Sau đó, cách áp dụng tín hiệu HIGH to LOW Level lên SC (Start Conversion), ADC bắt đầu tương tự chuyển đổi số Và sau đợi cho EOC (Chuyển đổi) để chuyển sang LOW Khi EOC LOW, có nghĩa chuyển đổi tương tự sang số hoàn thành liệu sẵn sàng để sử dụng Sau đó, vi điều khiển cho phép dòng đầu cách áp dụng tín hiệu HIGH to LOW để OE pin ADC0808 ADC0808 cho phép chuyển đổi số liệu đầu Và cơng thức để chuyển đổi phương pháp phóng xạ cho bởi: V / (V fs -V z ) = D x / (D tối đa -D phút ) Ở đâu V điện áp V fs quy mô V z số D x điểm D max liệu D phút giới hạn liệu tối thiểu đầu vào đầy không liệu tối cho đủ chuyển điện điện phúc đa biện giới đổi áp áp pháp hạn Giải thích chương trình: Trong chương trình, trước hết bao gồm tập tin tiêu đề cát xác định biến đầu vào đầu pins cho ADC LCD # Include #include Sbit ale = P3 ^ 3; Sbit oe = P3 ^ 6; Sbit sc = P3 ^ 4; Sbit eoc = P3 ^ 5; Sbit clk = P3 ^ 7; Sbit ADDA = P3 ^ 0; / / Ghim địa để lựa chọn kênh đầu vào Sbit ADDB = P3 ^ 1; Sbit ADDC = P3 ^ 2; # Xác định lcdport P2 // lcd Sbit rs = P2 ^ 0; Sbit rw = P2 ^ 2; Sbit en = P2 ^ 1; # Xác định input_port P1 // ADC Int kết [3], số; Chức tạo chậm trễ tạo (trễ void), với số chức LCD khởi tạo LCD, in chuỗi, cho lệnh LCD vv Bạn dễ dàng tìm thấy chúng Mã Kiểm tra viết cho LCD interfacing với 8051 chức Sau chương trình khởi tạo LCD đặt EOC, ALE, EO, SC pins tương ứng Void main () { Int i = 0; Eoc = 1; Ale = 0; Oe = 0; Sc = 0; TMOD = 0x02; TH0 = 0xFD; Lcd_ini (); Lcdprint ("ADC 0808/0809"); Và sau chương trình đọc ADC lưu trữ đầu ADC biến sau gửi đến hình LCD sau thập phân để chuyển đổi ASCII, sử dụng hàm void read_adc () void adc (int i): Void read_adc () { Số = 0; Ale = 1; Sc = 1; Chậm trễ (1); Ale = 0; Sc = 0; Trong (eoc == 1); Trong (eoc == 0); Oe = 1; Số = input_port; Chậm trễ (1); Oe = 0; } Void adc (int i) { Chuyển đổi (i) { Trường hợp 0: ADDC = 0; ADDB = 0; ADDA = 0; Lcdcmd (0xc0); Read_adc (); Mã số: # Include # include sbit ale = P3 ^ 3; Sbit oe = P3 ^ 6; Sbit sc = P3 ^ 4; Sbit eoc = P3 ^ 5; Sbit clk = P3 ^ 7; Sbit ADDA = P3 ^ 0; / / Ghim địa để lựa chọn kênh đầu vào Sbit ADDB = P3 ^ 1; Sbit ADDC = P3 ^ 2; # Xác định lcdport P2 // lcd sbit rs = P2 ^ 0; Sbit rw = P2 ^ 2; Sbit en = P2 ^ 1; # Xác định input_port P1 // ADC int result [3], số; Void timer0 () ngắt // Chức để tạo đồng hồ tần số 500KHZ cách sử dụng Timer ngắt { Clk = ~ clk; } Sự chậm trễ void (đếm int unsigned) { int i, j; Cho (i = 0; i