đồ án đo khoảng cách bằng cảm biến SRF05

43 901 7
đồ án đo khoảng cách bằng cảm biến  SRF05

Đ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

ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC SÀI GỊN KHOA ĐIỆN TỬ - VIỄN THƠNG ĐỒ ÁN ĐO KHOẢNG CÁCH DÙNG CẢM BIẾN SIÊU ÂM SRF05 VỚI PIC 16F877A HỆ ĐẠI HỌC NIÊN KHÓA: 2014-2019 GV hướng dẫn: TS Nguyễn Xuân Tiên Nhóm sinh viên thực hiện: Ngô Thị Yến Linh - 3114500035 Nguyễn Thị Tú Mi - 3114500041 Thành phố Hồ Chí Minh, 2017 ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC SÀI GÒN KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN ĐO KHOẢNG CÁCH DÙNG CẢM BIẾN SIÊU ÂM SRF05 VỚI PIC 16F877A HỆ ĐẠI HỌC NIÊN KHĨA: 2014-2019 GV hướng dẫn: TS Nguyễn Xn Tiên Nhóm sinh viên thực hiện: Ngô Thị Yến Linh - 3114500035 Nguyễn Thị Tú Mi - 3114500041 Thành phố Hồ Chí Minh, 2017 MỤC LỤC LỜI GIỚI THIỆU DANH MỤC CHỮ VIẾT TẮT .2 DANH MỤC HÌNH VẼ CHƯƠNG 1: TỔNG QUAN VỀ PIC16F877A 1.1 Giới thiệu vi điều khiển PIC16F877A .4 1.2 Khảo sát vi điều khiển PIC16F877A hãng Microchip 1.3 Tổ chức nhớ 1.4 Các ghi đặc biệt 1.5 Các cổng xuất nhập PIC ( I/O) .10 1.6 Các định thời chip .11 1.7 Bộ biến đổi ADC 14 1.8 Các ứng dụng PIC16F877A .14 CHƯƠNG 2: PHƯƠNG PHÁP ĐO KHOẢNG CÁCH BẰNG SRF05 16 2.1 Cảm biến SRF05 16 2.2 Tính toán khoảng cách 20 2.3 Hoạt động nhận phản hồi sóng SRF05 21 CHƯƠNG 3: THIẾT KẾ HỆ THỐNG 22 3.1 Sơ đồ khối tổng quát .22 3.2 Linh kiện sử dụng chủ yếu bảng giá linh kiện 22 CHƯƠNG 4: THI CÔNG MẠCH 24 4.1 Sơ đồ ngun lí tồn mạch .24 4.2 Giải thuật 26 4.3 Code thực chương trình 27 4.4 Mạch mô phỏng, mạch in, mạch thực tế .36 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 38 5.1 Kết luận .38 5.2 Hướng phát triển 38 TÀI LIỆU THAM KHẢO 39 ĐỒ ÁN 1 LỜI GIỚI THIỆU Thực tế nay, ứng dụng vi điều khiển sâu vào đời sống sinh hoạt sản xuất người Hầu hết thiết bi dân dụng điều có góp mặt vi điều khiển vi xử lý Ứng dụng vi điều khiển thiết kế hệ thống làm giảm chi phí thiết kế hạ giá thành sản phẩm đồng thời nâng cao tính ổn định thiết bị hệ thống Việc phát triển ứng dụng hệ thống vi điều khiển đòi hỏi hiểu biết phần cứng phần mềm, mà hệ thống vi xử lý sử dụng để giải toán khác 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 Phần cơng việc xử lý phụ thuộc vào người, chương trình hay phần mềm Nếu khơng có tham gia người hệ thống vi điều khiển vật vô tri Do nói đến vi điều khiển giống máy tính bao gồm phần phần cứng phần mềm Từ yêu cầu môn học kĩ thuật vi xử lý, đo lường điều khiển thực tiễn trên, chúng em định chọn đề tài cho đồ án là: ĐO KHOẢNG CÁCH DÙNG CẢM BIẾN SIÊU ÂM SRF05 VỚI PIC 18F877A Dưới chúng em xin trình bày tồn nội dung đồ án, trình thực đề tài nhiều sai sót, mong nhận nhiều ý kiến đóng góp từ thầy bạn KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN DANH MỤC CHỮ VIẾT TẮT ADC: Analog to Digital Converter, chuyển đổi tương tự sang số ALU: Arithmetic Logic Unit, đơn vị xử lí số học CCP2: điều khiển biến đổi áp DC->DC EEPROM: Erasable Programmable ROM, ROM khả trình xóa GPIO: General Purpose Input Output, cổng vào/ra vạn GPR: General Purpose Register, ghi mục đích chung I2C: Inter-Integrated Circuit, bus nội tích hợp OSC: Oscillator, dao động PIC: Peripheral Interface Controller, điều khiển giao tiếp ngoại vi POR: Power-On Reset, reset khởi nguồn PSP: Parallel Slave Port, cổng xuất liệu PWM: Puse Width Modulation, điều chế độ rộng xung PWRT: Power-Up Timer, định thời khởi nguồn SFR: Special Function Register, ghi có chức đặc biệt SPI: Serial Peripheral Interface, giao tiếp thiết bị ngoại vi nối tiếp SSP: Streaming Parallel Port, Port truyền liệu song song USART: Universal Synchronous Asynchronous Receiver Transmitter, truyền liệu nối tiếp đồng bộ/ bất đồng đa WDT: Watch-Dog Timer, địng thời canh gác KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN DANH MỤC HÌNH VẼ Hình 1-1: Sơ đồ chân PIC16F877A .5 Hình 1-2: Sơ đồ khối vi điều khiển PIC16F877A Hình 1-3: Bộ nhớ chương trình 16F877A .7 Hình 1-4: Bộ nhớ data 16F877A Hình 1-5: Cấu trúc GPIO 11 Hình 1-6: Sơ đồ khối Timer 12 Hình 1-7: Sơ đồ khối Timer1 13 Hình 1-8: Sơ đồ khối Timer 13 Hình 1-9: Sơ đồ khối chuyển đổi Analog 14 Hình 1-10: Sơ đồ giao tiếp với Led .15 Hình 1-11: Sơ đồ giao tiếp với LCD .15 Hình 2-1: Cấu hình SRF05 mode .17 Hình 2-2: Nguyên lý hoạt động SRF05 mode 18 Hình 2-3: Cấu hình SRF05 mode 18 Hình 2-4: Nguyên lý hoạt động SRF05 mode 19 Hình 2-5: Mức độ sóng âm hồi tiếp 19 Hình 2-6: Vùng phát cảm biến 19 Hình 2-7: Hai cảm biến hoạt động 20 Hình 2-8: Nguyên lý hoạt động SRF05 21 Hình 3-1: Sơ đồ khối .22 Hình 4-1: Sơ đồ ngun lí .24 Hình 4-2: Lưu đồ 26 Hình 4-3: Mạch in 36 Hình 4-4: Mạch mô 36 Hình 4-5: Mạch thực tế 37 KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN CHƯƠNG 1: TỔNG QUAN VỀ PIC16F877A 1.1Giới thiệu vi điều khiển PIC16F877A: 1.1.1 Sơ lược vi điều khiển PIC16F877A + 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ực 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 8192 words, cho phép ghi 100.000 lần + Bộ nhớ SRam 368x8 bytes + Bộ nhớ EFPROM 256x8 bytes + Dữ liệu lưu trữ Flash, EEPROM 40 năm + Số port I/O port với 33 pin I/O + so sánh tín hiệu analog + chuyển đổi ADC 10 bit + Timer timer 2: 8bit, Timer 1: 16 bit + Module Capture, Comparator, PWM + Giao tiếp USART với địa + Giao tiếp I2C, SSP, SPI  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 chip + 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 KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN + 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ủ 1.2 Khảo sát vi điều khiển PIC16F877A hãng Microchip: 1.2.1 Sơ đồ chân PIC16F887A: Hình 1-1: Sơ đồ chân PIC16F877A 1.2.2 Chức chân vi điều khiển PIC16F877A: - Port A: ( RA0 ÷ RA5) từ chân số đến chân số 7, 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: ( RB0 ÷ RB7) từ chân số 33 đến chân số 40, 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 PORT B sử dụng q trình nạp chương trình cho vi điều khiển với chế độ nạp khác PORT B liên quan đến ngắt ngoại vi Timer PORT B tích hợp chức điện trở kéo lên điều khiển chương trình - Port C: ( RC0 ÷ RC7) từ chân số 15 đến chân số 18 chân số 23 đến chân số 26, gồm pin I/O Thanh ghi điều khiển xuất nhập tương ứng TRISC KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN 24 4.1 Sơ đồ ngun lí tồn mạch: Hình 4-1: Sơ đồ ngun lí KHOA ĐIỆN TỬ - VIỄN THƠNG ĐỒ ÁN 25 4.1.1 Ứng dụng ngơn ngữ lập trình Assembler, C điều khiển: 4.1.1.1 Ngơn ngữ lập trình Assembler: Ngơn ngữ lập trình Assembler ngơn ngữ bậc thấp dùng việc viết chương trình máy tính Ngơn ngữ Assembler sử dụng từ có tính chất gợi nhớ, từ viết tắt giúp ghi nhớ thị phức tạp làm cho việc lập trình Assembler dễ dàng Mục đích việc dùng từ gợi nhớ nhằm thay việc lập trình trực tiếp ngơn ngữ máy sử dụng máy tính thường gặp nhiều lỗi tốn thời gian Việc sử dụng ngôn ngữ Assembler vào lập trình PIC đơn giản - Ưu điềm: + Chạy nhanh + Tiết kiệm nhớ + Có thể lập trình truy cập qua giao diện vào ngôn ngữ bậc cao làm - Nhược điểm + Khó viết yêu cầu người lập trình am hiểu phần cứng + Khó tìm sai báo gồm cú pháp sai thuật tốn + Khơng chuyển chương trình Assembler cho máy tính có cấu trúc khác 4.1.1.2 Ngơn ngữ lập trình C: Ngơn ngữ lập trình C ngơn ngữ lập trình tương đối nhỏ gọn vận hành gần với phần cứng giống với ngơn ngữ Assembler C đánh có khả di động, cho thấy khác quan trọng với ngơn ngữ bậc thấp Assembler C tạo với mục tiêu làm cho thuận tiện để viết chương trình lớn với số lỗi - Ưu diểm + Tiết kiệm nhớ + Câu lệnh thực nhanh + Cho phép người lập trình dễ dàng kiểm sốt mà chương trình thực thi - Nhược điểm + Điều chỉnh tay chậm Assembler KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN 26  Lập trình cho pic16F877A đồ án sử dụng trình biên dịch PIC C (CCS) 4.1.2 Lưu đồ giải thuật: Hình 4-2: Lưu đồ 4.2 Giải thuật:  Chức Capture pic: KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN 27 Chế độ Capture PIC chế độ tìm (phát hiện) xung cạnh lên hay cạnh xuống chân chức tương ứng vi điều khiển Để sử dụng chức Capture PIC 16F877A ta cài đặt thông số cho TIMER1, Capture với lệnh sau: - setup_timer_1(T1_INTERNAL|T1_DIV_BY_2); //xem thêm phần help CCS - setup_ccp1(CCP_CAPTURE_RE); // Phát cạnh lên setup_ccp1(CCP_CAPTURE_FE); // Phát cạnh xuống - setup_ccp1(CCP_CAPTURE_DIV_4); // Phát cạnh lên thứ - setup_ccp1(CCP_CAPTURE_DIV_16); // Phát cạnh lên thứ 16 Khi phát cạnh lên cạnh xuống tương ứng chân RC2/CCP1 Capture1( RC1/CCP2 Capture2) giá trị ghi TMR1 đưa vào ghi CCPx Sau đưa giá trị vào ghi CCPx cờ ngắt CCPxIF bật, cho phép ngắt CCPx có ngắt xảy ra, cờ ngắt phải xóa chương trình Nếu phát xung mà giá trị ghi CCPx chưa xử lý giá trị ghi đè lên Khi sử dụng chức Capture chân chức tương ứng(RC2/CCP1, RC1/CCP2) phải set làm input Các chân khác PORTC không định rõ ràng input hay output gây ảnh hưởng đến khối chức CCP  Với đặc tính cảm biến phân tích trên, để mức cạnh lên hay cạnh xuống ngõ trigger ta sử dụng chức Capture vi diều khiển Ban đầu ta cho Capture C1 hoạt động chế độ cạnh lên, xung cạnh lên từ tín hiệu cảm biến xảy ngắt CCP1, ngắt ta reset ghi chứa giá trị đếm TIMER1 chuyển Capture sang chế độ xung cạnh xuống chờ xung cạnh xuống có phản hồi cảm biến Khi có xung cạnh xuống Capture xảy ngắt CCP1 Khi có ngắt CCP1, giá trị TIMER1 đưa vào ghi CCP1, lần ngắt ta lấy giá trị ghi CCP1 để tính thời gian tương ứng với khoảng cách đo 4.3 Source Code: #include // khai báo dòng pic #fuses NOWDT, HS, NOPUT, NOPROTECT, NOLVP // khai báo ghi sử dụng #use delay(clock=8000000) // khai báo xung clock từ thạch anh #use fast_io(a) //khai báo sử dụng porta KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN 28 #use fast_io(b) #use fast_io(c) #use fast_io(d) #use fast_io(e) #byte porta=0x05 #byte portb=0x06 #byte portc=0x07 #byte portd=0x08 #byte porte=0x09 #bit rs=0x09.0 #bit rw=0x09.1 #bit e=0x09.2 #bit TRIG=0x07.1 #bit but1=0x06.0 #bit but2=0x06.1 #bit but3=0x06.2 // khai báo sử dụng portb //khai báo sử dụng portc //khai báo sử dụng portd //khai báo sử dụng porte //định dạng ghi porta //định dạng ghi portb //định dạng ghi portc //định dạng ghi portd //định dạng ghi porte // định dạng chân RE0 // định dạng chân RE1 // định dạng chân RE2 //định dạng chân RC1 // định dạng chân RB0 // định dạng chân RB1 // định dạng chân RB2 /* khai báo biến */ int16 x=0; int16 y=0; int16 y1=0; int16 y2=0; int16 y3=0; int8 dem=0; /* Có capture CCP1 #INT_CCP1 void ngatcpp1() { if(input(pin_c2)) { set_timer1(0); setup_ccp1(CCP_CAPTURE_FE); } else { x=CCP_1; // có xung echo cạnh lên // reset timer // chuyển sang xung cạnh xuống // có xung echo cạnh xuống //lấy giá trị ghi CCP1 KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN 29 setup_ccp1(CCP_CAPTURE_RE); cạnh lên } } //thiết lập Capture CCP1 xung int8 dv=0,chuc=0,tram=0,ngan=0; void khoitao(); void xuat_adc(); void hienthidelay1(); void hienthidelaya(); void hienthidelayb(); void hienthidelayc(); void hienthidelay2(); void trigger(); /* chuong trinh con_ khoi tao lcd void khoitao() { rs=0; rw=0; e=1; e=0; delay_ms(5); } /* chuong trinh con_xuat gia tri void xuat_adc() { e=1; rs=1; rw=0; e=0; delay_ms (5); } /* chuong trinh chinh void main() { set_tris_b(0b00000111); // Khai báo RB0, RB1, RB2 nhập KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN 30 set_tris_d(0x00); // Khai báo PORTD xuất set_tris_c(0b00000100); // Khai báo RC2 nhập set_tris_e(0x00); // Khai báo PORTE xuất portd=0x38; khoitao(); portd=0x0c; khoitao(); enable_interrupts(INT_CCP1); //cho phép ngắt CCP1 có tín hiệu setup_ccp1(CCP_CAPTURE_RE); setup_timer_1(T1_internal|T1_DIV_BY_2); // chia tần enable_interrupts(GLOBAL); // Cho phép ngắt toàn cục set_timer1(0); hienthidelay2(); while(1) { if(but1 == 0) { delay_ms(10); while(but1 == 0) {} dem++; if(dem == 1) { trigger(); delay_ms(200); y1=x/58; } if(dem == 2) { trigger(); delay_ms(200); y2=x/58; } if(dem == 3) { trigger(); delay_ms(200); y3=x/58; } } if(but2 == 0) { delay_ms(10); while(but2 == 0) {} if(dem == 1) { y=y1; hienthidelay1(); } if( dem == 2) { y=y2; hienthidelay1(); } if( dem == 3) { y=y3; hienthidelay1(); KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN 31 dem=0; } } if(but3 == 0) { delay_ms(10); while(but3 == 0) {} hienthidelaya(); hienthidelayb(); hienthidelayc(); } } } /* chuong trinh void trigger() { TRIG=1; delay_us(15); TRIG=0; } /* void hienthidelay1() { portd = 0x01; khoitao(); ngan=y/1000; tram=(y/100)%10; chuc=(y/10)%10; dv=y%10; portd=0xc6; khoitao(); portd=dv+48; xuat_adc(); portd=0xc5; khoitao(); portd=chuc+48; xuat_adc(); portd=0xc4; khoitao(); portd=tram+48; xuat_adc(); portd=0xc3; khoitao(); portd=ngan+48; xuat_adc(); portd=0xc8; khoitao(); portd=67; xuat_adc(); portd=0xc9; khoitao(); portd=77; xuat_adc(); } /* void hienthidelaya() { portd = 0x01; khoitao(); ngan=y1/1000; tram=(y1/100)%10; chuc=(y1/10)%10; dv=y1%10; portd=0x82; khoitao(); portd=49; xuat_adc(); portd=0xc3; khoitao(); portd=dv+48; xuat_adc(); portd=0xc2; khoitao(); portd=chuc+48; xuat_adc(); KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN 32 portd=0xc1; khoitao(); portd=tram+48; xuat_adc(); portd=0xc0; khoitao(); portd=ngan+48; xuat_adc(); } /* void hienthidelayb() { ngan=y2/1000; tram=(y2/100)%10; chuc=(y2/10)%10; dv=y2%10; portd=0x86; khoitao(); portd=50; xuat_adc(); portd=0xc8; khoitao(); portd=dv+48; xuat_adc(); portd=0xc7; khoitao(); portd=chuc+48; xuat_adc(); portd=0xc6; khoitao(); portd=tram+48; xuat_adc(); portd=0xc5; khoitao(); portd=ngan+48; xuat_adc(); } /* void hienthidelayc() { ngan=y3/1000; tram=(y3/100)%10; chuc=(y3/10)%10; dv=y3%10; portd=0x8b; khoitao(); portd=51; xuat_adc(); portd=0xcd; khoitao(); portd=dv+48; xuat_adc(); portd=0xcc; khoitao(); portd=chuc+48; xuat_adc(); portd=0xcb; khoitao(); portd=tram+48; xuat_adc(); portd=0xca; khoitao(); portd=ngan+48; xuat_adc(); } /* void hienthidelay2() { portd=0x38; khoitao(); portd=0x0c; khoitao(); portd=0x82; khoitao(); portd=68; xuat_adc(); portd=0x83; khoitao(); KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN portd=72; xuat_adc(); portd=0x84; khoitao(); portd=32; xuat_adc(); portd=0x85; khoitao(); portd=83; xuat_adc(); portd=0x86; khoitao(); portd=65; xuat_adc(); portd=0x87; khoitao(); portd=73; xuat_adc(); portd=0x88; khoitao(); portd=32; xuat_adc(); portd=0x89; khoitao(); portd=71; xuat_adc(); portd=0x8a; khoitao(); portd=79; xuat_adc(); portd=0x8b; khoitao(); portd=78; xuat_adc(); portd=0xc2; khoitao(); portd=68; xuat_adc(); portd=0xc3; khoitao(); 33 portd=84; xuat_adc(); portd=0xc4; khoitao(); portd=32; xuat_adc(); portd=0xc5; khoitao(); portd=86; xuat_adc(); portd=0xc6; khoitao(); portd=73; xuat_adc(); portd=0xc7; khoitao(); portd=69; xuat_adc(); portd=0xc8; khoitao(); portd=78; xuat_adc(); portd=0xc9; khoitao(); portd=32; xuat_adc(); portd=0xca; khoitao(); portd=84; xuat_adc(); portd=0xcb; khoitao(); portd=72; xuat_adc(); portd=0xcc; khoitao(); portd=79; xuat_adc(); portd=0xcd; khoitao(); KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN portd=78; xuat_adc(); portd=0xce; khoitao(); portd=71; xuat_adc(); delay_ms(2000); /* portd=0x01; khoitao(); delay_ms(10); portd=0x82; khoitao(); portd=68; xuat_adc(); portd=0x83; khoitao(); portd=79; xuat_adc(); portd=0x84; khoitao(); portd=32; xuat_adc(); portd=0x85; khoitao(); portd=65; xuat_adc(); portd=0x86; khoitao(); portd=78; xuat_adc(); portd=0x87; khoitao(); portd=32; xuat_adc(); portd=0x88; khoitao(); portd=83; xuat_adc(); portd=0x89; 34 khoitao(); portd=79; xuat_adc(); portd=0x8a; khoitao(); portd=32; xuat_adc(); portd=0x8b; khoitao(); portd=49; xuat_adc(); delay_ms(2000);*/ portd=0x01; khoitao(); delay_ms(100); portd=0x82; khoitao(); portd=68; xuat_adc(); portd=0x83; khoitao(); portd=79; xuat_adc(); portd=0x84; khoitao(); portd=32; xuat_adc(); portd=0x85; khoitao(); portd=76; xuat_adc(); portd=0x86; khoitao(); portd=85; xuat_adc(); portd=0x87; khoitao(); portd=79; xuat_adc(); portd=0x88; KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN khoitao(); portd=78; xuat_adc(); portd=0x89; khoitao(); portd=71; xuat_adc(); portd=0xc2; khoitao(); portd=67; xuat_adc(); portd=0xc3; khoitao(); portd=65; xuat_adc(); portd=0xc4; khoitao(); portd=77; xuat_adc(); portd=0xc5; 35 khoitao(); portd=32; xuat_adc(); portd=0xc6; khoitao(); portd=66; xuat_adc(); portd=0xc7; khoitao(); portd=73; xuat_adc(); portd=0xc8; khoitao(); portd=69; xuat_adc(); portd=0xc9; khoitao(); portd=78; xuat_adc(); delay_ms(2000); portd=0x01; khoitao(); } KHOA ĐIỆN TỬ - VIỄN THƠNG 4.4 Mạch mơ phỏng, mạch in, mạch thực tế Hình 4-3: Mạch in Hình 4-4: Mạch mơ Hình 4-5: Mạch thực tế CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết luận  Ưu điểm - Hệ thống điều khiển tương đối ổn định, đáp ứng điều kiện đề tài - Cảm biến đọc thông số khoảng cách tương đối xác thị qua LCD - Phần mềm viết code đơn giản - Mạch tương đối đơn giản, dễ thực - Giá thành không cao - Có khả ứng dụng thực tế  Nhược điểm - Đây ứng dụng nhỏ PIC điều khiển để đo khoảng cách - Khả đo khoảng cách xa Cảm biến SRF05 cho khoảng cách đo tối đa từ 3-4 mét Chưa thể ứng dụng rông rãi vào đời sống 5.2 Hướng phát triển Hướng phát triển đồ án là: Dùng PIC 16F877A để điều khiển để đo khoảng cách ngồi SRF05 có khả kết nối vi xử lý khác họ MC51 họ AVR…Ngày nay, người ta nghiên cứu phát triển chế tạo để gắn cảm biến khác laser, camera…và ứng dụng để phục vụ người sống hàng ngày TÀI LIỆU THAM KHẢO [1] TS Văn Tấn Lượng -Ths Nguyễn Quốc Đán (2015) “Giáo trình kĩ thuật vi xử lý”, đại học Sài Gòn [2] Nguyễn Ngọc Tân – Ngô Văn Ky (2005) “Kỹ thuật đo”, nhà xuất Đại Học Quốc Gia, Hồ Chí Minh [3] http://www.alldatasheet.com [4]http://www.dientuvietnam.net ... .10 1. 6 Các định thời chip .11 1. 7 Bộ biến đổi ADC 14 1. 8 Các ứng dụng PIC16F877A .14 CHƯƠNG 2: PHƯƠNG PHÁP ĐO KHOẢNG CÁCH BẰNG SRF05 16 2 .1 Cảm biến SRF05 16 ... 13 Hình 1- 9: Sơ đồ khối chuyển đổi Analog 14 Hình 1- 10: Sơ đồ giao tiếp với Led .15 Hình 1- 11: Sơ đồ giao tiếp với LCD .15 Hình 2 -1: Cấu hình SRF05 mode .17 Hình... chương trình 16 F877A .7 Hình 1- 4: Bộ nhớ data 16 F877A Hình 1- 5: Cấu trúc GPIO 11 Hình 1- 6: Sơ đồ khối Timer 12 Hình 1- 7: Sơ đồ khối Timer1 13 Hình 1- 8: Sơ đồ khối

