Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
39
Dung lượng
1,87 MB
Nội dung
Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành MỤC LỤC Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành LỜI NÓI ĐÂU Ngày nay, việc ứng dụng thành tựu khoa học kỹ thuật tiên tiến, giới ngày phát triển, văn minh đại Sự phát triển kỹ thuật điện tử tạo hàng loạt thiết bị với đặc điểm bật xác cao, tốc độ nhanh, gọn nhẹ yếu tố cần thiết góp phần cho hoạt động người đạt hiệu cao Các điều khiển sử dụng vi điều khiển đơn giản để vận hành sử dụng lại điều phức tạp Các vi điều khiển theo thời gian với phát triển công nghệ bán dẫn tiến triển nhanh, từ vi điều khiển bit đơn giản đến vi điều khiển 32 bit, sau 64 bit Điện tử trở thành ngành khoa học đa nhiệm vụ Điện tử đáp ứng đòi hỏi không ngừng từ lĩnh vực công – nông – lâm – ngư nghiệp nhu cầu cần thiết hoạt động đời sống ngày Một ứng dụng thiết thực ứng dụng nhiệt kế điện tử Qua kiến thức học môn Vi Điều Khiển, chúng em định nhận làm đồ án : Thiết kế đo nhiệt độ, độ ẩm sử dụng SHT75 hiển thị LCD Mặc dù cố gắng thiết kế hoàn thành đồ án thời hạn thời gian ngắn lực hạn chế nên sai sót Chúng em mong thầy giáo góp ý để việc học tập chúng em tốt Chúng em xin chân thành cảm ơn! Sinh viên thực hiện: Hà Hồng Vinh Nguyễn Quang Vinh Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Hưng Yên, Ngày tháng năm 2016 Chữ Ký (GVHD) Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Hưng Yên, Ngày tháng năm 2016 Chữ Ký (GVPB) Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành CHƯƠNG I: Ý TƯỞNG THIẾT KẾ VÀ HƯỚNG PHÁT TRIỂN Sự bùng nổ công nghệ ngành điện điện tử phát triển mạnh mẽ Những ứng dụng giúp người ngày có sống nâng cao Sự khảo sát nhiệt độ độ ẩm người trước gặp nhiều khó khăn Do phải đo đạc tính toàn cách phức tạp.Do chúng em lựa chọn đề tài đo nhiệt độ, độ ẩm môi trường để ứng dụng vào nhiều công việc khác Hướng phát triển - Hiển thị LCD dễ dàng ( làm thực tiễn) Ứng dụng việc cảnh báo, cháy nổ đóng ngắt Hệ thống tưới tự động Và nhiều ứng dụng khác Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành CHƯƠNG II: CƠ SỞ LÝ THUYẾT 1.Giới thiệu tổng quan PIC 16F877A - Sơ lược vi điều khiển PIC16F877A - Khảo sát vi điều khiển PIC16F877A hãng Microchip + Sơ đồ chân linh kiện + Sơ đồ khối PIC16F877A + Các ứng dụng PIC16F877A l.1.Sơ lược vi điều khiển PIC 16F877A + Sử dụng công nghệ tích hợp cao RISC CPU + Người dùng lập trình với 35 câu lệnh đơn giản + Tất câu lệnh thự chu kỳ, lệnh ngoại trừ số câu lệnh riêng rẽ nhánh thực hai chu kỳ lệnh + Tốc độ hoạt động : - Xung đồng hồ DC -20MHz - Chu kì lệnh thực 200ns + Bộ nhớ chương trình Flash 8Kx14 words + Bộ nhớ SRam 368x8 bytes + Bộ nhớ EFPROM 256x8 bytes + Số port I/O 35 port *Khả PIC + Khả ngắt + Ngăn nhớ Stack phân chia làm mức + Truy cập nhớ địa trực tiếp gián tiếp + Nguồn khởi động lại (POR) + Bộ tạo thời gian PWRT, tạo dao động OST + Bộ đếm xung thời gian WDT với nguồn dao động chip( nguồn dao động RC) đáng tin cậy + Có mã chương trình bảo vệ + Phương thức cất giữ Sleep + Thiết kế toàn tĩnh + Dải điện hoạt động 2V ÷ 5,5V + Dòng điện sử dụng 25mA -Các tính bật thiết bị ngoại vi chíp + TIMER0: bit định thời, đếm với hệ số tỉ lệ trước + TIMER1: 16 bit định thời, đếm với tỉ số tỉ lệ trước, có khả tăng chế độ Sleep qua xung đồng hồ cung cấp bên Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành + TIMER2: bit định thời, đếm với bit hệ số tỉ lệ trước, hệ số tỉ lệ sau + Bộ chuyển đổi tín hiệu số sang tín hiệu tương tự với 10 bit + Cổng truyền thông tin nối tiếp SSP với SPI phương thức chủ 2.Khảo sát vi điều khiển PIC16F877A hãng Microchip Sơ đồ chân PIC16F877A a.Sơ đồ chân Hình 1.1 Sơ đồ chân PIC16F877A *Chức chân vi điều khiển PIC16F877A Port A: PortA ( RA0 RA5) có số chân từ chân số đến chân số PortA (RPA) bao gồm I/O pin Đây chân “hai chiều” (bidirectional pin),nghĩa xuất nhập Chức I/O điều khiển ghi TRISA (địa 85h) Port B: PortB( RB0 ÷ RB7) có số chân từ chân số 33 đến chân số 40 Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành PortB (RPB) gồm pin I/O Thanh ghi điều khiển xuất nhập tương ứng TRISB Bên cạnh số chân PORTB sử dụng trình nạp chương trình cho vi điều khiển với chế độ nạp khác PORTB liên quan đến ngắt ngoại vi TimerO PORTB tích hợp chức điện trở kéo lên điều khiển chương trình Port C: PortC( RC0 ÷ RC7) có số chân từ chân số 15 đến chân số 18 chân số 23 đến chân số 26 PortC (RPC) gồm pin I/O Thanh ghi điều khiển xuất nhập tương ứng TRISC Bên cạnh PORTC chứa chân chức so sánh, Timerl, PWM chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART Port D: PortD( RD0 ÷ RD7) có số chân từ chân số 33 đến chân số 40 PortD (RPD) gồm chân I/O, ghi điều khiển xuất nhập tương ứng TRISD PORTD cổng xuất liệu chuẩn giao tiếp PSP (Parallel Slave Port) Port E: PortE( RE0 ÷ RE2) có số chân từ chân số 19 đến chân số 22 chân số 27 đến chân 30 PortE (RPE) gồm chân I/O Thanh ghi điều khiển xuất nhập tương ứng TRISE Các chân PORTE có ngõ vào analog Bên cạnh PORTE chân điều khiển chuẩn giao tiếp PSP Chân 11,12,31,32 chân cung cấp nguồn cho vi điều khiển Chân 13,14 chân đấu nối thạch anh với dao động xung clock bên cung cấp xung clock cho chip hoạt động Chân chân RET: Là tín hiệu cho phép thiết lập lại trạng thái ban đầu cho hệ thống, tín hiệu nhập mức tích cục cao Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành Sơ đồ khối Sơ đồ Hình 1.2 Sơ đồ khối Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành 2 Tổ chức nhớ Cấu trúc nhớ vi điều khiển PIC16F877A bao gồm nhớ: + Bộ nhớ chương trình (Programmemory) + Bộ nhớ liệu (Data memory) a.Bộ nhớ chương trình (Programmemory) Bộ nhớ chương trình vi điều khiển PIC16F877A nhớ Flash dung lượng nhớ 8K phân chia thành nhiều trang(từ 0^3) Như nhớ chương trình có khả chứa 8*1024=8192 câu lệnh.Để mã hóa địa 8K nhớ chương trình, đếm chương trình có dung lượng 13bit.Khi vi điều khiển Reset, đếm chương trình đến địa 0004h(Interrupt vector).Bộ nhớ chương trình không bao gồm nhớ stach không địa hóa đếm chương trình Bảng nhớ chương trình ngăn xếp Hình 1.3 Bộ nhớ chương trình 16F877A 10 Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành CHƯƠNG III: THIẾT KẾ VÀ CHẾ TẠO MẠCH 3.1.Sơ đồ khối KHỐI CẢM BIẾN SHT75 KHỐI NGUỒN KHỐI HIỂN THỊ LCD KHỐI XỬ LÝ TRUNG TÂM CPU (PIC16F877A) 3.2.Khối nguồn Em thiết kế khối nguồn dùng mạng điện lưới 220 V AC, tần số 50 Hz ổn áp thành nguồn chiều V DC với dòng tối đa A Nguồn 220 V AC Máy biến áp 220V/9V AC Chỉnh lưu Lọc nhiễu san phẳng Ổn áp Hình 3.1 – Sơ đồ khối nguồn 25 Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành Hình 3.2 – Sơ đồ nguyên lý khối nguồn Điện áp giảm áp từ 220 V AC xuống V AC thông qua biến áp cách li Nhờ Diode chỉnh lưu cầu tín hiệu xoay chiều nắn thành dạng chiều Điện chiều dạng sóng nhấp nhô Hình 3.3 – Dạng sóng điện áp trước sau chình lưu cầu Điện áp lưới có giá trị lớn : = 13 V Dòng điện lớn qua Diode chỉnh lưu cầu : 1A ( dòng lớn biến áp em sử dụng tải ) Hệ số gợn sóng (khi không lắp tụ lọc) : K = 0,49 Tần số điện áp chỉnh lưu : f = 2.f0 = 2.50 = 100 Hz Trong đề tài em sử dụng Diode chỉnh lưu cầu KBP307 26 Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành Để tín hiệu chiều phẳng (không nhấp nhô) Ta lắp thêm tụ chiều C1 để lọc tín hiệu nhấp nhô Giá trị tụ C1 tính sau : Theo datasheet diode cầu KBP307 sụt áp 1,1 V Vậy điện áp lớn đặt nên tụ lọc C1 : 13-1,1 = 11,9 V Trong mạch chỉnh lưu cầu toàn phần : Hệ số đập mạch : mđm = Tần số góc : wt = 2πf = 2π.100 = 200 rad/s Điện trở máy biến áp : Rt = = 13 Ω Chọn hệ số gợn : K = 0,1 Ta có : C1 = = = 612.10-6 F Trong đề tài em sử dụng tụ lọc C có giá trị 1000 uF, chịu điện áp tối đa 35V Tụ lọc cao tần C2 có giá trị 10000nF để lọc nhiễu san phẳng gai sót lại sau tụ C1 Do IC dùng mạch điều khiển sử dụng nguồn V nên em sử dụng IC 7805 để ổn áp, cho dòng chiều V DC ổn định dùng cho mạch thu mạch điều khiển Công suất tiêu hao IC 7805 tính công thức : Pth = (Uv – Ur).I Khi cho mạch hoạt động em đo I ≈ 0,1 A Khi : Pth = (7,9 – 5).0,1 = 0,29 W 27 Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành Tổng trở tương đương mạch thu mạch điều khiển nuôi khối nguồn II : R = = 50 Ω Để đảm bảo điện áp đầu hoàn toàn ổn định, không bị nhiễu gây ảnh hưởng tới hoạt động linh kiện khối thu khối điều khiển em sử dụng thêm tụ C3 C3 có giá trị tính sau : C3 = = 80.10-6 F Trong đề tài em dùng tụ C3 có giá trị 100uF/35V Dùng thêm tụ lọc cao tần C4 có giá trị 100nF Do khối nguồn nối trực tiếp với Relay khối điều khiển nên em dùng thêm Diode 1N4007 để bảo vệ IC 7805 3.3.Khối cảm biến SHT75 28 Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành 3.4.Khối hiển thị 3.5 Lưu đồ thuật toán Bắt đầu Nhiệt độ vào t° SHT75 chuyển t° → Điện áp u ADC chuyển u → bit nhị phân Hiển thị t° LCD Kết thúc 29 Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành 3.6.Chương trình mạch mô a.Mạch mô 30 Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành b.Mạch nguyên lý - Nguyên lý hoạt động Điện áp xoay chiều 220vAC qua máy biến áp hạ xuống 6vAC qua cầu chỉnh lưu chuyển thành điện áp chiều 6vDC qua lọc dùng tụ 1000uf để san phẳng điện áp qua 7805 để ổn định điện áp +5VDC cấp nguồn cho PIC16f877a,LCD cảm biến hoạt động • Gửi tín hiểu Start Gửi tín hiệu Start đến SHT75 để giao tiếp với Transmission Start mcu gửi xung từ 0-1 chân SCK đồng thời chân DATA kéo từ xuống lại từ lên Chân SCK kéo xuống chân DATA kéo lên Tiếp theo gửi bit chia làm phần bít đầu bít địa 000 bít hỗ trợ nên bạn mặc định không gửi đk bit lệnh bít lệnh định nghĩa: Đọc nhiệt độ đo : 00011 31 Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành Đọc độ ẩm : 00101 Đọc ghi Status : 00111 Ghi vào ghi Status : 00110 Reset : 11110 Sau gửi xong chờ SHT75 trả xác nhận bit ACK mức chân DATA Bit ACK cảm biến gửi lại xung clock thứ chân SCK - Lấy liệu Giữ liệu trả 16 bit bit đầu 0000 không sử dụng nên làm việc với 12 bít sau cấu hình 12 bit Sau lấy liệu xong đọc 8bit check sum để biết liệu trả xác Tiếp theo lại truyền xung Start để tiếp tục lấy liệu - Chuyển đổi liệu 12 bit giá trị nhiệt độ độ ẩm Rồi sau giá trị nhiệt độ độ ẩm đưa hiển thị lên LCD c.Mạch board d.Chương trình #include #device *=16 adc=10 #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT #use delay(clock=20000000) #include #include 32 Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành //#include float temp,humid; #define sht_data_pin PIN_C1 #define sht_clk_pin PIN_C0 int16 ok,oke; //***** Function to alert SHT11 ***** void comstart (void) { output_float(sht_data_pin); //data high output_bit(sht_clk_pin, 0); //clk low delay_us(1); output_bit(sht_clk_pin, 1); //clk high delay_us(1); output_bit(sht_data_pin, 0); //data low delay_us(1); output_bit(sht_clk_pin, 0); //clk low delay_us(2); output_bit(sht_clk_pin, 1); //clk high delay_us(1); output_float(sht_data_pin); //data high delay_us(1); output_bit(sht_clk_pin, 0); //clk low } //***** Function to write data to SHT11 ***** int1 comwrite (int8 iobyte) { int8 i, mask = 0x80; int1 ack; //Shift out command delay_us(4); for(i=0; i 0) output_float(sht_data_pin); //data high if MSB high else output_bit(sht_data_pin, 0); //data low if MSB low delay_us(1); output_bit(sht_clk_pin, 1); //clk high 33 Đại học SPKT Hưng Yên GVHD: Vũ Đình Đạt Đồ án chuyên ngành delay_us(1); mask = mask >> 1; } //Shift in ack output_bit(sht_clk_pin, 0); delay_us(1); ack = input(sht_data_pin); output_bit(sht_clk_pin, 1); delay_us(1); output_bit(sht_clk_pin, 0); return(ack); //shift to next bit //clk low //get ack bit //clk high //clk low } //***** Function to read data from SHT11 ***** int16 comread (void) { int8 i; int16 iobyte = 0; const int16 mask0 = 0x0000; const int16 mask1 = 0x0001; //shift in MSB data for(i=0; i