Đồ án tốt nghiệp đếm và phân loại sản phẩm

144 4 0
Đồ án tốt nghiệp đếm và phân loại sản phẩm

Đ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

Đồ án tốt nghiệp đếm và phân loại sản phẩm

CHƯƠNG DẪN NHẬP KHOA ĐIỆN TỬ-TIN HỌC 1.1 ĐẶT VẤN ĐỀ: Trong thời đại công nghiệp ngày nay, việc làm người nhà máy, xí nghiệp tự động hóa máy móc hóa nhằm đem đến độ xác tiết kiệm lâu dài kinh phí sản xuất cho chủ đầu tư Vì thế, chúng em xin giới thiệu mạch điện tử đơn giản ứng dụng rộng rãi nhà máy, xí nghiệp mạch đếm phân loại sản phẩm Mạch đếm sản phẩm giúp ích nhiều cho người việc rút ngắn thời gian sản xuất, tiết kiệm sức khỏe người, sử dụng nhân cơng từ làm giảm hao phí tài cho cơng ty Mạch đếm sản phẩm chúng em mơ hình thu nhỏ điển hình cho máy đếm sản phẩm cơng nghiệp, hội tụ đủ tính máy đếm sản phẩm công nghiệp sản xuất chế tạo Được đồng ý thầy cô Khoa Điện Tử -Tin Học.Nhóm chúng em định làm đề tài tốt nghiệp: “đếm phân loại sản phẩm”.Trong thời gian ngắn thực đề tài cộng với kiến thức nhiều hạn chế, nên đề tài ,đồ án khơng tránh khỏi thiếu sót, nhóm thực mong đóng góp ý kiến quý thầy bạn sinh viên để hồn thiện tốt GVHD: ĐINH THỊ THANH HOA TUẤN 1 SVTH: QUANG HUỲNH-MINH CHƯƠNG DẪN NHẬP KHOA ĐIỆN TỬ-TIN HỌC 1.2 CHỌN PHƯƠNG ÁN THIẾT KẾ: 1.2.1 Ưu diểm mạch đếm sản phẩm dùng IC rời : - Cho phép tăng hiệu suất lao động - Đảm bảo độ xác cao - Tần số đáp ứng mạch nhanh, cho phép đếm với tần số cao - Khoảng cách đặt phần phát phần thu xa cho phép đếm sản phẩm lớn - Tổn hao cơng suất bé, mạch sử dụng pin acquy - Khả đếm rộng - Giá thành thấp - Mạch đơn giản dễ thực Với việc sử dụng kỹ thuật số khó đáp ứng việc thay đổi số đếm Muốn thay đổi yêu cầu mạch buộc lòng phải thay đổi phần cứng Do lần phải lắp lại mạch dẫn đến tốn kinh tế mà nhiều u cầu khơng thực phương pháp này.Với phát triển mạnh nghành kỹ thuật số đặc biệt cho đời họ vi xử lí vi điều khiển đa chức việc dùng kỹ thuật vi xử lí, kỹ thuật vi điều khiển giải bế tắc kinh tế mà phương pháp dùng IC rời kết nối lại không thực 1.2.2 Ưu điểm mạch đếm sản phẩm dùng kỹ thuật vi xử lí: Ngoài ưu điểm liệt kê phương pháp dùng IC rời mạch đếm sản phẩm dùng kỹ thuật vi xử lí có ưu điểm sau: GVHD: ĐINH THỊ THANH HOA TUẤN 2 SVTH: QUANG HUỲNH-MINH CHƯƠNG DẪN NHẬP KHOA ĐIỆN TỬ-TIN HỌC - Mạch thay đổi số đếm cách linh hoạt việc thay đổi phần mềm, phần cứng không cần thay đổi mà mạch dùng IC rời khơng thể thực mà thực cứng nhắc mà người cơng nhân khó tiếp cận, dễ nhầm - Số linh kiện sử dụng mạch - Mạch đơn giản so với mạch đếm sản phẩm dùng IC rời có phần cài đặt số đếm ban đầu - Mạch lưu lại số liệu ca sản xuất - Mạch điều khiển đếm nhiều dây chuyền sản xuất lúc phần mềm - Mạch kết nối giao tiếp với máy tính thích hợp cho người quản lí phòng kỹ thuật nắm bắt tình hình sản xuất qua hình máy vi tính Nhưng thiết kế người ta thường chọn phương pháp tối ưu cho kinh tế, chúng em chọn phương pháp đếm sản phẩm dùng kỹ thuật vi điều khiển 1.2.3 Phương pháp đếm sản phẩm dùng vi điều khiển: Ngồi ưu điểm có hai phương pháp trên, phương pháp có ưu điểm : - Trong mạch sử dụng nhớ chương trình có quy mơ nhỏ, tiện lợi mà vi xử lí khơng thực - Nó giao tiếp nối tiếp trực tiếp với máy tính mà vi xử lí giao tiếp với máy tính giao tiếp song song nên cần có linh kiện chuyển đổi liệu từ song song sang nối tiếp để giao tiếp với máy tính 1.3 MỤC ĐÍCH U CẦU CỦA ĐỀ TÀI: GVHD: ĐINH THỊ THANH HOA TUẤN 3 SVTH: QUANG HUỲNH-MINH CHƯƠNG DẪN NHẬP KHOA ĐIỆN TỬ-TIN HỌC Trong đồ án chúng em thực mạch đếm phân loại sản phẩm phương pháp đếm xung Như sản phẩm qua băng chuyền phải có thiết bị để cảm nhận sản phẩm, thiết bị gọi cảm biến Khi sản phẩm qua cảm biến nhận tạo xung điện đưa khối xử lí để tăng dần số đếm đồng tạo xung làm điều kiện để khối phân loại đẩy loại sản phẩm khác vào vị trí yêu cầu Tại thời điểm tức thời, để xác định số đếm cần phải có phận hiển thị.Từ suy mục đích yêu cầu đề tài: - Số đếm phải xác - Bộ phận hiển thị phải rõ ràng - Mạch điện không phức tạp, bảo đảm an tồn,dễ sử dụng - Giá thành khơng q cao 1.4 GIỚI HẠN CỦA ĐỀ TÀI: - Các sản phẩm đa dạng với nhiều chủng loại: đặc, rỗng, kích cỡ cao thấp khác nhau,trong băng truyền đưa sản phẩm có trọng lượng định - Led thu phát hồng ngoại thường bị nhiễu môi trường ánh sáng mạnh,và phạm vi khoảng cách hai led thu phát hạn chế - Đếm số sản phẩm loại phạm vi thay đổi từ đến 99 99 thùng,tổng số sản phẩm tối đa đếm 9999 sản phẩm GVHD: ĐINH THỊ THANH HOA TUẤN 4 SVTH: QUANG HUỲNH-MINH CHƯƠNG : GIỚI THIỆU VỀ PIC 16F877A KHOA ĐIỆN TỬ-TIN HỌC 2.1 TỔNG QUAN VỀ PIC 16F877A: PIC viết tắt “Programable Intelligent Computer”, tạm dịch “máy tính thơng minh khả trình” hãng Genenral Instrument đặt tên cho vi điều khiển họ PIC1650 thiết kế để dùng làm thiết bị ngoại vi cho vi điều khiển CP1600 Vi điều khiển sau hãng Microchip nghiên cứu phát triển thêm từ hình thành nên dòng vi điều khiển PIC ngày Cách phân lọai PIC theo chữ cái: Các họ PIC xxCxxx đưa vào nhóm, gọi OPT (One Time Programmable) : nạp chương trình cho lần Nhóm thứ hai có chữ F LF:chúng ta gọi nhóm nhóm Flash ,nhóm cho phép ghi xóa nhiều lần mạch điện tử thông thường Cách phân lọai PIC theo hai số sản phẩm : - Loại thứ dòng PIC (Base_line), gồm PIC 12Cxxx, có độ dài lệnh 12 bit - Loại thứ hai dòng PIC 10F, 12F , 16F, gọi dòng phổ thơng (Mid Range), có độ dài lệnh 14 bit GVHD: ĐINH THỊ THANH HOA TUẤN 5 SVTH: QUANG HUỲNH-MINH CHƯƠNG : GIỚI THIỆU VỀ PIC 16F877A KHOA ĐIỆN TỬ-TIN HỌC - Loại thứ ba dóng PIC 18F (High End) , độ dài lệnh 16 bit PIC 16F877A dòng PIC phổ biến , đủ mạnh tính năng, nhớ đủ cho ứng dụng thông thường 2.2 VI ĐIỀU KHIỂN PIC16F877A : 2.2.1 Tổ chức phần cứng : Tổ chức phần cứng vi điều khiển thiết kế theo hai kiến trúc: Harvard Von Neumann.Tổ chức phần cứng PIC16F877A thết kế theo kiến trúc Harvard Hình 2.2.1 : Kiến trúc Harvard Von Neumann Trên hình vẽ ta thấy, cấu trúc Von Neumann nhớ chương trình nhớ liệu nằm chung nhớ CPU truy cập vào hai nhớ thông qua bus, thời điểm CPU truy cập vào hai nhớ Đối với cấu trúc Harvard, nhớ liệu nhớ chương trình tổ chức riêng Do đó, thời điểm, CPU tương tác với hai nhớ, tốc độ xử lý vi điều khiển nhanh GVHD: ĐINH THỊ THANH HOA TUẤN 6 SVTH: QUANG HUỲNH-MINH CHƯƠNG : GIỚI THIỆU VỀ PIC 16F877A KHOA ĐIỆN TỬ-TIN HỌC Vì PIC16F877A thiết kế với kiến trúc Harvard nên có tập lệnh rút gọn RISC (reduced instruction set computer) nên tập lệnh PIC16F877A khơng có lệnh nhân, chia mà phép nhân chia thay thực liên tiếp nhiều phép cộng trừ cần lệnh ADD lệnh SUBB đủ 2.2.2 Tính PIC16F877A: Đây vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit Mỗi lệnh thực thi chu kì xung clock Tốc độ hoạt động tối đa cho phép 20 MHz với chu kì lệnh 200ns Bộ nhớ chương trình 8Kx14 bit, nhớ liệu 368 byte RAM nhớ liệu EEPROM với dung lượng 256byte Số PORT I/O với 33 pin I/O - Các đặc tính ngoại vi bao gồm khối chức sau: - Timer0: đếm bit với chia tần số bit - Timer1: đếm 16 bit với chia tần số, thực chức đếm dựa vào -xung clock ngoại vi vi điều khiển hoạt động chế độ sleep - Timer2: đếm bit với chia tần số, postcaler - Hai Capture/so sánh/điều chế độ rông xung - Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI I2C - Chuẩn giao tiếp nối tiếp USART với bit địa - Cổng giao tiếp song song PSP (Parallel Slave Port) với chân điều khiển RD, WR, CS bên ngồi * Các đặc tính Analog: - kênh chuyển đổi ADC 10 bit - Hai so sánh GVHD: ĐINH THỊ THANH HOA TUẤN 7 SVTH: QUANG HUỲNH-MINH CHƯƠNG : GIỚI THIỆU VỀ PIC 16F877A KHOA ĐIỆN TỬ-TIN HỌC -Bên cạnh vài đặc tính khác vi điều khiển như: + Bộ nhớ flash với khả ghi xóa 100.000 lần + Bộ nhớ EEPROM với khả ghi xóa 1.000.000 lần + Dữ liệu nhớ EEPROM lưu trữ 40 năm + Khả tự nạp chương trình với điều khiển phần mềm + Nạp chương trình mạch điện ICSP (In Circuit Serial Programming) thông qua chân + Watchdog Timer với dao động + Chức bảo mật mã chương trình + Chế độ Sleep + Có thể hoạt động với nhiều dạng Oscillator khác GVHD: ĐINH THỊ THANH HOA TUẤN 8 SVTH: QUANG HUỲNH-MINH CHƯƠNG : GIỚI THIỆU VỀ PIC 16F877A KHOA ĐIỆN TỬ-TIN HỌC So sánh PIC với 8051: Chức AT9C51 PIC16F877A Bộ nhớ chương trình 4KB 8K x 14bit Bộ nhớ liệu 128B RAM 368B RAM, 256B EEPROM Port vào/ra port, với 32 chân port, với 33 chân vào/ra vào/ra Bộ định thời 16 bit bit, 16 bit Mạch giao tiếp UART USART giao tiếp song song PSP giao tiếp nối tiếp đồng SSP Capture/sosánh/PWM Khơng có Chuyển đổi tương tự sang số Khơng có 10 bit Tập lệnh 53 lệnh 35 lệnh Ngắt nguồn tạo ngắt 15 nguồn tạo ngắt khơng ưu có ưu tiên tiên 2.2.3 Sơ đồ khối tính chân PIC16F877A: GVHD: ĐINH THỊ THANH HOA TUẤN 9 SVTH: QUANG HUỲNH-MINH CHƯƠNG : GIỚI THIỆU VỀ PIC 16F877A KHOA ĐIỆN TỬ-TIN HỌC 2.2.3.1 Sơ đồ khối : Hình 2.2.2: Sơ đồ khối Pic 16F877A Như nói , vi điều khiển PIC có kiến trúc Harvard, CPU truy cập chương trình liệu hai bus riêng biệt, nên làm tăng đáng kể băng thông so với kiến trúc Von Neumann CPU truy cập chương trình liệu bus GVHD: ĐINH THỊ THANH HOA TUẤN 10 10 SVTH: QUANG HUỲNH-MINH CHƯƠNG 6:TỔNG KẾT KHOA ĐIỆN TỬ-TIN HỌC break; } case giá trị 2: { lệnh 2; break; } … default: { lệnh ; break ; } Biểu thức tính giá trị, giá trị 1, giá trị 2,…là giá trị mà biểu thức có khả nhận Biểu thức nhận giá trị lệnh tương ứng giá trị thực thi Lưu ý lệnh break; có nghĩa khỏi vòng điều khiển (ở cấu trúc switch) Nếu biểu thức không nhận giá trị trùng với giá trị kể lệnh default thực thi 6.1.2.3 CẤU TRÚC FOR Cú pháp: for(biểu thức khởi tạo; biểu thức điều kiện; biểu thức tác động) { lệnh; } GVHD: ĐINH THỊ THANH HOA TUẤN 130 130 SVTH: QUANG HUỲNH-MINH CHƯƠNG 6:TỔNG KẾT KHOA ĐIỆN TỬ-TIN HỌC Ban đầu biểu thức khởi tạo thực thi, biểu thức thực thi lần vào đầu vòng lặp Kế tiếp biểu thức điều kiện thực thi, biểu thức ( khác 0) lệnh thực thi, sau thực thi xong lệnh biểu thức tác động thực thi Các giá trị bị tác động mang vào tính tốn biểu thức điều kiện, điều kiện tthì lệnh thực thi lần Nếu điều kiện sai lệnh khơng thực thi mà khỏi vòng lặp for 6.1.2.4 CẤU TRÚC WHILE Cú pháp: while(biểu thức điều kiện) { lệnh; } Đầu tiên biểu thức điều kiện tính, (khác 0) lệnh thực thi, lệnh cần có lệnh tác động lên biến gây ảnh hưởng đến kết biểu thức điều kiện Sau thực thi xong kiểm tra lại điều kiện Nếu biểu thức điều kiện lệnh thực thi tiếp tục Cấu trúc dùng nhiều CCS tính ngắn gọn Khi điều kiện gán true ta có vòng lặp không điều kiện 6.1.2.5 CẤU TRÚC DO…WHILE Cú pháp { lệnh; } GVHD: ĐINH THỊ THANH HOA TUẤN 131 131 SVTH: QUANG HUỲNH-MINH CHƯƠNG 6:TỔNG KẾT KHOA ĐIỆN TỬ-TIN HỌC while(biểu thức điều kiện); Đầu tiên lệnh thực thi, bất chấp biểu thức điều kiện Sau biểu thức điều kiện tính, khác lệnh tiếp tục thực thi lần Sau lần thực thi lệnh biểu thức điều kiện tính tốn lại Tronhg lệnh phải có lệnh tác động lên biến nhằm gay ảnh hưởng kết biểu thức điều kiện, tránh vòng lặp vơ tận 6.1.3 CÁC HÀM CƠ BẢN 6.1.3.1 DELAY 6.1.3.1.1 Delay Cycles (Count) -Cú pháp :delay_cycles(count) -Tham số : count – số 0~255 -Chức : Tạo code để thực delay số xung lệnh (instruction clock) định trước Một xung lệnh xung dao động -u cầu :khơng -Ví dụ : delay_cycles(25); //Với xung clock dao động 20MHz, chương trình delay 5us 6.1.3.1.2 Delay_ms (time) -Cú pháp: delay_ms(time) -Tham số: time - 0~255 time biến số, 0~65535 time số -Trị trả về: không -Chức năng: Tạo code để thực delay thời gian định trước Thới gian tính milisecond Hàm thực số lệnh nhằm delay thời gian yêu cầu Hàm không sử dụng timer Nếu sử dụng ngắt GVHD: ĐINH THỊ THANH HOA TUẤN 132 132 SVTH: QUANG HUỲNH-MINH CHƯƠNG 6:TỔNG KẾT KHOA ĐIỆN TỬ-TIN HỌC (interupt), thời gian thực lệnh ngắt khơng tính vào thới gian delay -Yêu cầu: #uses delay 6.1.3.1.3) Delay_ us (time) -Cú pháp : delay_us(time) -Tham số: time ~255 time biến số, ~65535 time số -Trị trả : không -Chức năng: Tạo code để thực delay thời gian định trước Thới gian tính microsecond Shorter delays will be INLINE code and longer delays and variable delays are calls to a function Hàm thực số lệnh nhằm delay thời gian yêu cầu Hàm không sử dụng timer Nếu sử dụng ngắt (interupt), thời gian thực lệnh ngắt không tính vào thới gian delay -Yêu cầu: #uses delay 6.1.3.2 ADC 6.1.3.2.1 setup_adc -Cú pháp: setup_adc(mode) -Tham số: mode – mode chuyển đổi Analog Digital bao gồm ADC_OFF : tắt chức sử dụng A/D ADC_CLOCK_INTERNAL : thời gian lấy mẫu clock, clock thời gian clock IC ADC_CLOCK_DIV_2 : thời gian lấy mẫu clock/2 ADC_CLOCK_DIV_8 : thời gian lấy mẫu clock/8 GVHD: ĐINH THỊ THANH HOA TUẤN 133 133 SVTH: QUANG HUỲNH-MINH CHƯƠNG 6:TỔNG KẾT ADC_CLOCK_DIV_32 KHOA ĐIỆN TỬ-TIN HỌC : thời gian lấy mẫu clock/32 -Trị trả :không -Chức :Định cấu hình cho biến đổi A/D -Yêu cầu :các số phải định nghĩa device file PIC16F876.h 6.1.3.2.2 Setup_adc_port() -Cú pháp: setup_adc_ports(value) -Tham số: value – số định nghĩa sau NO_ANALOGS : không sử dụng cổng analog ALL_ANALOG : RA0 RA1 RA2 RA3 RA5 RE0 RE1 RE2 Ref=Vdd ANALOG_RA3_REF : RA0 RA1 RA2 RA5 RE0 RE1 RE2 Ref=RA3 A_ANALOG : RA0 RA1 RA2 RA3 RA5 Ref=Vdd A_ANALOG_RA3_REF : RA0 RA1 RA2 RA5 Ref=RA3 RA0_RA1_RA3_ANALOG : RA0 RA1 RA3 Ref=Vdd RA0_RA1_ANALOG_RA3_REF : RA0 RA1 Ref=RA3 ANALOG_RA3_RA2_REF : RA0 RA1 RA5 RE0 RE1 RE2 Ref=RA2,RA3 ANALOG_NOT_RE1_RE2 : RA0 RA1 RA2 RA3 RA5 RE0 Ref=Vdd ANALOG_NOT_RE1_RE2_REF_RA3 : RA0 RA1 RA2 RA5 RE0 Ref=RA3 GVHD: ĐINH THỊ THANH HOA TUẤN 134 134 SVTH: QUANG HUỲNH-MINH CHƯƠNG 6:TỔNG KẾT KHOA ĐIỆN TỬ-TIN HỌC ANALOG_NOT_RE1_RE2_REF_RA3_RA2 : RA0 RA1 RA5 RE0 Ref=RA2,RA3 A_ANALOG_RA3_RA2_REF : RA0 RA1 RA5 Ref=RA2,RA3 RA0_RA1_ANALOG_RA3_RA2_REF : RA0 RA1 Ref=RA2,RA3 RA0_ANALOG : RA0 RA0_ANALOG_RA3_RA2_REF : RA0 Ref=RA2,RA3 -Trị trả :không -Chức :Xác định cổng dùng để nhận tín hiệu analog -Yêu cầu :các số phải định nghĩa device file PIC16F876.h -Ví dụ : setup_adc_ports(ALL_ANALOG) : dùng tất pins để nhận tín hiệu analog setup_adc_ports(RA0_RA1_RA3_ANALOG) : dùng pin A0, A1 A3 để nhận tín hiệu analog Điện áp nguồn cấp cho IC dùng làm điện áp chuẩn setup_adc_ports(A0_RA1_ANALOGRA3_REF) : dùng pin A0 A1 để nhận tín hiệu analog Điện áp cấp vào pin A3 dùng làm điện áp chuẩn 6.1.3.2.3 Setup_adc_channel() -Cú pháp: setup_adc_channel(chan) -Tham số : chn : 0~7 – chọn pin để lấy tín hiệu -Analog bao gồm : pin A0 : pin A1 : pin A2 GVHD: ĐINH THỊ THANH HOA TUẤN 135 135 SVTH: QUANG HUỲNH-MINH CHƯƠNG 6:TỔNG KẾT : pin A5 : pin E0 : pin E1 : pin E2 KHOA ĐIỆN TỬ-TIN HỌC -Trị trả : không -Chức : Xác định pin để đọc giá trị Analog lệnh READ_ADC() -Yêu cầu : không Value = read_adc() -Cú pháp : value = read_adc() -Tham số : không -Trị trả : 10 bit value = ~255 dùng A/D bit (int) value = ~1023 dùng A/D 10 bit (long int) -Chức : Đọc giá trị Digital từ biến đổi A/D Các hàm setup_adc(), setup_adc_ports() set_adc_channel() phải dùng trước dùng hàm read_adc() Đối với PIC16F877, A/D mặc định bit Để sử dụng A/D 10 bit ta phải dùng thêm lệnh #device PIC16F877 *=16 ADC=10 từ đầu chương trình -Yêu cầu : không 6.1.3.3 Capture compare pwm (ccp) GVHD: ĐINH THỊ THANH HOA TUẤN 136 136 SVTH: QUANG HUỲNH-MINH CHƯƠNG 6:TỔNG KẾT KHOA ĐIỆN TỬ-TIN HỌC Các ngõ PWM: C1 C2 Capture Mode Compare Mode PWM1 PWM2 PWM Mode (Pulse Width Modulation) SET_PWM1_DUTY(value) SET_PWM2_DUTY(value) -Cú pháp : set_pwm1_duty(value) -Tham số : value biến hay số với hay 16 bit -Trị trả : không -Chức : Xác định % thời gian chu kỳ, PWM mức cao -Yêu cầu : khơng -Ví dụ : set_pwm1_duty(512): đặt 50% mức cao (50% duty) Setup_ccp1 Setup_ccp2 -Cú pháp : setup_ccp1(mode) setup_ccp2(mode) -Tham số :mode số sau long CCP_1; GVHD: ĐINH THỊ THANH HOA TUẤN 137 137 SVTH: QUANG HUỲNH-MINH CHƯƠNG 6:TỔNG KẾT #byte CCP_1 KHOA ĐIỆN TỬ-TIN HỌC = 0x15 #byte CCP_1_LOW = 0x15 #byte CCP_1_HIGH = 0x16 #byte CCP_2 = 0x1B #byte CCP_2_LOW = 0x1B #byte CCP_2_HIGH = 0x1C long CCP_2; Tắt CCP CCP_OFF Đặt CCP chế độ capture CCP_CAPTURE_FE : Nhận cạnh xuống xung CCP_CAPTURE_RE : Nhận cạnh lên xung CCP_CAPTURE_DIV_4 : Nhận xung sau xung vào CCP_CAPTURE_DIV_16 : Nhận xung sau 16 xung vào Đặt CCP chế độ compare CCP_COMPARE_SET_ON_MATCH Output high on compare CP_COMPARE_CLR_ON_MATCH Output low on compare CP_COMPARE_INT : Interrupt on compare CCP_COMPARE_RESET_TIMER : Reset timer on compare Đặt CCP chế độ PWM GVHD: ĐINH THỊ THANH HOA TUẤN 138 138 SVTH: QUANG HUỲNH-MINH CHƯƠNG 6:TỔNG KẾT KHOA ĐIỆN TỬ-TIN HỌC CCP_PWM Mở PWM CCP_PWM_PLUS_1 CCP_PWM_PLUS_2 CCP_PWM_PLUS_3 -Trị trả : không -Chức : Khởi động CCP Bộ đếm CCP thực thơng qua vịec sử dụng CCP_1 CCP_2 CCP hoạt động mode Ở capture mode, CCP copy giá trị đếm timer vào CCP_x cổng vào nhận xung Ở compare mode, CCP thực tác vụ định trước timer CCP_x Ở chế độ PWM, CCP tạo xung vuông -Yêu cầu : số phải định nghĩa device file PIC16F876.h 6.1.3.3.1 Setup_timer1() -Cú pháp :setup_timer_1(mode) -Tham số :mode - tham số sau T1_DISABLED : tắt timer1 T1_INTERNAL : xung clock timer1 ¼ xung clock nội IC (OSC/4) T1_EXTERNAL : T1_EXTERNAL_SYNC: T1_CLK_OUT : enable xung clock T1_DIV_BY_1 :65536-(samplingtime(s)/(4/20000000)) timemax=13.1ms GVHD: ĐINH THỊ THANH HOA TUẤN 139 139 SVTH: QUANG HUỲNH-MINH CHƯƠNG 6:TỔNG KẾT KHOA ĐIỆN TỬ-TIN HỌC T1_DIV_BY_2 :65536-(samplingtime(s)/(8/20000000)) timemax=26.2ms T1_DIV_BY_4 :65536-(samplingtime(s)/ (16/20000000))timemax=52.4ms T1_DIV_BY_8 :65536-(samplingtime(s)/(32/20000000)) timemax=104.8ms -Trị trả : không -Chức : Khởi động timer Sau timer ghi hay đọc dùng lệnh set_timer1() hay get_timer1() Timer 16 bit timer Với xung clock 20MHz, timer tăng đơn vị sau 1,6us tràn sau 104,8576ms -Yêu cầu : số phải định nghĩa device file PIC16F876.h 6.1.3.4 interrupts Ext_int_edge -Cú pháp : ext_int_edge(source,edge) -Tham số : source: giá trị mặc định cho PIC16F877 edge: H_TO_L cạnh xuống L_TO_H cạnh lên 5V → 0V 0V → 5V -Trị trả : không -Chức : Qui định thời điểm ngắt tác động: cạnh lên hay xuống -Yêu cầu : số phải định nghĩa device file PIC16F876.h #INT_xxx -Cú pháp : GVHD: ĐINH THỊ THANH HOA TUẤN 140 140 SVTH: QUANG HUỲNH-MINH CHƯƠNG 6:TỔNG KẾT #INT_AD KHOA ĐIỆN TỬ-TIN HỌC Kết thúc biến đổi A/D #INT_BUSCOL Xung đột bus #INT_CCP1 Capture or Compare on unit #INT_CCP2 Capture or Compare on unit #INT_EEPROM #INT_EXT Kết thúc viết vào EEPROM Ngắt #INT_LOWVOLT Low voltage detected #INT_PSP Parallel Slave Port data in #INT_RB Port B any change on B4-B7 #INT_RDA RS232 receive data available #INT_RTCC Timer (RTCC) overflow #INT_SSP SPI or I2C activity #INT_TBE RS232 transmit buffer empty #INT_TIMER1 Timer overflow #INT_TIMER2 Timer overflow - Mục đích : Khởi tạo hàm ngắt Hàm ngắt khơng có tham số Trình biên dịch tạo code để nhảy đến hàm ngắt lệnh ngắt thực Trình biên dịch tạo nên code để lưu trữ trạng thái CPU xóa cờ ngắt Dùng lệnh NOCLEAR sau #INT_xxx để khơng xóa cờ ngắt Trong chương trình , phải dùng lệnh ENABLE_INTERRUPTS(INT_xxxx) với lệnh ENABLE_INTERRUPTS (GLOBAL) để khởi tạo ngắt 6.1.3.4.1 value = get_timer1() GVHD: ĐINH THỊ THANH HOA TUẤN 141 141 SVTH: QUANG HUỲNH-MINH CHƯƠNG 6:TỔNG KẾT KHOA ĐIỆN TỬ-TIN HỌC -Cú pháp : value = get_timer1() -Tham số : không -Trị trả : 16 bit int 0~65535 -Chức : Trả giá trị biến đếm real time clock/counter Khi giá trị timer vượt 65535, value đặt trở lại đếm tiếp tục (…, 65534, 65535, 0, 1, 2, …) -Yêu cầu : không 6.1.3.4.2 Set_timer1() -Cú pháp : set_timer1() -Tham số : 16 bit, value = 0~65535 -Trị trả : không -Chức : Đặt giá trị ban đầu cho real time clock/counter Tất biến đếm tăng Khi giá trị timer vượt 65535, value đặt trở lại đếm tiếp tục (…, 65534, 65535, 0, 1, 2, …) -Yêu cầu : không 6.1.3.4.3 Enabel_interrupts -Cú pháp : enable_interrupts(level) -Tham số : level - số sau GLOBAL INT_RTCC INT_RB INT_EXT GVHD: ĐINH THỊ THANH HOA TUẤN 142 142 SVTH: QUANG HUỲNH-MINH CHƯƠNG 6:TỔNG KẾT KHOA ĐIỆN TỬ-TIN HỌC INT_AD INT_TBE INT_RDA INT_TIMER1 INT_TIMER2 INT_CCP1 INT_CCP2 INT_SSP INT_PSP INT_BUSCOL INT_LOWVOLT INT_EEPROM -Trị trả : không -Chức : Khởi tạo ngắt mức quy định level Một thủ tục ngắt (interrupt procedure) cần định nghĩa Mức toàn cục (GLOBAL level) không khởi tạo ngắt định mà khởi tạo biến ngắt đươc khởi tạo trước -Yêu cầu : phải dùng với #int_xxx 6.2 TÀI LIỆU THAM KHẢO GVHD: ĐINH THỊ THANH HOA TUẤN 143 143 SVTH: QUANG HUỲNH-MINH CHƯƠNG 6:TỔNG KẾT KHOA ĐIỆN TỬ-TIN HỌC Giáo trình VXL Pic16f877a – Biên soạn Thầy Nguyễn Trọng Khanh – Giáo viên trường Cao đẳng kỷ thuật Cao Thắng www.dientuvietnam.net www.picvietnam.com www.alldatasheet.com www.diendandientu.com www.tailieu.vn www.vn-zoom.com GVHD: ĐINH THỊ THANH HOA TUẤN 144 144 SVTH: QUANG HUỲNH-MINH ... QUANG HUỲNH-MINH CHƯƠNG : GIỚI THIỆU VỀ PIC 16F877A KHOA ĐIỆN TỬ-TIN HỌC Hình2.2.13 :Sơ đồ logic tất ngắt PIC16F877A - Ngắt chân INT - Ngắt tràn Timer - Ngắt tràn Timer - Ngắt tràn Timer - Ngắt thay... khiển Các chế độ hoạt động USART là: - Bất đồng song công (full-duplex) - Đồng bộ_ Master bán song công (half-duplex) - Đồng bộ_ Slave bán song công (half-duplex) Hai chân dùng cho này RC7/RX/DT... trạng thái chân Port B - Ngắt so sánh điện - Ngắt Port song song - Ngắt USART - Ngắt nhận liệu - Ngắt truyền liệu GVHD: ĐINH THỊ THANH HOA TUẤN 30 30 SVTH: QUANG HUỲNH-MINH CHƯƠNG : GIỚI THIỆU

Ngày đăng: 16/06/2020, 22:34

Mục lục

  • PWM Mode (Pulse Width Modulation)

  • -Cú pháp : setup_ccp1(mode)

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

Tài liệu liên quan