Phân loại sản phẩm tự động sử dụng Vi điều khiển PIC16F877A Microchip

Phân loại sản phẩm dùng Vi điều khiển PIC16F877A: Tìm hiểu cách thiết kế hệ thống phân loại sản phẩm hiệu quả, ứng dụng PIC16F877A. Hướng dẫn chi tiết!

Người đăng

Ẩn danh

Thể loại

luận văn
65
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

1. CHƯƠNG 1: GIỚI THIỆU CHUNG

2. CHƯƠNG 2: GIỚI THIỆU THIẾT BỊ

2.1. Vi xử lý: Sử dụng vi điều khiển PIC dòng 16F877A của Microchip

2.2. Thông tin về PIC 16F877

2.3. Sơ lược về các chân của 16F877

2.4. Các Port và thanh ghi TRIS tương ứng

2.5. Các thanh ghi chức năng đặc biệt

2.6. Ngắt

Tóm tắt

I. Tổng Quan về Phân Loại Sản Phẩm Dùng PIC16F877A

Ngày nay, quá trình công nghiệp hóa, hiện đại hóa diễn ra mạnh mẽ, kéo theo sự phát triển của các khu công nghiệp và khu chế xuất. Điều này thúc đẩy nhu cầu về các dây chuyền sản xuất lớn và hiệu quả, đặc biệt là các hệ thống băng tải vận chuyển sản phẩm. Trong đó, việc phân loại sản phẩm đóng vai trò quan trọng để đảm bảo chất lượng và năng suất. Trước đây, công việc này thường được thực hiện thủ công, đòi hỏi sự tập trung cao và dễ dẫn đến sai sót. Do đó, sự ra đời của hệ thống tự động phân loại sản phẩm là một tất yếu. Có nhiều phương pháp phân loại sản phẩm khác nhau, chẳng hạn như theo kích thước, màu sắc, trọng lượng, hình ảnh, v.v… Mỗi phương pháp có ưu và nhược điểm riêng, phù hợp với từng loại sản phẩm cụ thể. Luận văn này trình bày phương pháp phân loại sản phẩm theo chiều dài, một phương pháp đơn giản, tiết kiệm chi phí và không gian. Tuy nhiên, phương pháp này có một nhược điểm là phụ thuộc vào tốc độ của băng tải, đòi hỏi tốc độ động cơ phải ổn định. Chính vì vậy, việc điều khiển tốc độ động cơ theo phương pháp vòng kín, hồi tiếp xung encoder là rất quan trọng. Mô hình này tạo ra một dây chuyền băng tải nhỏ, có khả năng phân loại sản phẩm theo kích thước đặt trước, với số lượng sản phẩm phân loại phụ thuộc vào phần cứng và phần mềm. Các sản phẩm được phân loại với kích thước 8cm, 10cm và 12cm. Hệ thống sử dụng cảm biến để đo chiều dài, solenoid để đẩy sản phẩm vào đúng vị trí, bộ đếm sản phẩm và màn hình LCD để hiển thị số lượng. Vách ngăn ở đầu vào giúp đảm bảo sản phẩm không rơi xuống băng tải liên tục. Băng tải được làm từ vật liệu an toàn cho thực phẩm.

1.1. Tại Sao Cần Hệ Thống Phân Loại Sản Phẩm Tự Động

Trước đây, công việc phân loại sản phẩm thường được thực hiện thủ công bởi công nhân. Họ dựa vào kinh nghiệm và quan sát bằng mắt thường để phân loại sản phẩm đạt yêu cầu và loại bỏ phế phẩm. Tuy nhiên, phương pháp này có nhiều hạn chế. Công việc đòi hỏi sự tập trung cao và lặp đi lặp lại, dễ dẫn đến mệt mỏi và sai sót. Điều này ảnh hưởng trực tiếp đến chất lượng sản phẩm và uy tín của nhà sản xuất. Hệ thống tự động phân loại sản phẩm ra đời để giải quyết những hạn chế này. Nó giúp tăng năng suất, giảm thiểu sai sót và đảm bảo chất lượng sản phẩm ổn định. Theo tài liệu gốc: "Khi ngành công nghiệp chưa được phát triển, công việc này do con người đảm nhận bằng mắt thường, bằng kinh nghiệm và sự ghi nhớ... các công nhân khó đảm bảo được sự chính xác trong công việc."

1.2. Các Phương Pháp Phân Loại Sản Phẩm Phổ Biến Hiện Nay

Có rất nhiều phương pháp phân loại sản phẩm khác nhau, tùy thuộc vào đặc tính của sản phẩm và yêu cầu của quy trình sản xuất. Một số phương pháp phổ biến bao gồm: phân loại theo chiều dài (kích thước), phân loại theo màu sắc, phân loại theo khối lượng, phân loại theo chiều cao, phân loại theo hình ảnh, v.v… Mỗi phương pháp có ưu và nhược điểm riêng. Ví dụ, phân loại theo kích thước đơn giản và tiết kiệm chi phí, nhưng có thể không phù hợp với các sản phẩm có hình dạng phức tạp. Phân loại theo màu sắc thường được sử dụng trong ngành dệt may, trong khi phân loại theo khối lượng quan trọng trong ngành thực phẩm và đồ uống. Việc lựa chọn phương pháp phân loại sản phẩm phù hợp phụ thuộc vào nhiều yếu tố, bao gồm loại sản phẩm, yêu cầu về độ chính xác, chi phí và không gian lắp đặt.

II. Giới Thiệu Vi Điều Khiển PIC16F877A Cho Sản Xuất

PIC16F877A là một vi điều khiển phổ biến của Microchip, được sử dụng rộng rãi trong nhiều ứng dụng, bao gồm cả hệ thống phân loại sản phẩm. PIC là viết tắt của "Programmable Intelligent Computer". Vi điều khiển này có nhiều tính năng ưu việt, như bộ nhớ Flash, khả năng giao tiếp ngoại vi đa dạng và chế độ tiết kiệm năng lượng. PIC16F877A có 40 chân, mỗi chân có một chức năng khác nhau, bao gồm cả các chân I/O, chân nguồn, chân dao động và chân chức năng đặc biệt. Việc cấu hình và sử dụng các chân này thông qua các thanh ghi điều khiển rất quan trọng để đảm bảo vi điều khiển hoạt động đúng theo yêu cầu. Theo tài liệu gốc: "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."

2.1. Các Tính Năng Nổi Bật Của Vi Điều Khiển PIC16F877A

PIC16F877A sở hữu nhiều tính năng nổi bật, khiến nó trở thành lựa chọn lý tưởng cho các ứng dụng nhúng. Một số tính năng quan trọng bao gồm: Bộ nhớ Flash cho phép ghi xóa nhiều lần, giúp dễ dàng cập nhật và sửa đổi chương trình. Chế độ tiết kiệm năng lượng (Sleep Mode) giúp giảm thiểu mức tiêu thụ điện năng. Khả năng nạp chương trình bằng cổng nối tiếp (In Circuit Serial Programming) giúp đơn giản hóa quá trình phát triển và gỡ lỗi. Hỗ trợ PWM với 2 chế độ, 10bit, phù hợp cho điều khiển động cơ. Tần số hoạt động tối đa 20MHz. 35 tập lệnh có độ dài 14 bit. Các cổng giao tiếp số như USART, MSSP (Master Synchronous Serial Port). Ngoài ra còn có 5 Port (A, B, C, D, E) cung cấp khả năng kết nối linh hoạt với các thiết bị ngoại vi.

2.2. Tổng Quan về Các Chân và Port của PIC16F877A

PIC16F877A có 40 chân, được chia thành 5 port: Port A, Port B, Port C, Port D và Port E. Mỗi port có một số chân I/O (Input/Output) có thể được cấu hình làm ngõ vào hoặc ngõ ra. Việc ghi các giá trị vào thanh ghi TRIS tương ứng (TRISA, TRISB, TRISC, TRISD, TRISE) sẽ quy định các chân của port là input hay output (0 là output, 1 là input). Port B có tính năng ngắt khi trạng thái chân Port thay đổi (RB7-RB4), rất hữu ích cho việc phát hiện sự kiện và kích hoạt các hành động tương ứng. Port D có thể hoạt động như một cổng song song bằng cách xét bit PSPMODE. Việc hiểu rõ chức năng của từng chân và port là rất quan trọng để thiết kế và lập trình hệ thống.

2.3. Cách Tổ Chức Bộ Nhớ trong Vi Điều Khiển PIC16F877A

Bộ nhớ chương trình của PIC16F877A có dung lượng 8K, được chia thành 8 trang. Vector Reset được đặt ở địa chỉ 0000h và vector ngắt ngoại vi được đặt ở địa chỉ 0004h. Bộ nhớ dữ liệu bao gồm 4 bank (Bank0-Bank3), mỗi bank có dung lượng 128 byte. Các bank này được lựa chọn bằng bit RP0 và bit RP1 ở thanh ghi Status. Mỗi Bank bao gồm vùng RAM đa mục đích và vùng các thanh ghi chức năng đặc biệt SFRs (Special Function Registers). Thanh ghi trạng thái (STATUS Register) chứa các trạng thái số học của bộ ALU, trạng thái RESET và Bit chọn Bank của bộ nhớ dữ liệu. Thanh ghi tùy chọn (OPTION Register) chứa các bit điều khiển để cấu hình cho các chức năng như ngắt ngoài, Timer0, chức năng kéo lên nguồn của các chân trong PortB, thời gian chờ của WDT. Việc quản lý bộ nhớ hiệu quả là yếu tố quan trọng để tối ưu hóa hiệu năng của chương trình.

III. Phương Pháp Thiết Kế Mạch Phân Loại Sản Phẩm Với PIC16F877A

Để thiết kế mạch phân loại sản phẩm sử dụng PIC16F877A, cần xem xét nhiều yếu tố, bao gồm lựa chọn cảm biến, thiết kế mạch điều khiển động cơ, thiết kế mạch giao tiếp và lập trình phần mềm. Cảm biến quang thường được sử dụng để phát hiện sự hiện diện và kích thước của sản phẩm. Mạch điều khiển động cơ cần đảm bảo tốc độ băng tải ổn định để đảm bảo độ chính xác của quá trình phân loại. Mạch giao tiếp UART (Universal Asynchronous Receiver/Transmitter) cho phép truyền dữ liệu giữa vi điều khiển và máy tính. Theo tài liệu gốc: "Đây là một dây chuyền băng tải dành cho thực phẩm để vận chuyển, phân loại sản phẩm theo kích thước đã được đặt trước... Trên thành băng tải đặt 4 cặp cảm biến..."

3.1. Lựa Chọn Cảm Biến Thích Hợp để Đo Kích Thước Sản Phẩm

Trong hệ thống phân loại sản phẩm theo chiều dài, việc lựa chọn cảm biến phù hợp đóng vai trò then chốt. Cảm biến quang (quang trở) là một lựa chọn phổ biến vì tính đơn giản và chi phí thấp. Quang trở có điện trở thay đổi theo độ sáng, giúp phát hiện sự hiện diện của sản phẩm. Mạch cảm biến đo chiều dài vật cần được thiết kế sao cho khi có sản phẩm đi qua, quang trở bị che, tạo ra một xung mức cao. Độ dài của xung này tỷ lệ thuận với chiều dài của sản phẩm. Để đảm bảo độ chính xác, cần hiệu chỉnh cường độ dẫn hoặc tắt của quang trở thông qua biến trở. Cảm biến cần được đặt ở vị trí phù hợp và bề mặt quang trở phải sạch sẽ và hướng thẳng vào nguồn sáng.

3.2. Điều Khiển Động Cơ DC Servo Để Duy Trì Tốc Độ Băng Tải Ổn Định

Để đảm bảo quá trình phân loại sản phẩm diễn ra chính xác, tốc độ băng tải cần được duy trì ổn định. Động cơ DC servo là một lựa chọn tốt vì khả năng điều khiển tốc độ chính xác. Phương pháp điều khiển vòng kín, điều chế PWM (Pulse Width Modulation) thường được sử dụng để điều khiển tốc độ động cơ. Encoder gắn trên động cơ cung cấp thông tin phản hồi về tốc độ thực tế. Vi điều khiển so sánh tốc độ đặt (giá trị mong muốn) với tốc độ thực tế và điều chỉnh độ rộng xung PWM để hiệu chỉnh tốc độ động cơ. Mạch driver động cơ dùng MOSFET có thể được sử dụng để khuếch đại tín hiệu điều khiển từ vi điều khiển.

3.3. Thiết Kế Mạch Giao Tiếp UART Để Truyền Dữ Liệu Lên Máy Tính

Để quản lý và giám sát quá trình phân loại sản phẩm, việc truyền dữ liệu lên máy tính là rất quan trọng. Giao tiếp UART (Universal Asynchronous Receiver/Transmitter) là một phương pháp phổ biến để truyền dữ liệu nối tiếp giữa vi điều khiển và máy tính. IC MAX232 được sử dụng để chuyển đổi mức logic từ TTL (Transistor-Transistor Logic) của vi điều khiển sang mức logic RS232 của cổng COM trên máy tính và ngược lại. Phần mềm trên máy tính, ví dụ như Visual Basic 6.0, có thể được sử dụng để tạo giao diện và hiển thị dữ liệu. Tuy nhiên, cần lưu ý rằng giao tiếp RS232 có tốc độ truyền nhận không cao và khoảng cách truyền ngắn.

IV. Ứng Dụng Phần Mềm Visual Basic 6

Visual Basic 6.0 (VB6) là một công cụ lập trình mạnh mẽ và dễ sử dụng, cho phép người dùng tạo các ứng dụng Windows một cách nhanh chóng. Trong hệ thống phân loại sản phẩm, VB6 có thể được sử dụng để tạo giao diện người dùng, hiển thị dữ liệu, điều khiển các thiết bị ngoại vi và quản lý cơ sở dữ liệu. VB6 cung cấp nhiều tính năng và công cụ hỗ trợ, giúp đơn giản hóa quá trình phát triển phần mềm. Theo tài liệu gốc: "Visual Basic 6.0 (VB6) là một phiên bản của bộ công cụ lập trình Visual Basic (VB), cho phép người dùng tiếp cận nhanh cách thức lập trình trên môi trường Windows."

4.1. Các Thành Phần và Thuộc Tính Quan Trọng Trong VB6

Trong VB6, đối tượng MSComm được sử dụng để giao tiếp với cổng nối tiếp. Các thuộc tính quan trọng của đối tượng MSComm bao gồm: CommPort (số cổng truyền thông), PortOpen (trạng thái đóng/mở cổng), Settings (tham số truyền), Input (nhận dữ liệu), Output (phát dữ liệu), InputLen (số byte cần đọc). Quá trình điều khiển sự kiện OnComm là phương pháp tốt nhất trong quá trình điều khiển việc trao đổi thông tin. Quá trình điều khiển bằng phương pháp hỏi vòng thực hiện thông qua kiểm tra các giá trị của thuộc tính CommEvent sau một chu kỳ nào đó. Cần thiết lập đúng các tham số truyền (tốc độ, kiểm tra chẵn lẻ, số bit dữ liệu, số bit stop) để đảm bảo giao tiếp thành công.

4.2. Xây Dựng Giao Diện Người Dùng Để Hiển Thị Dữ Liệu

VB6 cho phép tạo giao diện người dùng trực quan và dễ sử dụng. Các thành phần giao diện như Label, TextBox, Button, ListBox có thể được sử dụng để hiển thị dữ liệu, nhập thông tin và điều khiển hệ thống. Dữ liệu từ vi điều khiển có thể được hiển thị trên giao diện, bao gồm số lượng sản phẩm đã phân loại, trạng thái hoạt động của hệ thống và các thông báo lỗi. Các nút điều khiển có thể được sử dụng để khởi động, dừng và thiết lập các tham số của hệ thống.

V. Mô Hình Thực Tế Kết Quả Nghiên Cứu Phân Loại

Việc xây dựng mô hình thực tế là bước quan trọng để kiểm chứng tính khả thi và hiệu quả của hệ thống phân loại sản phẩm đã thiết kế. Mô hình cần bao gồm đầy đủ các thành phần chính, như băng tải, cảm biến, vi điều khiển, mạch điều khiển và cơ cấu chấp hành. Quá trình thử nghiệm và đánh giá cần được thực hiện cẩn thận để xác định các vấn đề và cải thiện hiệu năng của hệ thống.

5.1. Sơ Đồ Khối Chức Năng Nguyên Lý Hoạt Động Chi Tiết

Sơ đồ khối mô tả mối quan hệ giữa các thành phần chính trong hệ thống, bao gồm cảm biến, vi điều khiển, mạch điều khiển động cơ, mạch giao tiếp và cơ cấu chấp hành (ví dụ: solenoid). Nguyên lý hoạt động mô tả cách hệ thống thực hiện quá trình phân loại sản phẩm. Sản phẩm di chuyển trên băng tải, cảm biến phát hiện và đo kích thước. Vi điều khiển xử lý dữ liệu từ cảm biến và điều khiển cơ cấu chấp hành để phân loại sản phẩm vào các vị trí tương ứng. Quá trình đếm số lượng sản phẩm cũng được thực hiện và hiển thị trên màn hình LCD.

5.2. Các Linh Kiện Modul Phần Cứng Sử Dụng Trong Mô Hình

Danh sách các linh kiện và modul phần cứng cần được liệt kê chi tiết, bao gồm: Vi điều khiển PIC16F877A, cảm biến quang, động cơ DC servo, mạch driver động cơ MOSFET, mạch giao tiếp MAX232, màn hình LCD, solenoid, relay, điện trở, tụ điện, diode, transistor... Thông số kỹ thuật của từng linh kiện cũng cần được ghi rõ để đảm bảo tính chính xác và khả năng thay thế khi cần thiết.

VI. Kết Luận và Hướng Phát Triển Phân Loại Sản Phẩm

Hệ thống phân loại sản phẩm sử dụng PIC16F877A là một giải pháp hiệu quả để tự động hóa quá trình phân loại, tăng năng suất và giảm thiểu sai sót. Phương pháp này có thể được áp dụng rộng rãi trong nhiều ngành công nghiệp, đặc biệt là ngành thực phẩm và đồ uống. Tuy nhiên, vẫn còn nhiều hướng phát triển để cải thiện hiệu năng và tính linh hoạt của hệ thống. Theo tài liệu gốc, “Trong luận văn này em sử dụng ngắt PortB và ngắt USART, sử dụng 3 chân của PortB xử lý ngắt để đếm sản phẩm và truyền lên máy tính.”

6.1. Đánh Giá Ưu Nhược Điểm Của Giải Pháp Phân Loại Dùng PIC

Ưu điểm: Chi phí thấp, dễ thiết kế và lập trình, khả năng tùy biến cao. Nhược điểm: Tốc độ xử lý có thể hạn chế, phụ thuộc vào tốc độ băng tải, độ chính xác có thể bị ảnh hưởng bởi các yếu tố môi trường.

6.2. Hướng Nghiên Cứu Phát Triển Hệ Thống Phân Loại Tương Lai

Sử dụng các cảm biến tiên tiến hơn (ví dụ: cảm biến hình ảnh) để phân loại sản phẩm theo nhiều tiêu chí khác nhau. Tích hợp các thuật toán thông minh (ví dụ: trí tuệ nhân tạo) để tăng độ chính xác và khả năng thích ứng của hệ thống. Sử dụng các giao thức truyền thông tốc độ cao (ví dụ: Ethernet) để truyền dữ liệu và điều khiển hệ thống từ xa. Xây dựng hệ thống phân loại sản phẩm linh hoạt, có khả năng thay đổi cấu hình và chức năng một cách dễ dàng.

22/09/2025

Trích đoạn nội dung tài liệu

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.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