Ngày nay cùng với sự phát triển của kinh tế xã hội Việt Nam việc đưa robot vào trong các hoạt động sản xuất công nghiệp đã trở nên phổ biến. Tuy nhiên đối với các robot phục vụ trong gia đình, robot giải trí – gọi chung là các robot dịch vụ còn là một lĩnh vực khá mới mẻ và ít được quan tâm. Cùng với sự phát triển của nền kinh tế, đời sống người dân tăng cao, giờ đây các loại máy giặt, máy rửa bát, máy hút bụi xuất hiện ngày càng nhiều trong các gia đình, giúp giải phóng bớt gánh nặng của người phụ nữ. Tuy nhiên với nhịp sống ngày càng nhanh như hiện nay thì việc xuất hiện các robot phục vụ tự động trong gia đình đang trở nên cần thiết hơn. Sự xuất hiện của Robot cleanmate 365 – một robot hút bụi thông minh tại Việt Nam trong những năm gần đây, cho thấy nhu cầu cầu sử dụng robot thông minh trong gia đình không phải là nhỏ, và cho thấy thị trường tiềm năng trong lĩnh vực còn mới mẻ này.
Bên cạnh đó ta cũng thấy ngày càng nhiều cải tiến, nâng cấp trong lĩnh vực vi xử lý. Các bộ vi điều khiển, vi xử lý xuất hiện trên thị trường rất đa dạng, tốc độ xử lý ngày một cao, tính năng hỗ trợ ngày càng mạnh mẽ. Có thể đưa ra đây những cái tên tiêu biểu như các vi điều khiển họ AVR của Atmel, vi điều khiển họ PIC của Microchip, Psoc của Cypress, ARM, và các loại FPGA Đó là điều khiện thuận lợi để phát triển các hệ thống nhúng đa dạng hơn, thông minh hơn.
Trong xu thế cạnh tranh, các hãng phát triển vi mạch cố gắng tăng mật độ tích hợp trên vi mạch ngày càng cao, và hạ giá thành đến mức thấp. Người sử dụng có thể dễ dàng sở hữu một bộ vi xử lý tốc độ cao giá rẻ, các công cụ phát triển, tài liệu liên quan có thể dễ dàng tìm được. Vì vậy giá thành cho sản phẩm cuốI cùng cũng được giảm.
Nhiệm vụ bài khoá luận này là khảo sát tính năng của robot Cleanmate365, từ đó hoàn thiện và phát triển 1 robot có tính năng tương tự như robot Cleamate365, dựa trên vi điều khiển PIC.
67 trang |
Chia sẻ: ngtr9097 | Lượt xem: 2268 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Luận văn Thiết kế, xây dựng một robot có chức năng giống CleanMate 365 của hãng Metapo,USA, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Lời cảm ơn
Trước hết em xin gửi lời cảm ơn chân thành và sâu sắc tới PSG.TS Trần Quang Vinh người đã trực tiếp hướng dẫn, chỉ bảo tận tình và tạo mọi điều kiện tốt nhất để em hoàn thành luận văn này.
Thứ hai em muốn gửi lời cảm ơn đến các thầy cô giáo đã giảng dạy em trong 4 năm học vưa qua.
Thứ ba em cảm ơn gia đình đã nuôi dưỡng và tạo điều kiện học tập tốt nhất cho em.
Và cuối cùng em cảm ơn giúp đỡ và ủng hộ của các bạn trong suốt quá trình học tập.
Sinh viên
Kim Ngọc Bách
Tóm tắt nội dung luận văn
Nội dung của bài luận văn này là về vấn đề tìm hiểu nguyên tắc hoạt động và cấu tạo của robot CleanMate 365 của hãng Metapo,USA. Từ đó thiết kế, xây dựng một robot có chức năng giống CleanMate 365. Sau đó hoàn thiện phát triển thêm các chức năng mới cho robot này
Luận văn bao gồm 6 chương. Chương 1 đặt vấn đề và giới thiệu về Robot Cleanmate 365. Chương 2 là cơ sở lý thuyết về robot di động thông minh. Các chương 3,4,5 là thiết kế chi tiết của robot về cơ khí, điện tử, phần mềm điều khiển. Chương 6 báo cáo về kết quả quá trình xây dựng, hoàn thiện Robot, và đề ra hướng phát triển cho robot.
Phần phụ lục giới thiệu các công cụ sử dụng trong quá trình xây dựng robot và mã nguồn tham khảo của chương trình điều khiển robot.
Mục Lục
Mục Lục 3
Danh Mục Hình Vẽ 4
Danh Mục Bảng Biểu 5
Chương 1: Tổng quan 6
1.1 Đặt vấn đề: 6
1.2 Giới thiệu về Robot Cleamate: 7
Chương 2: Cơ sở lý thuyết về hệ thống robot thông minh 8
2.1 Khái Niệm Về Robot : 8
2.2 Phân Loại Robot : 9
2.3 Các bộ phận của robot di động thông minh : 10
2.4 Các mô hình điều khiển robot: 11
2.4.1 Mô hình kiểu phản xạ : 11
2.4.2 Mô hình “sens – plan – act “ : 11
2.4.3 Mô hình kiểu lai : 11
Chương 3: Thiết kế Robot cleanmate – Phần cơ khí 12
Chương 4: Thiết kế mạch điện tử 14
4.2 Khối điều khiển và giới thiệu PIC16F877A: 14
4.2.1 Hight-performance RISC CPU 15
4.2.2 Các cổng vào ra : 16
4.2.3 Các Khối Timer: 19
4.2.4 Khối PWM: 23
4.2.5 Khối ADC: 24
4.2.6 Khối truyền thông nối tiếp UART: 26
4.2.7 Các tài nguyên của PIC được sử dụng trong việc xây dựng khối điều khiển cho robot: 26
4.3 Khối quản lý nguồn : 28
4.3.1 Khối chuyển đổi nguồn nuôi: 28
4.3.2 Khối ổn áp: 29
4.3.3 Khối nạp Pin: 33
4.4 Hệ thống cảm nhận vật cản: 34
4.5 Hệ thống sensor gầm cảm nhận độ cao: 35
4.6 Cảm nhận sáng tối: 36
4.7 Khối giao tiếp điều khiển từ xa hồng ngoại: 36
4.7.1 Nguyên lý hoạt động: 36
4.7.2 Bộ Phát : 38
4.7.3 Phần thu: 39
4.8 Bàn phím: 40
4.9 Hiển thị LED 7 đoạn và Loa: 42
4.9.1 Hiển thị LED 7 đoạn : 42
4.9.2 Loa : 42
4.10 Mạch điều khiển động cơ : 43
4.10.1 Giới thiệu về mạch cầu H: 43
4.10.2 Điều khiển motor với IC L298: 44
4.10.3 Điều khiển Motor chổi quét: 46
4.11 Thiết kế PCB: 47
4.11.1 Phần mềm thiết kế mạch in PCB DXP Altium Designer: 47
4.11.2 Thiết kế mạch điện trong môi trường Altium Designer: 48
4.11.3 Kết quả và nhận xét: 48
Chương 5: Phần mềm điều khiển Robot. 49
5.1 Lập trình cho hệ thống thời gian thực: 49
5.2 Bài toán di chuyển của robot: 51
5.3 Tránh vật cả và độ cao: 52
5.4 Tìm chỗ sáng: 52
5.5 Chương trình điều khiển robot: 53
5.5.1 Chương trình điều khiển robot: 53
Chương trình điều khiển robot có thể diên tả bằng lưu đồ sau, trong đó. Cleaner là hàm hoạt động của robot, charger là hàm nạp pin. 53
5.5.2 Sơ đồ trạng thái của robot trong quá trình hoạt động: 54
Chương 6: Kết quả thực nghiệm và hướng phát triển của đề tài 55
6.1 Kết quả thực nghiệm: 55
6.2 Hướng phát triển của đề tài: 56
6.2.1 Tìm trạm sạc: 56
6.2.2 Tạo tiếng nói cho robot: 58
6.2.3 Lập trình thời gian biểu: 58
Phụ Lục 59
Danh Mục Hình Vẽ
Hình 1: Robot Cleaner 365 do Hãng Metapo chế tạo 7
Hình 2: Hình Ba bộ phận của robot 10
Hình 3: Mô hình kiểu phản xạ 11
Hình 4: Mô hình tuần tự 11
Hình 5: Mô hình lai 11
Hình 6: Đế Robot nhìn từ trên xuống 12
Hình 7: Đế robot nhìn từ dưới 13
Hình 8: Motor và bánh xe phát động 13
Hình 9: Sơ đồ chân của PIC16F877A 15
Hình 10: Sơ Đồ KhốI PIC16F877A 16
Hình 11: Sơ đồ khối Timer0 20
Hình 12: Sơ đồ khối Timer1 21
Hình 13: sơ đồ khối timer 2 22
Hình 14: sơ đồ khối PWM 23
Hình 15: xung ra từ PWM 23
Hình 16: Sơ đồ khối ADC 25
Hình 17: Sơ đồ đầu đưa điện áp vào. 29
Hình 18: Sơ đồ hệ rơle chọn nguồn 29
Hình 19: sơ đồ ổn áp. 30
Hình 20: Cấu tạo bên trong của LM2576 32
Hình 21: Sơ đồ mạch nguồn cho motor 32
Hình 22: Sơ đồ khối nạp Pin 33
Hình 23: Cách ly quang 34
Hình 24: sơ đồ bộ phận cảm nhận vật cản 35
Hình 25: Sơ đồ điều chế tín hiệu phát 35
Hình 26: sơ đồ ghép nối quang trở 36
Hình 27: Dạng Xung mã hoá Manchester. 37
Hình 28: Khung dữ liệu RC5 khi nhận. 37
Hình 29: Cấu trúc 1 bộ phát hồng ngoại 38
Hình 30: Sơ đồ bộ phát 39
Hình 31: Sơ đồ cấu tạo bên trong của GP1U52X 39
Hình 32: Hình ảnh cảm biến GP1U52X 40
Hình 33: Sơ đồ ghép nối phím bấm với Vi điều khiến 41
Hình 34: Sơ đồ hiển thị LED 7 đoạn 42
Hình 35: Sơ đồ ghép nối loa 42
Hình 36: Sơ đồ nguyên lý và nguyên tắc hoạt động của mạch cầu H. 43
Hình 37: Mạch cầu H được thiết kế với transistor trường MOSFET 44
Hình 38: Sơ đồ chân IC L298 44
Hình 39: Sơ đồ ghép nối với vi điều khiển 45
Hình 40: mô tả IRF540 46
Hình 41: sơ đồ mạch điều khiển motor quét 46
Hình 42: ví dụ về đáp ứng của hệ thống thời gian thực 49
Hình 43: Lưu đồ thuật toán chương trình chính 53
Hình 44: Sơ đồ trạng thái Robot 54
Danh Mục Bảng Biểu
Bảng 1: Cấu hình Cổng A 17
Bảng 2: Cấu hình Cổng B 17
Bảng 3: Cấu hình Cổng C 18
Bảng 4: Cấu hình Cổng D 18
Bảng 5: Cấu hình Cổng E 19
Bảng 6: Cấu hình Presacle Timer0 20
Bảng 7: Cấu hình khối CCP 24
Bảng 8: Cấu hình xung nhịp cho ADC 25
Bảng 9: Mô tả các tài nguyên được sử dụng 28
Bảng 10: Giá trị ADC khi đọc phím bấm 41
Bảng 11: Trạng thái motor 43
Bảng 12: Mô tả IC L298 45
Chương 1: Tổng quan
1.1 Đặt vấn đề:
Ngày nay cùng với sự phát triển của kinh tế xã hội Việt Nam việc đưa robot vào trong các hoạt động sản xuất công nghiệp đã trở nên phổ biến. Tuy nhiên đối với các robot phục vụ trong gia đình, robot giải trí – gọi chung là các robot dịch vụ còn là một lĩnh vực khá mới mẻ và ít được quan tâm. Cùng với sự phát triển của nền kinh tế, đời sống người dân tăng cao, giờ đây các loại máy giặt, máy rửa bát, máy hút bụi xuất hiện ngày càng nhiều trong các gia đình, giúp giải phóng bớt gánh nặng của người phụ nữ. Tuy nhiên với nhịp sống ngày càng nhanh như hiện nay thì việc xuất hiện các robot phục vụ tự động trong gia đình đang trở nên cần thiết hơn. Sự xuất hiện của Robot cleanmate 365 – một robot hút bụi thông minh tại Việt Nam trong những năm gần đây, cho thấy nhu cầu cầu sử dụng robot thông minh trong gia đình không phải là nhỏ, và cho thấy thị trường tiềm năng trong lĩnh vực còn mới mẻ này.
Bên cạnh đó ta cũng thấy ngày càng nhiều cải tiến, nâng cấp trong lĩnh vực vi xử lý. Các bộ vi điều khiển, vi xử lý xuất hiện trên thị trường rất đa dạng, tốc độ xử lý ngày một cao, tính năng hỗ trợ ngày càng mạnh mẽ. Có thể đưa ra đây những cái tên tiêu biểu như các vi điều khiển họ AVR của Atmel, vi điều khiển họ PIC của Microchip, Psoc của Cypress, ARM, và các loại FPGA… Đó là điều khiện thuận lợi để phát triển các hệ thống nhúng đa dạng hơn, thông minh hơn.
Trong xu thế cạnh tranh, các hãng phát triển vi mạch cố gắng tăng mật độ tích hợp trên vi mạch ngày càng cao, và hạ giá thành đến mức thấp. Người sử dụng có thể dễ dàng sở hữu một bộ vi xử lý tốc độ cao giá rẻ, các công cụ phát triển, tài liệu liên quan có thể dễ dàng tìm được. Vì vậy giá thành cho sản phẩm cuốI cùng cũng được giảm.
Nhiệm vụ bài khoá luận này là khảo sát tính năng của robot Cleanmate365, từ đó hoàn thiện và phát triển 1 robot có tính năng tương tự như robot Cleamate365, dựa trên vi điều khiển PIC.
1.2 Giới thiệu về Robot Cleamate:
Cleanmate365 là một robot hút bụi thông minh được chế tạo bởi hãng Metapo, Hoa Kỳ. Không giống như các loại máy hút bụi thông thường, Cleanmate365 thực hiện công việc hút bụi một cách hoàn toàn tự động theo chương trình đã được lập sẵn. Cleanmate thích hợp cho các gia đình và văn phòng có nền nhà gỗ , thảm, đá hoa. Với kích thước nhỏ gọn cleanmate365 có thể di chuyển hết cả phòng, những nơi mà máy hút bụi thông thường không với vào được như gầm giường, gầm ghế…
Được mệnh danh là máy hút bụi thông minh, CleanMate 365 có thiết kế nhỏ gọn với đường kính 36 cm và nặng 2,7kg, bao gồm một cổng hút dài và hệ thống chổi quét lô tròn và chổi quét cạnh, khi di chuyển máy sẽ xới bụi và cổng hút sẽ hút hết bụi bẩn. Chính vì vậy mà động cơ hút bụi không cần có công suất lớn như máy hút bụi thông thường.
Các chức năng nổi bật của Cleanmate365: Điều khiển được từ xa bằng remote control, tự cảm nhận tránh vật cản, làm việc trên bậc cầu thang mà không bị rơi, di chuyển theo 5 dạng quỹ đạo khác nhau.
Robot Cleaner 365 do Hãng Metapo chế tạo
Chương 2: Cơ sở lý thuyết về hệ thống robot thông minh
2.1 Khái Niệm Về Robot :
Nguyên gốc của một từ La Tinh là robota có nghĩa là người tạp dịch. Như vậy mục đích ra đời của robot là thay thế con người làm 1 số công việc nào đó.
Robot hay người máy là một loại máy có thể thực hiện những công việc một cách tự động bằng sự điều khiển của máy tính.
Robot là một tác nhân cơ khí, nhân tạo, ảo, thường là một hệ thống cơ khí-điện tử. Với sự xuất hiện và chuyển động của mình, robot gây cho người ta cảm giác rằng nó giác quan giống như con người. Từ "robot" (người máy) thường được hiểu với hai nghĩa: robot cơ khí và phần mềm tự hoạt động.
Ngày nay, người ta vẫn còn đang tranh cãi về vấn đề: “Một loại máy như thế nào thì đủ tiêu chuẩn để được gọi là một robot?” Một cách gần chính xác, robot phải có một vài (không nhất thiết phải đầy đủ) các đặc điểm sau đây:
Không phải là tự nhiên, tức là do con người sáng tạo ra.
Có khả năng nhận biết môi trường xung quanh.
Có thể tương tác với những vật thể trong môi trường.
Có sự thông minh, có khả năng đưa ra các lựa chọn dựa trên môi trường và được điều khiển một cách tự động theo những trình tự đã được lập trình trước.
Có khả năng điều khiển đuợc bằng các lệnh để có thể thay đổi tùy theo yêu cầu của người sử dụng.
Có thể di chuyển quay hoặc tịnh tiến theo một hay nhiều chiều.
Có sự khéo léo trong vận động.
Sau đây là một số định nghĩa về robot :
Tiêu chuẩn quốc tế ISO 8373 định nghĩa robot như sau: “Đó là một loại máy móc được điều khiển tự động, được lập trình sẵn, sử dụng vào nhiều mục đích khác nhau, có khả năng vận động theo nhiều hơn 3 trục, có thể cố định hoặc di động tùy theo những ứng dụng của nó trong công nghiệp tự động.”
Joseph Engelberger, một người tiên phong trong lĩnh vực robot công nghiệp nhận xét rằng: “Tôi không thể định nghĩa robot, nhưng tôi biết loại máy móc nào là robot khi tôi nhìn thấy nó!!”.
Từ điển Cambridge trực tuyến định nghĩa robot rằng rằng: “Đó là một loại máy có thể thực hiện những công việc một cách tự động bằng sự điều khiển của máy tính”.
Người máy hay Robot là công cụ cơ điện tử, thủy lực, nhân tạo, ảo,... thay thế con người trong công nghiệp hay môi trường nguy hiểm. Robot còn là công cụ để giúp con người giải trí, tìm hiểu khoa học.
Ta có thể thấy định nghĩa về robot là 1 định nghĩa “mở”, nghành công nghiệp robot ngày càng phát triển, con người sẽ được chứng kiến sự ra của nhiều loại robot hơn nữa.
2.2 Phân Loại Robot :
Có rất nhiều định nghĩa cũng như cách phận loại robot. Sau đây là một số cách phân loại robot.
Theo Viện Robotics Hoa Kỳ(Robotics Institute of America - RIA) thì có 4 loại robot như sau:
Robot vân hành với sự điều khiển của con người.
Tự vận hành với chu trình được định trước.
Robot khả trình, điều khiển được với quỹ đạo liên tục
Robot có khả năng tự thu nhận thông tin từ môi trường để đưa ra chuyển động thông minh
Theo Hiệp Hội Robot Nhật Bản :
Robot vận hành với sự điều khiển của con người.
Robot vận hành với trình tự cố định.
Robot vận hành với trình tự được điều khiển đơn giản.
Playback Robot, Robot được lập trình sẵn nhiều cách chuyển động.
Robot điều khiển bằng số với các tác vụ được lập sẵn.
Robot thông minh : có thể tự hiểu được môi trường để hành động hoàn thành tác vụ.
Ngoài ra còn các cách phân loại robot theo hình dáng và chức năng của robot ví dụ như: robot công nghiệp, tay máy, robot giống người, robot mo phỏng động vật …
2.3 Các bộ phận của robot di động thông minh :
Một robot thường bao gồm 3 bộ phận: bộ phận cảm nhận, bộ phận điều khiển và bộ phận chấp hành.
Bộ phận cảm nhận : thu nhận thông tin từ môi trường. Bao gồm các sensor nội và sensor ngoại.
Bộ phận điều khiển : nhận thông tin từ bộ phận cảm nhận từ đó đưa ra tín hiệu điều khiển bộ phận chấp hành. Bao gồm bộ xử lý và bộ nhớ.
Bộ phận chấp hành : thực hiện hành động của robot. Nhận thông tin điều khiển từ bộ phận điều khiển. Trong nhiều trường hợp bộ phận chấp hành nhận thông tin thẳng từ bộ phận cảm nhận.
Cảm nhận
Chấp hành
Điều khiển
(gồm vi xử lý và bộ nhớ)
Robot
PC
Hình Ba bộ phận của robot
2.4 Các mô hình điều khiển robot:
2.4.1 Mô hình kiểu phản xạ :
Mô hình kiểu phản xạ
Mô hình này không có khối điều khiển. Thông tin từ khối cảm nhận được đưa thẳng tới khối chấp hành, từ đó cơ cấu chấp hành hoạt động. Mô hình này có ưu điểm là tốc độ đáp ứng nhanh.
2.4.2 Mô hình “sens – plan – act “ :
Mô hình tuần tự
Ở mô hình này, thông tin của môi trường được cảm nhận. Thông tin này được truyền tới bộ phận điều khiển, bộ phận điều khiển sẽ phân tích và từ đó đưa ra thông tin điều khiển tới bộ phận chấp hành. Mô hình này có tốc độ đáp ứng chậm.
2.4.3 Mô hình kiểu lai :
Mô hình lai
Mô hình này là mô hình kết hợp giữa 2 kiểu mô hình trên.
Mô hình lai bao gồm nhiều cặp “cảm nhận – châp hành” hoạt động như mô hình phản xạ, tốc độ đáp ứng khá nhanh. Bên cạnh đó có 1 khối điều khiển lập kế hoạch cho toàn bộ tác vụ của robot.
Chương 3: Thiết kế Robot cleanmate – Phần cơ khí
Robot bao gồm :
Đế hình tròn bằng nhựa mica đường kính 38 cm.
Hộp hút bụi: chổi quét, hộp đựng rác, nắp đậy. Chổi quét hoạt động bởi 1 động cơ chổi than.
Vành dò vật cản: là 1 vành tròn uốn bằng nhôm, lắp phía trước robot.
Bánh xe phát động: tiện bằng nhự có vành cao su, đường kính 7cm. Cặp động cơ phát động là 2 động cơ chổi than có sô vòng quay là 100 vòng / phút.
Đế Robot nhìn từ trên xuống
Đế robot nhìn từ dưới
Motor và bánh xe phát động
Chương 4: Thiết kế mạch điện tử
4.1 Tổng quan về mạch điện tử :
Mạch điện tử bao gồm các khối lớn sau:
Khối nguồn:
Nguồn lấy từ ăcquy (khi robot hoạt động), điện lưới thông qua adapter (khi robot sạc pin).
Khối nạp ăcquy.
Khối nguồn cho các động cơ.
Khối nguồn cho vi điều khiển, sensor.
Khối giao tiếp:
Bàn phím.
Đèn hiển thị, LED 7 đoạn.
Loa.
Mắt đọc hồng ngoại.
Khối cảm biến:
Cảm biến cảm nhận độ cao.
Cảm biến dò vật cản phía trước.
Mạch công suất: Mạch điều khiển động cơ.
Khối điều khiển trung tâm: Sử dụng vi điều khiển PIC16F877A của hãng Microchip.
4.2 Khối điều khiển và giới thiệu PIC16F877A:
Vi điều khiển được sử dụng trong robot là PIC16F877A do hãng Microchip sản xuất. Các vi điều khiển thuộc dòng PIC tỏ ra rất ổn định, các khối chức năng được hỗ trợ đầy đủ và giúp người dùng tiết kiệm thời gian thiết kế mạch cũng như lập trình. Hiện nay các loại vi điều khiển dòng PIC được sử dụng rất nhiều trong công nghiệp. Tiêu biểu nhất trong dòng vi điều khiển cấp trung của họ PIC là 16F877A.
Sơ đồ chân của PIC16F877A
4.2.1 Hight-performance RISC CPU
Cấu trúc tập lệnh đơn giản: 35 lệnh đơn.
CPU thiết kế theo kiến trúc RISC.
Tần số hoạt động lớn nhất: DC – 20MHz.
Flash Program Memory: 8K x 14 words.
Data Memory (RAM) : 368 x 8 bytes.
EEPROM Data Memory: 256 x 8 bytes.
Nạp chương trình và sửa lỗi onboard.
Chế tạo theo công nghệ CMOS.
Hỗ trợ nhiều tính năng mạnh mẽ
Sơ Đồ KhốI PIC16F877A
4.2.2 Các cổng vào ra :
Vi điều khiển PIC16F877A có 5 cổng vào ra bao gồm:A, B, C, D, E. Trong đó:
Cổng A:
Vào ra 6 bit, có định hướng. Khai báo định hướng vào ra ở thanh ghi TRISA. Nếu bit TRISAx=1 thì chân RAx sẽ được đinh nghĩa là lối vào và ngược lại.
Thanh ghi lưu trạng thái các chân của cổng A là thanh ghi PORTA.
Chân RA4 của cổng A được có thể được sử dụng để đưa dao động đầu vào cho Timer0 (T0CKI).
Các chân còn lại của cổng A có thể được khai báo để được dùng như lối vào tương tự. Các thanh ghi liên quan ADCON0, ADCON1.
Cấu hình Cổng A
Cổng B:
Vào ra số có độ rộng 8bit, có định hướng. Khai báo định hướng vào ra ở thanh ghi TRISB. Nếu bit TRISBx=1 thì chân RBx sẽ được đinh nghĩa là lối vào và ngược lại.
Thanh ghi lưu trạng thái các chân của cổng B là thanh ghi PORTB
3 chân của cổng B là : RB3,RB6,RB7 còn được sử dụng làm chân lập trình PGM, PGC,PGD.
4 chân từ RB7:RB4 có ngắt on-change.
Cấu hình Cổng B
Cổng C :
Vào ra số có độ rộng 8bit, có định hướng. Khai báo định hướng vào ra ở thanh ghi TRISC. Nếu bit TRISCx=1 thì chân RCx sẽ được đinh nghĩa là lối vào và ngược lại.
Thanh ghi lưu trạng thái các chân của cổng C là thanh ghi PORTC.
Các chân của cổng C đều có bộ đệm triger smitt.
Cổng C còn được sử dụng cho 1 số khối chức năng khác.
Cấu hình Cổng C
Cổng D :
Vào ra số có độ rộng 8bit, có định hướng. Khai báo định hướng vào ra ở thanh ghi TRISD. Nếu bit TRISDx=1 thì chân RDx sẽ được đinh nghĩa là lối vào và ngược lại.
Thanh ghi lưu trạng thái các chân của cổng D là thanh ghi PORTD.
Cấu hình Cổng D
Cổng E :
Cổng E chỉ có 3 chân vào ra, có bộ đệm triger smitt.
Cổng E có thể được dùng như lối vào ra số hoặc tương tự. Thiết lập tại các thanh ghi TRISE, ADCON1.
Cấu hình Cổng E
4.2.3 Các Khối Timer:
Vi điều khiển PIC16F877A có 3 bộ timer:
Timer0:
Là bộ đếm 8bit, có thể ghi đọc.
Timer0 có 2 chế độ hoạt động là : định thời hoặc đếm.
Khi hoạt động Timer đếm tiến từ giá trị được ghi trong thanh ghi TMR0 đến 256. Khi đếm đến 256 cờ tràn TMR0IF sẽ đc bật lên.
Time = (FOSC/4) x Prescale x ( 256 – TMR0 )
Bit T0CS : chọn nguồn dao động cho Timer0
=1 nguồn dao động được đưa vào từ chân T0CKI.(Chế độ đếm)
=0 nguồn dao động hệ thống
Bit T0SE : Ở chế độ đếm, chọn sườn xung
=1 sườn xuống.
=0 sườn lên.
Bit PSA : Chọn prescale
=1 prescale được dùng cho watchdog.
=0 prescale được dùng cho timer0.
Bit PS2:PS0 : chọn tỉ lệ chia cho Prescale
Cấu hình Presacle Timer0
Sơ đồ khối Timer0
Timer1:
Sơ đồ khối Timer1
Là bộ đếm 16 bit, có thể ghi đọc. Giá trị timer được lưu trong 2 thanh ghi là TMR1L và TMR1H.
Khác với timer0, timer1 có bit bật và tắt timer.
Timer1 có thể được dùng để đinh thờI cho khối CPP.
Khi Timer 1 được bật, timer sẽ đếm từ giá trị được ghi trong 2 thanh ghi TMR1L và TMR1H tới 0xFFFF, khi đó cờ tràn TMR1IF được bật.
Time = (FOSC/4) x Prescale x ( 0xFFFF – (( TMR1H x 0xFFFF ) + TMR1L)).
Bit T1OSCEN: Chọn nguồn dao động
=1: sử dụng dao động ngoài.
=0: sử dụng nguồn dao động hệ thống.
Bit TMR1CS=1 timer1 hoạt động như bộ đếm, xung vào từ chân RC1.
Bit TMR1ON: bật tắt timer1.
=1 Bật.
=0 Tắt.
Bit T1CKPS1: T1CKPS0 : Chọn số chia cho prescale.
0:0 chia 1
0:1 chia 2
1:0 chia 4
1:1 chia 8
Timer2:
sơ đồ khối timer 2
Là bộ đếm 16 bit, có thể ghi đọc. Giá trị timer được lưu trong 2 thanh ghi là TMR1L và TMR1H.
Timer2 có bit bật và tắt timer.
Timer1 có thể được dùng để đinh thời cho khối PWM.
Khi Timer 1 được bật, timer sẽ đếm từ giá trị được ghi trong 2 thanh ghi TMR2L và TMR2H tới 0xFFFF, khi đó cờ tràn TMR2IF được bật.
Timer 2 có cả prescale lẫn postscale.
Các bit TOUTPS3: TOUTPS0 : Chọn thỉ lệ chia cho postscale.
TMR2ON : bit bật tắt timer2.
T2CKPS1: T2CKPS1 : Chọn tỉ lệ cho prescale.
4.2.4 Khối PWM:
PIC16F877A có 2 khốI PWM nằm trong 2 khối CCP
sơ đồ khối PWM
Độ rộng xung là dữ liệu 10 bit được lưu trong 2 thanh ghi CCPR1L và OCPCON
Chu kì được quyết định bởI giá trị ghi trong thanh ghi PR2 và Timer2.
PWM period = [( PR2 + 1 ) x 4 x TOSC x ( TMR2 prescale