Ngày đăng: 26/11/2018, 12:10

Từ khóa liên quan

Mục lục

  • LỜI GIỚI THIỆU

  • DANH MỤC CHỮ VIẾT TẮT

  • DANH MỤC HÌNH VẼ

  • CHƯƠNG 1: TỔNG QUAN VỀ PIC16F877A

    • 1.1 Giới thiệu vi điều khiển PIC16F877A:

    • 1.2 Khảo sát vi điều khiển PIC16F877A của hãng Microchip:

    • 1.3 Tổ chức các bộ nhớ:

    • 1.4 Các thanh ghi đặc biệt:

    • 1.5 Các cổng xuất nhập của PIC ( I/O):

    • 1.6 Các bộ định thời của chip:

    • 1.7 Bộ biến đổi ADC:

    • 1.8 Các ứng dụng của PIC16F877A:

    • CHƯƠNG 2: PHƯƠNG PHÁP ĐO KHOẢNG CÁCH BẰNG SRF05

      • 2.1 Cảm biến SRF05

      • 2.3 Tính toán khoảng cách:

      • 2.4 Hoạt động và nhận phản hồi sóng cơ bản của SRF05:

      • CHƯƠNG 3: THIẾT KẾ HỆ THỐNG

        • 3.1 Sơ đồ khối tổng quát:

        • 3.2 Linh kiện sử dụng chủ yếu và bảng giá linh kiện

        • CHƯƠNG 4: THI CÔNG MẠCH

          • 4.1 Sơ đồ nguyên lí toàn mạch:

          • 4.2 Giải thuật:

          • 4.3 Source Code:

          • 4.4 Mạch mô phỏng, mạch in, mạch thực tế

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

Tài liệu liên quan