Nhiệt độ là một đại lượng cơ bản trong đời sống, do đó khi vừa được tìm hiểu về vi điều khiển 8051, chúng em muốn sử dụng nó để thực hiện đề tài : “ Đo và điều khiển nhiệt độ phòng dùng vđk 8051 và cảm biến LM35”.
ĐỒ ÁN MÔN: VI XỬ LÝ TRONG ĐO LƯỜNG VÀ ĐIỀU KHIỂN ĐỀ TÀI: Đo điều khiển nhiệt độ phòng dùng 8051 LM35 GV HƯỚNG DẪN: Nhóm SV thực hiện: Họ tên Hà Nội – 2018 MSSV LỜI NĨI ĐẦU Trong thời đại cơng nghiệp hóa,hiện đại hóa phát triển vũ bão khơng khí hội nhập kinh tế quốc tế Việt Nam nay,chúng ta tiến bước dài đạt thành cơng kết tương đối khích lệ nhiều lĩnh vực khác Một thành cơng lĩnh vực đo lường điều khiển để tô đẹp thêm cho thành công phát triển kinh tế Việt Nam Với kiến thức học lớp tìm hiểu thực tế Trong thời gian u cầu, nhóm em hồn thành đồ án môn học:vi xử lý đo lường điều khiển Nhiệt độ đại lượng đời sống, vừa tìm hiểu vi điều khiển 8051, chúng em muốn sử dụng để thực đề tài : “ Đo điều khiển nhiệt độ phòng dùng vđk 8051 cảm biến LM35” Mục đích đề tài thiết kế đo nhiệt độ sử dụng vi điều khiển họ 8051, cho kết hiển thị trực quan qua điều khiển nhiệt độ không gian ổn định mức cho phép Do kiến thức chuyên ngành thiếu nhiều thực tế nên đồ án không tránh khỏi sai sót, mong thầy góp ý kiến để đồ án chúng em hoàn thiện Em đặc biệt xin chân thành cảm cô hướng dẫn giúp đỡ tận tình nhóm em thời gian làm đồ án để hoàn thành đồ án này! MỤC LỤC CHƯƠNG 1: CƠ SỞ LÍ THUYẾT VỀ ĐO VÀ ĐIỀU KHIỂN NHIỆT ĐỘ 1.1 ĐẶT VẤN ĐỀ Trong điều khiển nhiệt ta thường thấy chế độ điều khiển điều khiển ON/OFF điều khiển PID Ngồi có thêm số chế độ khác (Thực chất PID có thành phần bị lược bỏ, ví dụ chế độ điều khiển Tỉ lệ P hay PI, PD) 1.1.1.Chế độ điều khiển ON/OFF Có thể dễ dàng nhận thấy chế độ điều khiển đơn giản nhất, sử dụng từ lâu ứng dụng nhiều ngành khác Ưu điểm chế độ điều khiển đơn giản, dễ hiểu Tuy nhiên lại có nhược điểm độ xác ko cao, độ nhiệt lớn gây tổn thất lượng Về nguyên lí hoạt động chế độ ON/OFF đơn giản: điều khiển tác động đầu nhiệt độ môi trường đo vượt qua giá trị đặt (Có thể tác động nằm phạm vi dải trễ mà chưa cần tới giá trị đặt-nếu người dùng có cài đặt dải trễ) Và thơng thường chế độ ON/OFF tương ứng với loại đầu điều khiển dạng Role Với đặc điểm chế độ điều khiển ON/OFF thường ứng dụng hệ thống điều khiển nhiệt quy mô lớn, cho phép độ nhiệt cao có thay đổi nhiệt độ; ví dụ như: hệ điều khiển lò nhiệt, tủ lạnh, quạt… 1.1.2 Chế độ điều khiển PID - Hệ thống điều khiển vòng kín hệ thống xác định sai khác trạng thái mong muốn trạng thái thực (sai số) tạo lệnh điều khiển để loại bỏ sai số Điều khiển PID thực ba cách phát hiệu chỉnh sai số - Hệ thống điều khiển sử dụng P, PI, PD, PID để hiệu chỉnh sai số Nhìn chung, vấn đề “hiệu chỉnh” hệ thống cách lựa chọn giá trị thích hợp ba cách nêu - Ưu điểm: điều khiển với độ xác cao, tiết kiệm lượng tối đa, đảm bảo ổn định hệ thống - Nhược điểm: thuật tốn điều khiển phức tạp, đòi hỏi người sử dụng có trình độ kinh nghiệm Khi sử dụng chế độ điều khiển PID loại đầu điều khiển tối ưu Role bán dẫn SSR Không nên sử dụng role thường dễ xảy cố ý muốn như: đánh tia lửa điện, kẹt tiếp điểm, tuổi thọ thiết bị giảm… - Phạm vi ứng dụng: nói ngày PID xâm nhập vào hầu hết ứng dụng điều khiển (ko nhiệt độ mà nhiều lĩnh vực khác) Tuy nhiên nõ ưu tiên hệ thống yêu cầu độ xác cao, khoảng thay đổi nhiệt cho phép nhỏ Thông thường sử dụng điều khiển nhiệt có chế độ điều khiển PID ln có kèm theo chức Tự động điều chỉnh (Auto Tuning) Chức tự động điều chỉnh tham số P, I D cho hệ thống đạt hiệu cao Tuy nhiên, số trường hợp người sử dụng phải điều khiển tay (Manual) tham số + Tham số P (hệ số tỉ lệ): đặt giá trị cao tốc độ đáp ứng (đạt tới giá trị nhiệt mong muốn) nhanh Tuy nhiên làm cho độ nhiệt nhiều (đồng nghĩa với việc độ xác giảm tổn hao lượng tăng lên) Nếu giá trị lớn hệ hệ thống ổn định + Tham số I (Tích phân): Nếu đặt giá trị cao trình loại trừ sai số tham số P gây (tức đưa giá trị nhiệt yêu cầu) nhanh Tuy gây tượng độ lớn Ví dụ: o - Nhiệt độ đặt 100 C Nhiệt độ bất dầu tăng từ nhiệt độ phòng 28 oC - Sai số tham số P gây chu kì 10 oC Tức nhiệt độ đỉnh đạt 110oC Nếu đặt giá trị tích phân I sau thời gian t1 ta có nhiệt độ 100 CHƯƠNG 2:Tổng quan vi xử lý đo lường điều khiển 2.1 Cấu trúc hệ thống đo lường điều khiển có sử dụng vi xử lý 2.1.1 giới thiệu chung vi xử lý vi điều khiển a.vi xử lý: +CPU viết tắt chữ Central Processing Unit,tạm dịch đơn vị xử lí trung tâm +CPU xem não,1 phần tử cốt lõi máy vi tính +Nhiệm vụ CPU xử lý chương trình vi tính kiện +CPU có nhiều kiểu dáng khác Ở hình thức đơn giản nhất,CPU chip với vài chục chân.Phức tạp hơn,CPU ráp sẵn mạch với hàng trăm chip khác.CPU mạch xử lý liệu theo chương trình thiết lập trước.Nó mạch tích hợp phức tạp gồm hàng triệu transistor b.vi điều khiển: +là máy tính tích hợp chip,nó thường sử dụng đê điều khiển thiết bị điện tử +vi điều khiển,thực chất hệ hống bao gồm vi xử lý có hiệu suất đủ dùng giá thành thấp(khác với vi xử lý đa dùng máy tính) kết hợp với khối ngoại vi nhớ,các mô đun vào/ra,các mô đun biến đổi số sang tương tự tương tự sang số, + vi điều khiển thường dùng để xây dựng hệ thống nhúng.Nó xây dựng nhiều dụng cụ điện tử,thiết bị điện,máy 2.1.2 Cấu trúc chung hệ vi xử lý vi điều khiển - sơ đồ khối hệ vi xử lý vi điều khiển bản: Hình 1:nguyên lý cấu tạo vi xử lý 2.2 Cấu trúc chung họ 8051 1.2.1Cấu trúc 8051 Hình 2:cấu trúc 8051 -Các thành viên họ 8051: specificati 8031 8051 8751 8951 8052 8752 code men ok 4k 4k 4k 8k 8k ROM EPRO FLAS ROM EPRO on on chip(bytes) Data men M H M 128 128 128 128 256 256 2 2 3 on chip(bytes) timers 1.2.2.sơ đồ chân 8051 Hình 3:sơ đồ chân 8051 +Vcc(40): chân cung cấp điện(5v) +GND(20):chân nối đất (0v) +port0 (32-39): port xuất nhập bit chiều +port1 (1-8): port xuất nhập bit chiều +port2 (21-28): port xuất nhập bit chiều 2.7 Relay trung gian -sử dụng relay trung gian để đóng ngắt tiếp điểm cho quạt, đèn sưởi hoạt động ( chế độ làm việc auto) chế độ làm việc tay Hình ảnh relay trung gian thực tế CHƯƠNG 3: Xây dựng hệ thống 3.1.Lưu đồ thuật toán -Ấn Start: hệ thống hoạt động -Chọn chế độ làm việc :Auto( tự động) Manual( điều khiển tay) • Auto: Relay mở, quạt đèn sưởi điều khiển tự động, nhiệt độ lớn 30*c, relay đóng để bật quạt Khi nhiệt độ< 20*c, relay đóng để bật đèn sưởi, ngược lại thiết bị tắt • Manual: Relay đóng lại, lúc ta điều khiển riêng biệt quạt đèn sưởi theo ý muốn 3.2 Chương trình điều khiển -Chương trình viết phần mềm lập trình keil C: #include //Khai bao chan giao tiep LCD16x2 4bit #define LCD_RS P0_0 #define LCD_RW P0_1 #define LCD_EN P0_2 #define LCD_D4 P0_4 #define LCD_D5 P0_5 #define LCD_D6 P0_6 #define LCD_D7 P0_7 #define ADC0804_DATA #define RELAY_1 P3_5 #define RELAY_2 P3_6 P1 #define RELAY_3 P3_7 sbit ADC0804_CS = P3^0; sbit ADC0804_RD = P3^1; sbit ADC0804_WR = P3^2; sbit ADC0804_INTR = P3^3; sbit Auto= P2^0; sbit Manual= P2^2; unsigned char ADC0804_Read() { unsigned char kq; // Chon chip ADC0804_CS = 0; // Tao xung bat dau chuyen doi ADC0804_WR = 0; ADC0804_WR = 1; // Doi cho den chuyen doi xong while(ADC0804_INTR); // Doc gia tri sau chuyen doi ADC0804_RD = 0; kq = ADC0804_DATA; ADC0804_RD = 1; return kq; } unsigned char temp; //Bien luu gia tri nhiet /*****************Ham delay*********************/ void delay_us(unsigned int t){ unsigned int i; for(i=0;i>2)&1; LCD_D7=(Data>>3)&1; } // Ham Gui Lenh Cho LCD void LCD_SendCommand(unsigned char command){ LCD_Send4Bit(command >>4);/* Gui bit cao */ LCD_Enable(); LCD_Send4Bit(command); /* Gui bit thap*/ LCD_Enable(); } void LCD_Clear(){// Ham Xoa Man Hinh LCD LCD_SendCommand(0x01); delay_us(10); } // Ham Khoi Tao LCD void LCD_Init(){ LCD_Send4Bit(0x00); delay_ms(20); LCD_RS=0; LCD_RW=0; LCD_Send4Bit(0x03); LCD_Enable(); delay_ms(5); LCD_Enable(); delay_us(100); LCD_Enable(); LCD_Send4Bit(0x02); LCD_Enable(); LCD_SendCommand( 0x28 ); LCD_SendCommand( 0x0c); LCD_SendCommand( 0x06 ); LCD_SendCommand(0x01); } void LCD_Gotoxy(unsigned char x, unsigned char y){ unsigned char address; if(!y)address=(0x80+x); else address=(0xc0+x); delay_us(1000); LCD_SendCommand(address); delay_us(50); } void LCD_PutChar(unsigned char Data){//Ham Gui Ki Tu LCD_RS=1; LCD_SendCommand(Data); LCD_RS=0 ; } void LCD_Puts(char *s){//Ham gui chuoi ky tu while (*s){ LCD_PutChar(*s); s++; } } void TempShow(unsigned char z){ //Chuyen doi hien thi LCD_Puts("NHIET DO: "); LCD_PutChar((z/100)+48);//Tram LCD_PutChar((z%100/10)+48);//Chuc LCD_PutChar((z%10)+48);//Don vi LCD_Puts("'C"); } /******************Ctr chinh**************************/ unsigned char temp; void main(){ unsigned char adc_value; unsigned char t; RELAY_1=0; RELAY_2=0; RELAY_3=0; //init LCD_Init();//Khoi tao LCD delay_ms(200); LCD_Gotoxy(2,0); LCD_Puts("Chon che do!"); LCD_Gotoxy(0,1); LCD_Puts("1.Auto"); LCD_Gotoxy(8,1); LCD_Puts("2.Manual"); while(1) { if(Auto==0) { LCD_Clear(); LCD_Gotoxy(0,0); LCD_Puts("Che Auto"); delay_ms(1000); LCD_Clear(); while(Manual!=0) { adc_value = ADC0804_Read(); t = adc_value * 1.961f + 0.5f; LCD_Gotoxy(0,0); ADC0804_Read(); //Doc nhiet luu vao bien temp TempShow(t); //Hien thi nhiet delay_ms(500);//0.5s doc mot lan if(t30) { LCD_Gotoxy(1,2); LCD_Puts("Thoi tiet:NONG "); RELAY_1=1; RELAY_2=0; } else { LCD_Gotoxy(1,2); LCD_Puts(" ON HOA "); RELAY_1=0; RELAY_2=0; } } } if(Manual==0) { LCD_Clear(); LCD_Gotoxy(0,0); LCD_Puts("Che bang tay"); delay_ms(1000); LCD_Clear(); while(Auto!=0) { adc_value = ADC0804_Read(); t = adc_value * 1.961f + 0.5f; LCD_Gotoxy(0,0); ADC0804_Read(); //Doc nhiet luu vao bien temp TempShow(t); //Hien thi nhiet delay_ms(500);//0.5s doc mot lan RELAY_3=1; if(t30) { LCD_Gotoxy(1,2); LCD_Puts("Thoi tiet:NONG "); } else { LCD_Gotoxy(1,2); LCD_Puts(" ON HOA "); } } } } } 3.3.Kết mô phỏng,thiết kế mạch nguyên lý Q trình mơ thực phần mềm proteus: 3.4 kết mạch thực Chụp mạch vào KẾT LUẬN: Trong trình làm tập lớn hướng dẫn nhiệt tình cơ, chúng em ôn luyện, học hỏi thêm nhiều kiến thức môn Vi xử lý đo lường điều khiển, biết cách sử dụng phần mềm keil C,… Tuy nhiên, kiến thức, thời gian hạn chế nên tập chúng em nhiều thiếu sót Vì vậy, mong thầy xem xét, đánh giá tạo điều kiện cho nhóm chúng em hồn thành tập lớn hiệu Chúng em xin chân thành cảm ơn ! ... CHƯƠNG 2:Tổng quan vi xử lý đo lường điều khiển 2.1 Cấu trúc hệ thống đo lường điều khiển có sử dụng vi xử lý 2.1.1 giới thiệu chung vi xử lý vi điều khiển a .vi xử lý: +CPU vi t tắt chữ Central... sang số, + vi điều khiển thường dùng để xây dựng hệ thống nhúng.Nó xây dựng nhiều dụng cụ điện tử,thiết bị điện,máy 2.1.2 Cấu trúc chung hệ vi xử lý vi điều khiển - sơ đồ khối hệ vi xử lý vi điều... điều khiển bản: Hình 1:nguyên lý cấu tạo vi xử lý 2.2 Cấu trúc chung họ 8051 1.2.1Cấu trúc 8051 Hình 2:cấu trúc 8051 -Các thành vi n họ 8051: specificati 8031 8051 8751 8951 8052 8752 code men