Đo nhiệt độ dùng LM35 kết hợp IC ADC0808 với 8051

Adc0808 là gì

1, Ra mắt chung

IC ADC0808 là 1 trong những vi mạch tích hợp với tính năng gửi đổi tín hiệu tương tự lịch sự kỹ thuật số (Analog to Digital Converters), phân bố điểm ảnh của bộ ADC là 8bit tức nó sẽ gửi đổi tín hiệu điện tương tự lịch sự 256 mức điện áp so sánh với Vref cấp vào bộ gửi đổi. Những các bạn với thể coi datasheet của nó trong tệp thêm kèm.

a) Sơ đồ dùng chân:

Đo nhiệt độ dùng LM35 kết hợp IC ADC0808 với 8051 - SangTaoClub.Net

Ý nghĩa những chân:

  • Những chân từ IN0-IN7 là ngõ vào analog.
  • Vref+/Vref- là chân cấp áp so sánh sánh.
  • ALE là chân cho phép tiếp xúc
  • Từ 2ˆ-1 tới 2ˆ-8 là những ngõ ra tuy nhiên tuy nhiên 8bit
  • START là chân cho phép gửi đổi
  • EOC là chân báo quy trình gửi đổi hoàn thành, kiểu dạng cờ ngắt
  • Đến mua trực tiếp A, Đến mua trực tiếp B, Đến mua trực tiếp C là 3bit địa điểm tậu kênh input từ IN0-IN7
  • VCC, GND là chân cấp Power dương 5V và Power âm (Mass)
  • CLOCK là chân cấp xung đồng hồ thời trang cho IC làm việc, vận tốc lấy mẫu và gửi đổi tùy thuộc vào dòng này, cao nhất 640khz
  • OUTPUT ENABLE (OE) là chân báo cho IC xuất data ra Port để vi điều khiển và tinh chỉnh lấy đi.

b) Giản đồ dùng xung tiếp xúc IC ADC0808 (ADC0809)

Đo nhiệt độ dùng LM35 kết hợp IC ADC0808 với 8051 - SangTaoClub.Net

c) Cảm ứng nhiệt độ

LM35 là cảm ứng nhiệt độ, Output là tín hiệu điện áp chuyển đổi theo nhiệt độ, cứ 10mV ứng với một độ C và giải đo của IC này là -55 độ tới 150 độ C, điện áp cung ứng từ 4-20VDC. Để đo được nhiệt độ âm tức nhỏ hơn 0 ta phải cấp thêm Power âm -Vs cho IC này như sau:

Đo nhiệt độ dùng LM35 kết hợp IC ADC0808 với 8051 - SangTaoClub.Net

2, Lập trình tiếp xúc ADC0808

Tính năng: Tự hoạt động update trị giá ADC (trị giá nhiệt độ của LM35) từ IC ADC0808 rồi hiển thị lên LCD 16×2, tạo xung đồng hồ thời trang cho IC ADC0808 dùng ngắt timer.

Xây dựng: Xây dựng những hàm tiếp xúc LCD và tiếp xúc ADC0808 rõ ràng như sau

* LCD16x2:

  • LCD_Init() Hàm khởi tạo LCD
  • LCD_Clear() Hàm xóa monitor
  • LCD_Gotoxy(X,Y) Hàm trỏ tới mùi vị trí trên monitor. Trong số đó X là mùi vị trí 0-15, Y là loại 0-1
  • LCD_PutChar(ký_tự_ascii) Hàm gửi một ký tự ASCII lên LCD
  • LCD_Puts(“Nội dung”) Hàm gửi một chuỗi ký tự lên LCD

* ADC0808:

  • ADC0808_Read(channel) Hàm sưu tầm ADC theo kênh từ 0-7

Và một trong những hàm khác như delay, tính nhiệt độ, gửi đổi hiển thị….

CODE:

//Khai báo chân tiếp xúc ADC0808#define ADC0808_DATA P3 //PORT#define ADC0808_A P2_0 //PIN#define ADC0808_B P2_1#define ADC0808_C P2_2#define ADC0808_ALE P2_3#define ADC0808_START P2_4#define ADC0808_EOC P2_5#define ADC0808_OE P2_6#define ADC0808_CLK P2_7

/**********Hàm sưu tầm ADC0808 theo kênh******/unsigned char ADC0808_Read(unsigned char channel){ unsigned char kq; ADC0808_A = channel & 0x01; //Sắm kênh ADC0808_B = channel & 0x02; ADC0808_C = channel & 0x04; ADC0808_ALE = 1; //Tiếp xúc ADC0808_START = 1; //Mở màn gửi đổi ADC0808_ALE = 0; ADC0808_START = 0; while(ADC0808_EOC); //Chờ gửi đổi xong while(!ADC0808_EOC); ADC0808_OE = 1; //Xem thêm thông tin data kq = ADC0808_DATA; ADC0808_OE = 0; return kq; //Trả về hàm data ADC}

Coi code gần như trong file thêm kèm cuối nội dung bài viết….!

3, Mô phỏng trên Proteus:

Đo nhiệt độ dùng LM35 kết hợp IC ADC0808 với 8051 - SangTaoClub.Net

Vì sao phải tạo áp Vref 2.56V xin được giảng giải như sau:

Công thức tính điện áp gửi đổi: Vin = (Vref*ADC)⁄256

Do phân bố điểm ảnh của ADC0808 là 8bit lên sẽ với 256 mức điện áp so sánh với Vref. Tức nếu ta cấp vào Vref là 5V và tín hiệu input vào là 2.5V ví dụ điển hình thì trị giá ADC = 256⁄2 = 128 (do Vin = 1⁄2 Vref) khi đó suy ra Vref = 2.56V thì để ADC=25 thì điện áp input input phải là 250mV => Cứ tăng/tránh 10mV là ADC tăng/tránh 1 trị giá. Nhưng cảm ứng nhiệt độ LM35 lại với ngõ ra cứ 10mV là thay đổi 1 độ C tương tự suy ra ADC=25 thì LM35 đang ở 25 độ C. Với phương pháp này ta ko cần được tính toán trị giá nhiệt độ sau lúc gửi đổi nhưng với thể xuất luôn luôn trị giá ADC đấy ra monitor LCD.

Tải về thêm kèm: