Thiết kế bộ đo nhiệt độ sử dụng vi điều khiển 8051

13 303 3
Thiết kế bộ đo nhiệt độ sử dụng vi điều khiển 8051

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đề Tài (Bài số 2): Thiết kế bộ đo nhiệt độ dùng vi điều khiển 8051 gồm:Cảm biến nhiệt độ dùng LM35Hiển thị bằng LED hiển thị 7 thanh, 3 chữ số, anot chung. Ghép nối trực tiếp với vi điều khiển.02 nút điều khiển chạydừng đoNội dung thiết kế:Vẽ sơ đồ nguyên lý toàn bộ mạch.Viết chương trình hợp ngữ để đếm và hiển thị nhiệt độ trên hiển thị.

Đề Tài (Bài số 2): Thiết kế đo nhiệt độ dùng vi điều khiển 8051 gồm: - Cảm biến nhiệt độ dùng LM35 - Hiển thị LED hiển thị thanh, chữ số, anot chung Ghép nối trực tiếp với vi điều khiển - 02 nút điều khiển chạy/dừng đo Nội dung thiết kế: - Vẽ sơ đồ ngun lý tồn mạch - Viết chương trình hợp ngữ để đếm hiển thị nhiệt độ hiển thị Bài tập lớn Vi điều khiển & Ứng dụng Phân tích u cầu cơng nghệ thiết kế sơ đồ nguyên lý 1.1 Yêu cầu công nghệ Thiết kế mạch đo nhiệt độ sử dụng vi điều khiển họ 8051 hiển thị thông qua led Thiết bị đo nhiệt độ hiển thị lên led chữ số, với sai số mạch đo 1˚C Gồm có nút bấm điều khiển mạch dừng/đo Lựa chọn linh kiện: - - Vi điều khiển họ 8051 chọn vi điều khiển 89S51 (với dao động thạch anh ngoài, tần số 12MHz) Cảm biến nhiệt độ sử dụng LM35 (dải nhiệt độ -55˚C đến 150˚C) Bộ chuyển đổi tương tự số ADC0808 Bộ hiển thị gồm led 7segx4; với led sử dụng để hiển thị chữ số nhiệt độ đo được, led cuối (led thứ 4) sử dụng để hiển thị chữ độ ‘˚’ nút bấm Trong đó: nút sử dụng để tạo tín hiệu Reset cho vi điều khiển, nút lại dùng để điều khiển mạch (Start/Stop) transisor pnp dùng để cấp dòng cho led IC NE555 dùng để tạo xung cho ADC Kết nối linh kiện: - 1.2 đường tín hiệu led 7segx4 nối trực tiếp với cổng P0 89S52 thông qua điện trở treo (ở sử dụng trở băng 10kΩ) transistor nối với chân P2.0, P2.1, P2.2, P2.3 để điều khiển led thứ 1, 2, 3, ( mức led sáng, mức led tắt) Dữ liệu chuyển đổi ADC0808 nối với Port 89S52 Sơ đồ nguyên lý Bài tập lớn Vi điều khiển & Ứng dụng Bài tập lớn Vi điều khiển & Ứng dụng Chức nguyên lý phần tử Cảm biến LM35 Chức năng: Đo nhiệt độ trả lại tín hiệu điện áp vào chân IN0 ADC0808 Nguyên lý: Cảm biến LM35 có độ phân giải điện áp đầu 10mV/˚C Kết hợp với điện áp tham chiếu ADC0808 mà từ tính tín hiệu số Ví dụ: điện áp tham chiếu ADC0808 +2,56 V ta đo với dải nhiệt độ 0˚C - 150˚C, tín hiệu điện áp trả LM35 0mV đến 1500mV ADC0808 Chức năng: Chuyển đổi tín hiệu tương tự dạng số để gửi đến vi điều khiển (Ở chuyển tín hiệu điện áp dạng tương tự LM35 đưa để tính giá trị nhiệt độ xác) Nguyên lý: Giá trị chuyển đổi ADC0808 tính theo cơng thức: Trong đó: - VIN tín hiệu điện áp từ LM35 đưa chân IN0 ADC VREF(+) giá trị điện áp tham chiếu đặt vào chân VREF(+) VREF(-) giá trị điện áp tham chiếu âm đặt vào chẩn V REF(-) (trong chân VREF(-) nối đất) Chọn VREF(+) = 2,56V VREF(-) = 0V, ta được: Tức tín hiệu điện áp đo 10mV N= (˚C) IC NE555 Chức năng: dùng để tạo xung có tần số 640kHz để đưa vào chân CLOCK ADC Nguyên lý: Mạch tạo đơn xung mắc theo hình bên Bài tập lớn Vi điều khiển & Ứng dụng Hình 1.1 Mạch tạo đơn xung Tần số xung tạo phụ thuộc vào điện trở R1, R2 tụ C1 Tần số mạch tính cơng thức sau: Chọn C1 = 5pF Để tạo F = 640kHz Thay số ta tính (R2 + 2.R1) = 450,842 (kΩ)  Chọn R2 = 51 kΩ, R1=200 kΩ Bài tập lớn Vi điều khiển & Ứng dụng Lưu đồ thuật toán 2.1 Chương trình đọc ADC: Bài tập lớn Vi điều khiển & Ứng dụng 2.2 Chương trình ngắt chân P3.3: Bài tập lớn Vi điều khiển & Ứng dụng 2.3 Chương trình ngắt timer 0: Bài tập lớn Vi điều khiển & Ứng dụng 2.4 Chương trình Chương trình điều khiển cho 89S52 3.1 Chương trình Bài tập lớn Vi điều khiển & Ứng dụng #include "main.h" #include "port.h" #include " \Lib\delay.h" #include " \Lib\ADC0808.h" unsigned char cnt=20; unsigned char adc_value = 0; void main() { unsigned char code code7Seg[]= {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x9C,0xC6}; ADC0808_Init(); //Cau hinh cho timer hoat dong o muc mot TMOD &= 0xF0; TMOD |= 0x01; // chon timer 0, mode TH0 = 0x3C; // 65536-50000 = 15536 = 3CB0 TL0 = 0xB0; ET0 = 1; // Cho phep ngat timer TR0 = 1; // Cho timer hoat dong IT1 = 1; // Ngat suon xuong EX1 = 1; // Cho phep ngat ngoai EA = 1; // Cho phep ngat toan cuc while(1) { //adc_value = ADC0808_Read(); 10 Bài tập lớn Vi điều khiển & Ứng dụng LED_PORT = code7Seg[adc_value/100]; LED1 = 0; //bat led delay_ms(1); LED1 = 1; //tat led LED_PORT = code7Seg[(adc_value%100)/10]; LED2 = 0; delay_ms(1); LED2 = 1; LED_PORT = code7Seg[(adc_value%100)%10]; LED3 = 0; delay_ms(1); LED3 = 1; LED_PORT = code7Seg[10]; LED4 = 0; delay_ms(1); LED4 = 1; } } 3.2 Chương trình ngắt ngồi chân P3.3 void EX1_ISR (void) interrupt { unsigned char code code7Seg[]= {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x9C}; while(BT0) { LED_PORT = code7Seg[0]; LED1 = 0; 11 Bài tập lớn Vi điều khiển & Ứng dụng delay_ms(1); LED1 = 1; LED_PORT = code7Seg[0]; LED2 = 0; delay_ms(1); LED2 = 1; LED_PORT = code7Seg[0]; LED3 = 0; delay_ms(1); LED3 = 1; LED_PORT = code7Seg[0]; LED4 = 0; delay_ms(1); LED4 = 1; } } 3.3 Chương trình ngắt Timer0 void Timer0_ISR(void) interrupt // ngat timer { TH0 = 0x3C; TL0 = 0xB0; cnt ; if(cnt==0) { adc_value = ADC0808_Read(); cnt = 20; } 12 Bài tập lớn Vi điều khiển & Ứng dụng } 3.4 Chương trình chuyển đổi ADC #include "main.h" #include "port.h" void ADC0808_Init() { ADC0808_START = 0; ADC0808_ALE = 0; ADC0808_OE = 0; } unsigned char ADC0808_Read() { unsigned char kq;//Bat dau qua trinh chuyen doi ADC0808_ALE = 1; //Bat dau qua trinh chuyen doi ADC0808_START = 1; ADC0808_ALE = 0; ADC0808_START =0; while(ADC0808_EOC); //Doi cho qua trinh chuyen doi ket thuc//cho het muc while(!ADC0808_EOC);// cho het muc ADC0808_OE = 1; //cho phep lay du lieu chuyen doi kq = ADC0808_DATA; ADC0808_OE = 0; return kq; } 13 Bài tập lớn Vi điều khiển & Ứng dụng ... nghệ thiết kế sơ đồ nguyên lý 1.1 Yêu cầu công nghệ Thiết kế mạch đo nhiệt độ sử dụng vi điều khiển họ 8051 hiển thị thông qua led Thiết bị đo nhiệt độ hiển thị lên led chữ số, với sai số mạch đo. .. bấm điều khiển mạch dừng /đo Lựa chọn linh kiện: - - Vi điều khiển họ 8051 chọn vi điều khiển 89S51 (với dao động thạch anh ngoài, tần số 12MHz) Cảm biến nhiệt độ sử dụng LM35 (dải nhiệt độ -55˚C... tập lớn Vi điều khiển & Ứng dụng Lưu đồ thuật toán 2.1 Chương trình đọc ADC: Bài tập lớn Vi điều khiển & Ứng dụng 2.2 Chương trình ngắt ngồi chân P3.3: Bài tập lớn Vi điều khiển & Ứng dụng 2.3

Ngày đăng: 26/02/2020, 10:53

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan