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

Chào mừng bạn đến với pgdgiolinhqt.edu.vn trong bài viết về Adc0808 là gì chúng tôi sẽ chia sẻ kinh nghiệm chuyên sâu của mình cung cấp kiến thức chuyên sâu dành cho bạn.

1, Giới thiệu chung

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

a) Sơ đồ chân:

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

Ý nghĩa các chân:

  • Các chân từ IN0-IN7 là ngõ vào analog.
  • Vref+/Vref- là chân cấp áp so sánh.
  • ALE là chân cho phép giao tiếp
  • Từ 2ˆ-1 đến 2ˆ-8 là các ngõ ra song song 8bit
  • START là chân cho phép chuyển đổi
  • EOC là chân báo quá trình chuyển đổi hoàn tất, kiểu dạng cờ ngắt
  • ADD A, ADD B, ADD C là 3bit địa chỉ chọn kênh đầu vào từ IN0-IN7
  • VCC, GND là chân cấp nguồn dương 5V và nguồn âm (Mass)
  • CLOCK là chân cấp xung đồng hồ cho IC hoạt động, tốc độ lấy mẫu và chuyển đổi phụ thuộc vào cái này, tối đa 640khz
  • OUTPUT ENABLE (OE) là chân báo cho IC xuất data ra Port để vi điều khiển lấy đi.

b) Giản đồ xung giao tiếp IC ADC0808 (ADC0809)

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

c) Cảm biến nhiệt độ

Xem thêm:  Nước khử ion là gì? Chia sẻ cách khử Ion trong ... - be boi toan cau

LM35 là cảm biến nhiệt độ, đầu ra là tín hiệu điện áp biến đổi theo nhiệt độ, cứ 10mV tương ứng với 1 độ C và giải đo của IC này là -55 độ đến 150 độ C, điện áp cung cấp từ 4-20VDC. Để đo được nhiệt độ âm tức nhỏ hơn 0 ta phải cấp thêm nguồn â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 giao tiếp ADC0808

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

Xây dựng: Xây dựng các hàm giao tiếp LCD và giao tiếp ADC0808 cụ thể như sau

* LCD16x2:

  • LCD_Init() Hàm khởi tạo LCD
  • LCD_Clear() Hàm xóa màn hình
  • LCD_Gotoxy(X,Y) Hàm trỏ tới vị trí trên màn hình. Trong đó X là vị trí 0-15, Y là dòng 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 đọc ADC theo kênh từ 0-7

Và một số hàm khác như delay, tính nhiệt độ, chuyển đổi hiển thị….

CODE:

//Khai báo chân giao tiếp 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 đọc ADC0808 theo kênh******/unsigned char ADC0808_Read(unsigned char channel){ unsigned char kq; ADC0808_A = channel & 0x01; //Chọn kênh ADC0808_B = channel & 0x02; ADC0808_C = channel & 0x04; ADC0808_ALE = 1; //Giao tiếp ADC0808_START = 1; //Bắt đầu chuyển đổi ADC0808_ALE = 0; ADC0808_START = 0; while(ADC0808_EOC); //Chờ chuyển đổi xong while(!ADC0808_EOC); ADC0808_OE = 1; //Đọc dữ liệu kq = ADC0808_DATA; ADC0808_OE = 0; return kq; //Trả về hàm dữ liệu ADC}

Xem thêm:  Vải Tuytsi là gì? Ưu điểm vải Tuytsi? Vải Tuytsi may Vest có tốt không?

Xem code đầy đủ trong file đính kèm cuối 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

Tại sao phải tạo áp Vref 2.56V xin được giải thích như sau:

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

Do độ phân giải của ADC0808 là 8bit lên sẽ có 256 mức điện áp so 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 chẳng hạn thì giá trị ADC = 256⁄2 = 128 (do Vin = 1⁄2 Vref) từ đó suy ra Vref = 2.56V thì để ADC=25 thì điện áp đầu vào input phải là 250mV => Cứ tăng/giảm 10mV là ADC tăng/giảm 1 giá trị. Mà cảm biến nhiệt độ LM35 lại có ngõ ra cứ 10mV là thay đổi 1 độ C như vậy suy ra ADC=25 thì LM35 đang ở 25 độ C. Với cách này ta không cần phải tính toán giá trị nhiệt độ sau khi chuyển đổi mà có thể xuất luôn giá trị ADC đó ra màn hình LCD.

Tải về đính kèm:

Rate this post

KevinNguyen

Kevin Nguyễn - Người quản trị nội dung web là một chuyên gia sáng tạo và chuyên nghiệp trong việc quản lý, phát triển và duy trì nội dung website. Với khả năng phân tích và đánh giá thông tin chính xác, anh/chị đảm bảo cung cấp thông tin hữu ích và đáng tin cậy cho cộng đồng.