1. Trang chủ
  2. » Luận Văn - Báo Cáo

LITN - ĐO KHOẢNG CÁCH BẰNG SÓNG SIÊU ÂM

53 2 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 53
Dung lượng 777,45 KB

Nội dung

LVTN : ĐO KHOẢNG CÁCH BẰNG SÓNG SIÊU ÂM LỜI CẢM ƠN Đo khoảng cách sông siêu âm phương pháp phổ biến hiệu dùng nhiều thực tế mà qua luận văn tốt nghiệp em có dịp tìm hiểu rõ Em xin chân thành cảm ơn Thầy Ths TRẦN VIẾT THẮNG nhiệt tình hướng dẫn em hồn thành luận văn tốt nghiệp Qua giúp em củng cố kiến thức phát triển thêm nhiều ứng dụng sau SINH VIÊN THỰC HIỆN NGUYỄN MINH HOÀI SVTH : NGUYỄN MINH HOÀI LVTN : ĐO KHOẢNG CÁCH BẰNG SÓNG SIÊU ÂM NHẬN XÉT CỦA GVHD -Ngày … tháng năm … GVHD Ths TRẦN VIẾT THẮNG SVTH : NGUYỄN MINH HOÀI LVTN : ĐO KHOẢNG CÁCH BẰNG SÓNG SIÊU ÂM Mục lục Phần III 1.TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC 16F876A  Pic16f876a 2.TOÅNG QUAN VỀ SÓNG SIÊU ÂM  Sóng siêu âm sở sóng siêu âm 10 NGUYÊN LÝ ĐO KHOẢNG CÁCH  Cơ sở đo khoảng cách sóng siêu âm 20 Phần III THIẾT KẾ MẠCH A phần cứng  Sơ đồ khối 22 B phần miềm  Lưu đồ giải thuật 29  Chương trình điều khiển đo khoảng cách 30 Phần III KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết 37 Kết luận Phụ lục  Tập lệnh pic 40 Phần I SVTH : NGUYỄN MINH HOÀI LVTN : ĐO KHOẢNG CÁCH BẰNG SÓNG SIÊU ÂM TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC 16F876A PIC 16F876A PIC16F876A vi điều khiển chế tạo theo công nghệ RISC hãng Microchip, có 40 pin Các thông số 16F877A: - Tập lệnh: gồm 35 lệnh đơn, gần lệnh thực chu kỳ lệnh (một chu kì lệnh lần chu kỳ xung clock) ngoại trừ lệnh rẻ nhánh thực chu kì lệnh - Tần số hoạt động: – 20MHz, chu kỳ lệnh tần số 20MHz 200ns - Bộ nhớ chương trình (FLASH ROM): 8Kx14bit - Bộ nhớ liệu: gồm 368 byte RAM 256 byte EEPROM - Điện áp làm việc: 2V đến 5VDC - Dòng điện điều khiển: 25mA cho mức HIGH LOW - Số nguồn ngắt: 14 - Chức WATCHDOG hoạt động với dao động RC bên vi điều khiển - Có khả giao tiếp nối tiếp giao tiếp song song Cấu trúc cổng vào/ra : PORT A: gồm chân điều khiển vào/ đa hợp với kênh ADC (AN0 đến SVTH : NGUYỄN MINH HỒI LVTN : ĐO KHOẢNG CÁCH BẰNG SÓNG SIÊU ÂM AN4), cấu trúc chân RA0-RA3 RA5: Khi cấu kênh ADC tín hiệu ngõ vào điện áp analog, trạng thái ngõ vào đọc logic Khi không sử dụng kênh ADC tín hiệu cấu ngõ ngõ vào tùy thuộc vào bit điều khiển hướng TRISA, bit TRISA = 1: tín hiệu tương ứng ngõ vào (vì lúc mosfet N P ngưng dẫn), bit TRISA =0: tín hiệu tương ứng ngõ ra, trạng thái logic ngõ phụ thuộc vào bit liệu 1, thông qua data FF TRIS latch, ngõ cổng OR mức 0, mosfet P dẫn cung cấp Vdd đến ngõ ra, ngõ cổng AND nên mosfet kênh N ngưng dẫn, ta ngõ mức Ngược lại, bit data mosfet P ngưng dẫn mosfet N dẫn kéo ngõ logic Tín hiệu RA4 port A đa hợp nguồn cấp xung clock từ bên cho timer0 Khi cấu I/O điều khiển tín hiệu TRISA tương ứng, TRISA = 1: ngõ cổng AND logic nên mosfet N ngưng dẫn, RA4 ngõ vào, ngược lại: RA4 ngõ cực thu để hở (open collector) mức logic phụ thuộc data bit, data bit mosfet N ngưng dẫn, ngõ gần SVTH : NGUYỄN MINH HOÀI LVTN : ĐO KHOẢNG CÁCH BẰNG SĨNG SIÊU ÂM cách ly nên thực tế thường dùng điện trở kéo lên (pull up resistor), giá trị điện trở phụ thuộc vào dòng mức cao cần điều khiển, nhiên không vượt 25mA Xem hình sau: PORT B: Cấu trúc RB0 đến RB3: Có thể định cấu hình tín hiệu ngõ ngõ vào phụ thuộc bit SVTH : NGUYỄN MINH HOÀI LVTN : ĐO KHOẢNG CÁCH BẰNG SĨNG SIÊU ÂM TRISB tương ứng Nếu ngõ mosfet P ngưng dẫn, tín hiệu phụ thuộc ngõ đệm, ngõ vào bit RBPU (bit ghi OPTION_REG) mosfet P dẫn tương đương điện trở vài kilo ohm kéo ngõ vào lên nguồn (weak pullup resistor) để tăng dòng HIGH input Các tín hiệu RB4 đến RB7 có cấu trúc sau: Cấu trúc chân tương tự RB0-RB3 nhiên cấu ngõ vào thay đổi trạng thái logic chân tạo kiện ngắt (interrupt on_change RB) PORT C: Cấu trúc RC0 – RC2 RC5-RC7, tín hiệu đáng quan tâm RC6 RC7 đa hợp với đường USART TxD RxD dùng trao đổi liệu nối tiếp Xem hình sau: SVTH : NGUYỄN MINH HOÀI LVTN : ĐO KHOẢNG CÁCH BẰNG SĨNG SIÊU ÂM Cấu trúc RC3 RC4: SVTH : NGUYỄN MINH HOÀI LVTN : ĐO KHOẢNG CÁCH BẰNG SĨNG SIÊU ÂM PORT D: Cấu trúc hình sau: Gồm bit điều khiển vào/ra định cấu hình ngõ vào ngõ phụ thuộc vào bit TRISD tương ứng Khi ngõ tín hiệu ngõ đệm PORT E: Cấu trúc RE hình sau: TỔNG QUAN VỀ SÓNG SIÊU ÂM SVTH : NGUYỄN MINH HỒI LVTN : ĐO KHOẢNG CÁCH BẰNG SÓNG SIÊU ÂM Sóng siêu âm sở sóng siêu âm: 2.1 Sóng siêu âm gì? a Khái niệm: Hàng ngày trao đổi với chủ yếu âm Chúng ta nghe đài, nghe nhạc, nghe điện thoại…chính nghe âm Trẻ em tập nói làm quen với âm Ngày người hiểu rõ sóng âm dao động học (sóng đàn hồi) lan truyền mơi trường đàn hồi Sóng âm truyền chất rắn, lỏng, khí Chân khơng khơng phải môi trường đàn hồi nên chúng xem mơi trường cách âm lý tưởng Sóng đàn hồi phân chia theo vùng tần số sau: + Vùng hạ âm : tần số dao động từ Hz đến 16 Hz + Vùng âm tần : tần số dao động từ 16 Hz đến 20 KHz + Vùng siêu âm : tần số dao động từ 20KHz đến 10MHz + Vùng cao tần : tần số dao động từ 10MHz trở lên Tóm lại: Sóng siêu âm dao động học lan truyền môi trường vật chất vật chất chiếm dãy tần số từ 20KHz đến 10MHz Hình 2.1.Biểu đồ phân bố lượng b Đặc điểm sóng siêu âm:  Sóng siêu âm mang lượng lớn so với sóng âm Ví dụ: Để đun sơi lít nước mà lấy lượng từ nguồn sóng âm người phát có tần số khoảng 1KHz phải huy động triệu người la hét liên tục suốt 12 Trong lượng sóng siêu âm tần số 1MHz lớn gấp triệu lần lượng sóng âm tần số 1KHz với điều kiện biên độ dao động Sóng siêu âm mang lượng lớn nên cường độ đạt tới hàng trăm, hàng ngàn W/cm2  Khoảng cách truyền sóng siêu âm phụ thuộc vào chất mơi trường truyền sóng  Cường độ độ ổn định sóng siêu âm phụ thuộc vào biến tử phát sóng  Sóng siêu âm có khả truyền xuyên qua vật thể 2.2 Phân loại sóng siêu âm Dựa sở so sánh phương truyền sóng với chiều dịch chuyển hạt mơi trường truyền sóng mà người ta chia làm loại sau: SVTH : NGUYỄN MINH HOÀI 10 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= movwf movfw addwf movwf movfw movwf fsr indf seg7_ha,w fsr indf portb decfsz digit_cnt,f goto int_end movlw d'3' movwf digit_cnt goto int_end ;*** End SVTH : NGUYỄN MINH HOÀI 39 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= Phần III KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết Đề tài “Thiết bị đokhoảng sóng siêu âm” hồn thành Qua q trình thực đề tài có hiểu biết kinh nghiệm sau: • Tìm hiểu nắm rõ đặc điểm tính chất sóng siêu âm với ứng dụng thật thiết thực sống • Thiết bị đo khoảng cách từ 30 mm đến 3000 mm thu giải thích hình ảnh, dạng sóng phù hơp với lý thuyết Kết luận Trong trinh tiến hành thực luận văn tốt nghiệp với nhiều cố gắng nổ lực em với hướng dẫn tận tình thầy Th s TRẦN VIẾT THẮNG, em thực đề tài hoàn thành luận văn tốt nghiệp thời gian quy định theo yêu cầu đặt thiết kế “Thiết bị đokhoảng sóng siêu âm” Để thực yêu cầu chúng em tìm hiểu vấn đề : cảm biến thu phát siêu âm T40-16 R40-16 , lý thiết sóng siêu âm khơng khí , vi điều khiển, IC số, phương pháp đo khoảng cách Nội dung đề tài bao gồm phần sau: * Phần kiến thức • Tìm hiểu cảm biến thu phát siêu âm SRF 08 • Một số IC số (4069, 4011) • Mạch khuếch đại thuật toán so sánh dùng OPAM (LM358, 4558, LM567…) • Khảo sát vi điều khiển pic 16f786a • Các phương pháp đo khoảng cách dùng sóng siêu âm * Phần thiết kế thi cơng • Xây dựng sơ đồ khối toàn mạch • Xây dựng lưu đồ giải thuật • Viết chương trình • Thi công lắp ráp mạch in kiểm tra Trên nội dung mà em thực luận án Theo nhận định chủ quan em thực luận văn trình bày tương đối đầy đủ nội dung, kiến thức liên quan, giải yêu cầu đặt Thiết bị đokhoảng sóng siêu âm Đề tài em hồn thành khơng khỏi tránh sai xót hạn chế Ở giải yêu cầu : đo khoảng cách khoảng SVTH : NGUYỄN MINH HOÀI 40 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= cách gần từ 3cm đến 4m, hạn chế đề tài Để đề tài thêm phong phú tăng hiệu sử dụng cần đáp ứng u cầu sau: • Đo khoảng cách xa khoảng 10m • Kết hợp hiển thị nhiệt độ địa điểm, thời điểm tiến hành đo • Khảo sát mạch ứng dụng cơng nghiệp • Kết hợp giao tiếp máy tính để điều khiển • Đo khoảng cách cảnh báo xa khoảng 10m Trên yêu cầu mà em chưa thực được, mong đề tài bạn sinh viên khóa sau tiếp tục thực yêu cầu khắc phục hạn chế đề tài này, để tạo sản phẩm có chất lượng cao phục vụ cho sản xuất đời sống xã hội SINH VIÊN THỰC HIỆN ĐỀ TÀI SVTH : NGUYỄN MINH HOÀI 41 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= Phụ lục TẬP LỆNH PIC ADDLW (Add literal and W) - Cú pháp: - Trong đó: K giá trị byte (0 -> 255) - Thực lệnh: W W + K - Thời gian: chu kì - Cờ ảnh hưởng: C, Z - Ví dụ: W = 0x10 ADDLW 0x21 Sau thực lệnh, nội dung ghi W = 0x31 ADDWF (Add W and file) - Cú pháp: - Trong đó: F nhớ RAM(có địa từ đến 127) ghi d: hướng di chuyển liệu; d = 0: kết lưu vào W; d = 1: kết lưu vào ghi F - Thực lệnh: Thanh ghi kết W + F - Thời gian: chu kì - Cờ ảnh hưởng: C, Z - Ví dụ: W = 0x05, Ơ nhớ 0x25 chứa 0x12 ONHO EQU 0x25 ADDWF ONHO, Sau thực xong W = 0x17 ANDLW (And literal with W) - Cú pháp: - Trong đó: K giá trị byte (0 -> 255) - Thực lệnh: W W and K - Thời gian: chu kì - Cờ ảnh hưởng: Z - Ví dụ: W = b’00010100’ ANDLW b’00001111’ ADDLW K ADDWF F, d ANDLW K Sau thực lệnh W = b’00000100’ ANDWF (And W with F) - Cú pháp: - Trong đó: F nhớ RAM(có địa từ đến 127) ghi d: hướng di chuyển liệu; d = 0: kết lưu vào W; d = 1: kết lưu vào ghi F - Thực lệnh: ghi kết W and K - Thời gian: chu kì - Cờ ảnh hưởng: Z - Ví dụ: W = b’00010100’ SVTH : NGUYỄN MINH HOÀI 42 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= ANDLW b’00001111’, Sau thực lệnh W = b’00000100’ BCF (Bit clear F) - Cú pháp: - Trong đó: F ghi; b vị trí bit ghi (b = [0,7]) - Thực lệnh: bit thứ b F - Thời gian: chu kì - Cờ ảnh hưởng: khơng - Ví dụ: BCF STATUS, Xóa bit ghi trạng thái STATUS BSF (Bit set F) - Cú pháp: - Trong đó: F ghi; b vị trí bit ghi (b = [0,7]) - Thực lệnh: bit thứ b F - Thời gian: chu kì - Cờ ảnh hưởng: khơng - Ví dụ: BSF STATUS, Set bit ghi trạng thái STATUS ANDWF F, d BCF F, b BSF F, b BTFSC (Bit test, skip if clear) - Cú pháp: - Trong đó: F ghi; b vị trí bit ghi (b = [0,7]) - Thực lệnh: Nếu bit b ghi F bỏ qua lệnh (thay lệnh lệnh NOP), ngược lại thực lệnh - Thời gian: chu kì (nếu bit b F chu kì để thực lệnh) - Cờ ảnh hưởng: khơng - Ví dụ: LỆNH LAP: LỆNH BTFSC STATUS, Z GOTO LAP LỆNH cờ Z ghi STATUS bỏ qua lệnh GOTO LAP để thực LỆNH 3; ngược lại nhảy thực lệnh nhảy đến nhãn LAP BTFSS (Bit test, skip if set) - Cú pháp: - Trong đó: F ghi; b vị trí bit ghi (b = [0,7]) SVTH : NGUYỄN MINH HOÀI 43 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= - Thực lệnh: Nếu bit b ghi F bỏ qua lệnh (thay lệnh lệnh NOP), ngược lại thực lệnh - Thời gian: chu kì (nếu bit b F chu kì để thực lệnh) - Cờ ảnh hưởng: khơng - Ví dụ: LỆNH LAP: LỆNH BTFSS STATUS, Z BTFSC F, b BTFSS F, b GOTO LAP LỆNH cờ Z ghi STATUS bỏ qua lệnh GOTO LAP để thực LỆNH 3; ngược lại nhảy thực lệnh nhảy đến nhãn LAP CALL (Call subroutine) - Cú pháp: - Đây lệnh gọi thực chương trình - Thời gian: chu kì - Cờ ảnh hưởng: khơng 10 CLRF (Clear F) - Cú pháp: - F nhớ RAM(có địa từ đến 127) ghi - Thực lệnh: F 0x00 - Thời gian: chu kì - Cờ ảnh hưởng: Z =1 - Ví dụ: R0 EQU 0x23 CLRF R0 Lệnh xóa nội dung nhớ có địa 0x23 11 CLRW (Clear W) - Cú pháp: - Thực lệnh: W - Thời gian: chu kì - Cờ ảnh hưởng: Z = 12 CLRWDT (Clear watchdog timer) - Cú pháp: CALL CLRF F CLRW CLRWDT - Thực lệnh: WDT WDT prescaler Bit TO Bit PD SVTH : NGUYỄN MINH HOÀI 44 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= - Thời gian thực hiện: chu kì - Cờ ảnh hưởng: TO, PD 13 COMF (Complement F) - Cú pháp: - F nhớ RAM(có địa từ đến 127) ghi d: hướng di chuyển liệu; d = 0: kết lưu vào W; d = 1: kết lưu vào ghi F - Thực hiện: ghi đích not(F) - Thời gian: chu kì - Cờ ảnh hưởng: Z - Ví dụ: REG1 = 0x13 COMF REG1 Sau thực lệnh, ghi REG1 = 0xEC 14 DECF (decrement F) - Cú pháp: - F ô nhớ RAM(có địa từ đến 127) ghi d: hướng di chuyển liệu; d = 0: kết lưu vào W; d = 1: kết lưu vào ghi F - Thực lệnh: ghi đích F -1 - Thời gian: chu kì - Cờ ảnh hưởng: Z - Ví dụ: CNT = CNT EQU 0X30 DECF CNT, Sau thực lệnh CNT = DECF CNT, Sau thực lệnh CNT = 7, W = 15 DECFSZ (Decrement F, skip if zero) COMF F, d DECF F, d DECFSZ F, d - Cú pháp: - F nhớ RAM(có địa từ đến 127) ghi d: hướng di chuyển liệu; d = 0: kết lưu vào W; d = 1: kết lưu vào ghi F - Thực lệnh: ghi đích F - 1, kết lệnh bị bỏ qua (thay lệnh lệnh NOP), ngược lại thực lệnh - Thời gian: chu kì (nếu kết qua zero chu kì) - Cờ ảnh hưởng: khơng - Ví dụ: R0 EQU 0x20 LỆNH LAP: LỆNH DECFSZ R0, GOTO LAP SVTH : NGUYỄN MINH HOÀI 45 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= LỆNH Nếu sau giảm R0, kết > thực lệnh để nhảy đến nhãn LAP, ngược lại thay lệnh lệnh NOP, sau thực LỆNH 16 GOTO (unconditional branch) - Cú pháp: - Thực hiện: chuyển đến thực lệnh vị trí - Thời gian: chu kì - Cờ ảnh hưởng: khơng 17 INCF (Increment F) - Cú pháp: - F ô nhớ RAM(có địa từ đến 127) ghi d: hướng di chuyển liệu; d = 0: kết lưu vào W; d = 1: kết lưu vào ghi F - Thực lệnh: ghi đích F +1 - Thời gian: chu kì - Cờ ảnh hưởng: Z - Ví dụ: CNT = GOTO INCF F, d CNT EQU 0X30 INCF CNT, Sau thực lệnh CNT = INCF CNT, Sau thực lệnh CNT = 9, W = 10 18 INCFSZ (Increment F, skip if zero) - Cú pháp: - F nhớ RAM(có địa từ đến 127) ghi d: hướng di chuyển liệu; d = 0: kết lưu vào W; d = 1: kết lưu vào ghi F - Thực lệnh: ghi đích F + 1, kết lệnh bị bỏ qua (thay lệnh lệnh NOP), ngược lại thực lệnh - Thời gian: chu kì (nếu kết qua zero chu kì) - Cờ ảnh hưởng: khơng - Ví dụ: R0 = 0xfe R0 EQU 0x20 LỆNH LAP: LỆNH INCFSZ R0, GOTO LAP LỆNH Nếu sau tăng R0, kết > thực lệnh để nhảy đến nhãn LAP, ngược lại thay lệnh lệnh NOP, sau thực LỆNH SVTH : NGUYỄN MINH HOÀI 46 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= Trong trường hợp LỆNH thực lần R0 = 0xfe, lần thứ R0 tăng lên 0xff, lần thứ R0 tăng 0x00 (TRÀN) 19 IORLW (Inclusive OR literal with F) - Cú pháp: - Trong k giá trị byte - Thực hiện: W W OR k - Thời gian: chu kì - Cờ ảnh hưởng: Z - Ví dụ: w = 0x13 INCFSZ F, d IORLW k IORLW 0x91 Sau thực lệnh W = 0x93 20 IORWF (Inclusive OR W with F) - Cú pháp: - F nhớ RAM(có địa từ đến 127) ghi d: hướng di chuyển liệu; d = 0: kết lưu vào W; d = 1: kết lưu vào ghi F - Thực lệnh: ghi đích W OR F - Thời gian: chu kì - Cờ ảnh hưởng: Z - Ví dụ: R5 = 0x13, W = 0x90 R5 EQU 0x31 IORWF R5, Sau thực lệnh, R5 = 0x13, W = 0x93 21 MOVLW (Move literal to W) - Cú pháp: - k giá trị byte - Thực lệnh: W k - Thời gian: chu kì - Cờ ảnh hưởng: khơng - Ví dụ: MOVLW 0x27 Sau thực lệnh W = 0x27 22 MOVF (Move f) - Cú pháp: - F ô nhớ RAM(có địa từ đến 127) ghi d: hướng di chuyển liệu; d = 0: kết lưu vào W; d = 1: kết lưu vào ghi F - Thực lệnh: ghi đích F - Thời gian: chu kì - Cờ ảnh hưởng: Z IORWF F, d MOVLW k MOVF F, d SVTH : NGUYỄN MINH HOÀI 47 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= - Ví dụ: R0 = 0x2e R0 EQU 0x20 MOVF R0, Sau thực lệnh W = 0x2e MOVF R0, Sau thực lệnh R0 giữ giá trị cũ, trường hợp dùng để test cờ Z 23 MOVWF (Move W to F) - Cú pháp: - F nhớ RAM(có địa từ đến 127) ghi - Thực lệnh: F W - Thời gian: chu kì - Cờ ảnh hưởng: khơng - Ví dụ: R1 EQU 0x25 MOVLW 0x10 MOVWF R1 Sau thực lệnh R1 = 0x10 24 NOP (No operation) - Cú pháp: - Thực hiện: khơng làm - Thời gian: chu kì - Cờ ảnh hưởng: khơng 25 RETFIE (Return from interrupt) - Cú pháp: - Thực hiện: lệnh kết thúc chương trình phục vụ ngắt - Thời gian: chu kì - Cờ ảnh hưởng: không 26 RETLW (Return with literal in W ) - Cú pháp: MOVWF F NOP RETFIE RETLW k - k giá trị byte - Thực lệnh: W k PC địa quay chương trình stack - Thời gian: chu kì - Cờ ảnh hưởng: khơng - Ví dụ: dùng lấy giá trị bảng theo cấu trúc sau HERE: CALL TABLE ; W chứa vị trí TABLE • ; W now has table value TABLE: ADDWF PC ;W = offset RETLW k1 ; Bắt đầu bảng SVTH : NGUYỄN MINH HOÀI 48 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= RETLW k2 ; RETLW kn ; Kết thúc bảng Trước thực hiện:W = 0x02 Sau thực lệnh CALL TABLE: W = k3 27 RETURN (Return from subrountine) - Cú pháp: - Thực hiện: lệnh kết thúc chương trình - Thời gian: chu kì - Cờ ảnh hưởng: khơng 28 RLF (Rotation left F through carry flag) - Cú pháp: - F nhớ RAM(có địa từ đến 127) ghi d: hướng di chuyển liệu; d = 0: kết lưu vào W; d = 1: kết lưu vào ghi F RETURN RLF F, d - Thực hiện: - Thời gian: chu kì - Cờ ảnh hưởng: carry - Ví dụ: carry = R0 EQU 0x20 MOVLW b’10110100’ MOVWF R0 RLF R0, Sau thực lệnh R0 = b’01101000’, carry = 29 RRF (Rotation right F through carry flag) - Cú pháp: - F ô nhớ RAM(có địa từ đến 127) ghi d: hướng di chuyển liệu; d = 0: kết lưu vào W; d = 1: kết lưu vào ghi F - Thực hiện: - Thời gian: chu kì - Cờ ảnh hưởng: carry - Ví dụ: carry = R0 EQU 0x20 MOVLW b’01101001’ MOVWF R0 RRF R0, Sau thực lệnh R0 = b’01101000’, carry = 30 SLEEP - Cú pháp: - Thực lệnh: WDT 0x00 WDT prescaler Bit TO Bit PD SVTH : NGUYỄN MINH HOÀI 49 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= C Thanh ghi F C Thanh ghi F RRF F, d SLEEP OSC ngừng hoạt động, vi điều khiển vào trạng thái SLEEP - Thời gian: chu kì 31 SUBLW (Subtract W from literal) - Cú pháp: - k giá trị byte - Thực lệnh: W W - k - Thời gian: chu kì - Cờ ảnh hưởng: C, Z - Ví dụ: MOVLW 0x25 SUBLW 0x04 Sau thực lệnh W = 0x21 32 SUBWF (Subtract W from F) - Cú pháp: - F nhớ RAM(có địa từ đến 127) ghi d: hướng di chuyển liệu; d = 0: kết lưu vào W; d = 1: kết lưu vào ghi F - Thực hiện: ghi đích W - F - Thời gian: chu kì - Cờ ảnh hưởng: C, Z - Ví dụ: R0 EQU 0x20 MOVLW D’23’ MOVWF R0 MOVLW D’45’ SUBWF R0, ; sau thực W = 22, R0 = 23 MOVLW D’45’ SUBWF R0, ; sau thực W = 45, R0 = 22 33 SWAPF (Swap nibble in F) SUBLW k SUBWF F, d SWAPF F, d - Cú pháp: - F ô nhớ RAM(có địa từ đến 127) ghi d: hướng di chuyển liệu; d = 0: kết lưu vào W; d = 1: kết lưu vào ghi F - Thực - Thời gian: chu kì - Cờ ảnh hưởng: khơng SVTH : NGUYỄN MINH HỒI 50 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= - Ví dụ: R5 EQU 0x27 MOVLW B’10010011’ MOVWF R0 SWAPF R0, ;sau thực lệnh R0 = b’00111001’ 34 XORLW (Exclusive OR literal with W) - Cú pháp: - k giá trị byte - Thực hiện: W W XOR k - Thời gian: chu kì - Cờ ảnh hưởng: Z - Ví dụ: MOVLW B’01001110’ XORLW B’11010011’ ; sau thực W = b’10011101’ 35 XORWF (Exclusive OR W with F) - Cú pháp: - F nhớ RAM(có địa từ đến 127) ghi d: hướng di chuyển liệu; d = 0: kết lưu vào W; d = 1: kết lưu vào ghi F - Thực hiện: ghi đích W XOR F High nibble Low nibble XORLW k XORWF F, d - Thời gian: chu kì - Cờ ảnh hưởng: Z - Ví dụ: R5 EQU 0x28 MOVLW B’01001110’ MOVWF R5 MOVLW B’11010011’ XORWF R0, ; sau thực W = b’10011101’ MỘT SỐ LƯU Ý KHI SỬ DỤNG PIC Hiện tất sinh viên chuyên ngành điện, điện tử điều khiển tự động có khả sử dụng tốt vi điều khiển họ 8051, chuyển sang tìm hiểu vi điều khiển PIC cần lưu ý số điểm quan trọng sau: Bản đồ địa ghi nhớ RAM: Các ghi nhớ PIC phân bố bank địa chỉ, muốn truy xuất đến ghi ô nhớ phải thực lệnh chuyển đến bank ghi ngoại trừ ghi STATUS, FSR, PCL, PCLATH, INTCON nhớ có địa từ 70H đến 7FH Việc định bank ghi điều khiển hai bit thấp RP0 SVTH : NGUYỄN MINH HOÀI 51 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= RP1 ghi STATUS: RP1 RP0 BANK 0 (DEFAULT) 011 102 113 ví dụ: - Ghi byte 0FH ghi TRISC để xác lập bit cao output bit thấp input (thanh ghi TRISC nằm bank1): BCF STATUS,RP1 ; RP1 = BSF STATUS,RP0 ; RP0 = 1, chuyển đến bank1 MOVLW 0X0F MOVWF TRISC - Ghi byte 0FH ghi TRISB để xác lập bit cao output bit thấp input (thanh ghi TRISB nằm bank3): BSF STATUS,RP1 ; RP1 = BSF STATUS,RP0 ; RP0 = 1, chuyển đến bank3 MOVLW 0x0F MOVWF TRISB Bản đồ nhớ chương trình: Bộ nhớ chương trình chia làm trang, trang có kích thước 2Kx14bit, dung lượng mã lệnh 2K khơng cần quan tâm đến lưu ý này, ngược lại, muốn chuyển đến đoạn chương trình nằm trang dùng lệnh gọi chương trình (CALL) lệnh nhảy không điều kiện (GOTO) phải thực chuyển trang nhớ Hai bit PCLATH co phép chọn trang: PC_LATH PC_LATH TRANG 0 (DEFAULT) 011 102 113 Ví dụ: gọi chương trình SUB1_P1 (địa bắt 900H) trang 1: Viết chương trình ngắt PIC: PIC16F877A có đến 14 nguồn ngắt khác nhau, nhiên cung cấp vector ngắt 0004H, việc viết chương trình ngắt thực sau: - Khai báo sử dụng ngắt - Chỉ định tất các ngắt sử dụng - Viết chương trình ngắt tổng quát địa 0004H, có kiện ngắt (interrupt even) đoạn chương trình có nhiệm vụ kiểm tra xem bit ngắt bật lên, từ suy nguồn gọi ngắt để gọi chương trình phục vụ tương ứng Cấu trúc tổng quát đoạn chương trình ngắt PIC: W_TEMP EQU 0X70 ; DIA CHI DUNG CHUNG CHO TAT CA CAC BANK STATUS_TEMP EQU 0X71 PCLATH_TEMP EQU 0X72 ORG 0X0000 SVTH : NGUYỄN MINH HOÀI 52 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= GOTO MAIN ORG 0X0004 ; INTERRUPT VECTOR GOTO INT_TIMER0 MAIN: ; lệnh chương trình ;======================================================= INT_TIMER0: ;=======SAVE CONFIG OF SYSTEM======== MOVWF W_TEMP SWAPF STATUS,W CLRF STATUS MOVWF STATUS_TEMP MOVF PCLATH, W MOVWF PCLATH_TEMP CLRF PCLATH ;==================================== ; lệnh chương trình ngắt ;======================================== MOVF PCLATH_TEMP, W MOVWF PCLATH SWAPF STATUS_TEMP,W MOVWF STATUS SWAPF W_TEMP,F SWAPF W_TEMP,W RETFIE Thiết kế mạch điều khiển: Khi sử dụng I/O để điều khiển thiết bị bên mạch điều khiển ra, ví dụ: điều khiển LED, RELAY, phải ý cấu hình chân tương ứng ngõ (bit TRIS tương ứng ); mạch điều khiển vào (input) ví dụ: kiểm tra phím phải cấu hình chân tương ứng ngõ vào thông qua TRIS bit logic SVTH : NGUYỄN MINH HOÀI 53 ... dùng trao đổi liệu nối tiếp Xem hình sau: SVTH : NGUYỄN MINH HỒI LVTN : ĐO KHOẢNG CÁCH BẰNG SĨNG SIÊU ÂM Cấu trúc RC3 RC4: SVTH : NGUYỄN MINH HỒI LVTN : ĐO KHOẢNG CÁCH BẰNG SÓNG SIÊU ÂM PORT D:... tản nhiệt SVTH : NGUYỄN MINH HOÀI 26 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM =============================================================================  Mạch SVTH : NGUYỄN MINH HOÀI 27 LVTN : ĐO... SVTH : NGUYỄN MINH HOÀI 28 LVTN : ĐO KHOẢNG BẰNG SONG SIÊU ÂM ============================================================================= B phần mềm  Lưu đồ giải thuật SVTH : NGUYỄN MINH HOÀI

Ngày đăng: 30/10/2022, 16:21

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN