Chương 1: Giới thiệu chung GVHD: TS Huỳnh Thái Hoàng muốn phân loại vải thì cần phân loại về kích thước và màu sắc, về nước uống (như bia, nước ngọt) cần phân loại theo chiều cao, khối lượng, phân loại xe theo chiều dài, khối lượng, phân loại gạch granite theo hình ảnh v.v… Mỗi cách phân loại có một ưu nhược điểm riêng và điều đó còn tùy thuộc vào sản phẩm cần phân loại. Ở trong luận văn này em sẽ trình bày phương pháp phân loại sản phẩm theo chiều dài. Phương pháp này có ưu điểm là đơn giản, không tốn nhiều không gian, ít thiết bị nên giá thành rẻ. Tuy nhiên phương pháp này có nhược điểm là phụ thuộc vào tốc độ của băng tải (tốc độ động cơ).
Tốc độ của động cơ phải không đổi (bằng hằng số) thì việc đo khoảng thời gian mà chiều dài vật đi qua mới chính xác được. Vì thế để điều khiển tốc độ của động cơ để băng tải chạy theo một vận tốc cố định, không cần biết trên băng tải có vật hay không là một yêu cầu cấp thiết. Và để làm được điều này, ta phải điều khiển tốc độ của động cơ theo phương pháp vòng kín, hồi tiếp xung encoder đưa về để ổn định tốc độ của động cơ. Nhận thấy thực tiễn đó, nay trong luận văn này, em sẽ làm một mô hình rất nhỏ nhưng có chức năng gần như tương tự ngoài thực tế.
Đó là: tạo ra một dây chuyền băng tải để vận chuyển sản phẩm, phân loại sản phẩm theo kích thước đã được đặt trước. Số lượng sản phẩm cần phân loại phụ thuộc vào phần cứng và cách lập trình, cho nên trong luận văn này em sẽ phân loại khoảng 3 sản phẩm (chiều dài 3 sản phẩm chính là 8cm, 10cm và 12cm). Trên thành băng tải đặt 4 cặp cảm biến: cặp đầu tiên là để đo chiều dài của vật đi qua (quy ra xung mức cao hay thấp tùy theo cách lập trình). Ba cặp còn lại là cảm biến phát hiện vật để phân loại.
Mỗi khi vật đi qua cảm biến phát hiện vật thì bị solenoid đá (nếu đó là sản phẩm chính) và bộ đếm sản phẩm sẽ ngay lập tức làm việc, màn hình LCD đặt trên thành băng tải có chức năng hiển thị số lượng sản phẩm đồng thời trên máy tính cũng thực hiện chức năng tương tự. Khi vật đi qua không phải là sản phẩm chính thì nó sẽ đi thẳng ra ngoài vào chỗ chứa phế phẩm. Ở đầu vào chứa sản phẩm hỗn hợp có một vách ngăn để ngăn sản phẩm không rớt xuống băng tải liên tục mà phải theo một thời gian nhất định. Loại băng tải sử dụng là loại dùng trong thực phẩm.
SVTH: Nguyễn Minh Hòa 2 Chương 2: Giới thiệu thiết bị GVHD: TS Huỳnh Thái Hoàng CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ 2. Vi xử lý: Sử dụng vi điều khiển PIC dòng 16F877A của Microchip. Giới thiệu chung: PIC là tên viết tắt của “máy tính thông minh khả trình” (Programmable Intelligent Computer) do hãng General Instrucment đặt tên cho con vi điều khiển đầu tiên của họ: PIC1650. Hãng microchip (http://www.com) tiếp tục phát triển sản phẩm này.
Cho đến nay, các sản phẩm vi điều khiển PIC của microchip đã gần 100 sản phẩm từ họ 10Fxxx đến các họ 12Cxxx, 12Fxxx, 16Cxx, 17Cxx, 16Fxx, 16Fxxx, 16LFxxxA, 18Fxxx, 18LFxxx, 18Fxxxx, 18LFxxxx… Cách phân lọai PIC theo chữ cái: Các họ PIC xxCxxx được đưa vào một nhóm, gọi là nhóm OTP (One Time Programmable): chúng chỉ được nạp chương trình một lần duy nhất. Nhóm thứ hai có chữ cái F hoặc LF: nhóm này là nhóm Flash, nhóm này cho phép ghi xóa nhiều lần bằng các mạch điện tử thông thường. Cách phân loại theo hai con số đầu tiên của sản phẩm: Loại thứ nhất là dòng PIC cơ bản (Base-Line), gồm có: 12Cxxx, có độ dài lệnh là 12 bit. Loại thứ hai là các dòng PIC 10F, 12F và 16F gọi là dòng phổ thông (Mid-Range) có độ dài lệnh là 14 bit.
Loại thứ ba là dòng PIC 18 (High-End) có độ dài lệnh là 16 bit. SVTH: Nguyễn Minh Hòa 3 Chương 2: Giới thiệu thiết bị GVHD: TS Huỳnh Thái Hoàng 2. Thông tin về PIC 16F877: Program Memory Type Flash.5 Port 5 Interrupt 15 nguồn High-current sink/source 25 mA/25 mA Digital Communication Peripherals 1-A/E/USART, 1-MSSP Các tính năng nổi bật: Chế độ tiết kiệm năng lượng (Sleep Mode) Nạp chương trình bằng cổng nối tiếp (In Circuit Serial Programming): nguồn dao động lập trình. PWM: 2 chế độ, 10bit.
Chế tạo bằng công nghệ CMOS. 35 tập lệnh có độ dài 14 bit. Tần số hoạt động tối đa 20MHz. SVTH: Nguyễn Minh Hòa 4 Chương 2: Giới thiệu thiết bị GVHD: TS Huỳnh Thái Hoàng 2.
Sơ lược về các chân của 16F877: PIC 16F877 là họ vi điều khiển có 40 chân, mỗi chân có 1 chức năng khác nhau. Trong đó có một số chân đa công dụng (đa hợp): mỗi chân có thể hoạt động như một đường xuất nhập (I/O) hoặc là một chân chức năng đặc biệt dùng để giao tiếp với các thiết bị ngoại vi. ¾ Chân nguồn/mass (11, 32 / 12, 31) : Vận hành với nguồn từ 2V đến 5. Chân nguồn (VDD): 2 chân 11 và 32 nối với nhau lên nguồn.
Chân mass (VSS): 2 chân 12 và 31 nối với nhau xuống mass. Lưu ý: cả 4 chân này phải được nối với nguồn và mass thì PIC mới hoạt động. SVTH: Nguyễn Minh Hòa 5 Chương 2: Giới thiệu thiết bị GVHD: TS Huỳnh Thái Hoàng ¾ Chân MCLR (1) Master Clear: VCC R9 10k SW9 RESET RESET C8 10UF Ngõ vào MCLR (RESET) trên chân số 1. Khi đưa MCLR xuống thấp, các thanh ghi bên trong VĐK sẽ được tải những giá trị thích hợp để khởi động lại hệ thống.
¾ Cặp chân dao động OSC1 & OSC2: C1 15p Y1 20MHZ C3 15p Là 2 chân cung cấp dao động cho VĐK. Có 4 chế độ dao động khác nhau: LP: Low Power Crystal. XT: Crystal/Resonator. HS: High Speed Crystal/ Resonator.
RC: Resistor/Capacitor. Modes Frequency OSC1/C1 OSC2/C2 LP 32 kHz 68-100pF 68-100pF 200 kHz 15-33pF 15-33pF XT 100 kHz 100-150pF 100-150pF 2 MHz 15-33pF 15-33pF 4 MHz 15-33pF 15-33pF HS 4 MHz 15-33pF 15-33pF 20 MHz 15-33pF 15-33pF SVTH: Nguyễn Minh Hòa 6 Chương 2: Giới thiệu thiết bị GVHD: TS Huỳnh Thái Hoàng Đối với một số ứng dụng mà độ chính xác của thời gian không quan trọng thì dao động RC đưa lựa chọn như một giải pháp tiết kiệm. Tần số dao động đuộc xác đọnh bởi giá trị của điện trở R và tụ C. ¾ Các Port và thanh ghi TRIS tương ứng: Mỗi chân trong Port có một chức năng khác nhau, trong đó có một số chân đa công dụng.
Mỗi chân có thể hoạt động như một đường xuất nhập (I/O) hoặc là chân có chức năng đặc biệt dùng để giao tiếp với các thiết bị ngoại vi. Port A và thanh ghi TRIS_A: Gồm 6 chân (2 đến 7) từ RA0 - RA5. Việc ghi các giá trị vào thanh ghi TRIS_A sẽ quy định các chân của Port A là input hay output. Nếu là 0 là output, 1 là input.
Ví dụ: Set_tris_a (0x00) // cho Port A là output. Set_tris_a (0xFF) // cho Port A là input. Việc đọc thanh ghi Port A sẽ đọc trạng thái các chân của Port A. Việc ghi giá trị vào thanh ghi Port A sẽ thay đổi trạng thái của các chân Port A.
Riêng chân RA4 được tích hợp thêm chức năng là chân cung cấp xung clock ngoài cho Timer 0 (T0CKI). Những chân khác của PortA được đa hợp với các chân ngõ vào Analog của ADC và chân ngõ vào điện thế so sánh của bộ so sánh (comparator). Hoạt động của những chân này được quy định bằng những bit tương ứng trong thanh ghi ADCCON1 và CMCON1. Khi các chân của PortA được sử dụng là ngõ vào Analog thì các bit của thanh ghi TRIS_A phải luôn bằng 1.
Chức năng các chân của Port A SVTH: Nguyễn Minh Hòa 7 Chương 2: Giới thiệu thiết bị GVHD: TS Huỳnh Thái Hoàng Bảng tóm tắt các thanh ghi liên quan đến PortA Port B và thanh ghi TRIS_B: Port B gồm 8 chân (33 đến 40) từ RB0 - RB7. Việc ghi các giá trị vào thanh ghi TRIS_B sẽ quy định các chân của Port B là input hay output. Nếu là 0 là output, 1 là input. Việc đọc thanh ghi Port B sẽ đọc trạng thái các chân của Port B.
Việc ghi giá trị vào thanh ghi Port B sẽ thay đổi trạng thái ngõ ra của các chân Port B. Ba chân của Port B được đa hợp với chức năng In-Circuit Debugger và Low VoltagecProgramming: RB5/KBI1/PGM, RB6/KBI2/PGC, RB7/KBI3/PGD. Trong đó 2 chân RB6, RB7 còn dùng để nạp chương trình cho PIC. VCC J8 RESET 1 2 RB7 3 RB6 4 5 CON5 CARD NAP Mỗi chân của Port B có một transistor kéo lên nguồn, chức năng này hoạt động khi bit RBPU (OPTION<7>) được xóa.
Chức năng này sẽ tự động tắt khi chân Port được quy định là input. Bốn chân RB7-RB4 còn có chức năng ngắt (interrupt) khi trạng thái chân Port thay đổi (khi chân Port được quy định là output thì chức năng ngắt không hoạt động). Giá trị chân Port được so sánh với giá trị được lưu lại trước đó. Khi có trạng thái sai lệch giữa hai giá trị này, ngắt sẽ xảy ra với cờ ngắt RBIF SVTH: Nguyễn Minh Hòa 8 Chương 2: Giới thiệu thiết bị GVHD: TS Huỳnh Thái Hoàng INTCON<0>được bật lên.
Ngắt có thể làm cho VĐK thoát khỏi trạng thái “SLEEP”. Bất cứ một hoạt động truy xuất nào trên Port B sẽ xóa trạng thái sai lệch, kết thúc ngắt và cho phép xóa cờ RBIF. Chức năng các chân của Port B Bảng tóm tắt các thanh ghi liên quan đến PortB Port C và thanh ghi TRIS_C: Port C gồm 8 chân (15-18 và 23-26)từ RC0 - RC7. Việc ghi các giá trị vào thanh ghi TRIS_C sẽ quy định các chân của Port C là input hay output.
Nếu là 0 là output, 1 là input. Việc đọc thanh ghi Port C sẽ đọc trạng thái các chân của Port C. Việc ghi giá trị vào thanh ghi Port C sẽ thay đổi trạng thái ngõ ra của các chân Port C. Các chân Port C được đa hợp với các chức năng ngoại vi.
SVTH: Nguyễn Minh Hòa 9 Chương 2: Giới thiệu thiết bị GVHD: TS Huỳnh Thái Hoàng Khi các hàm chức năng ngoại vi được cho phép, ta cần quan tâm chặt chẽ tới các giá trị bit của thanh ghi TRIS_C. Một số chức năng ngoại vi sẽ ghi các giá trị 0 đè lên các bit của thanh ghi TRIS_C và mặc định các chân này là output, ngoài ra một số chức năng ngoại vi khác sẽ tự động mặc định các chân là ngõ vào. Do đó ta phải xem xét kỹ các tính năng của các hàm ngoại vi để thiết lập giá trị cho thanh ghi TRIS_C được chính xác.