Điều khiển tốc độ động cơ điện một chiều

Với sự phát triển rộng rãi của thiết bị điện, ngày nay, người người, nhà nhà hầu hết đã sử dụng các công nghệ hiện đại. Và khi mức sống của người dân được nâng cao thì việc quản lý các thiết bị điện trong nhà là hết sức cần thiết. Chính vì vậy việc điều khiển thiết bị và giám sát hoạt động của nó thông qua một quá trình tự động là việc làm mang nhiều lợi ích. Đề tài thực hiện việc điều khiển thông qua vi điều khiển PIC16F887A, chính vì vậy đề tài nghiên cứu sâu về việc ổn định tốc độ động cơ điện một chiều. Trong giới hạn thời gian nghiên cứu cho phép, đề tài chỉ phát triển một hệ thống điều khiển đơn giản. Các thiết bị được giám sát và điều khiển tiêu tốn rất ít năng lượng sẽ mang lại lợi ích kinh tế và hiệu quả sử dụng cao. Nội dung của đồ án gồm: Chương 1: Động cơ điện 1 chiều Chương 2: Giới thiệu về vi điều khiển PIC 16F887A Chương 3:Thiết kế và thi công phần cứng Chương 4: Thiết kế phần mềm Phương pháp nghiên cứu của đồ án là tính toán thiết kế mạch, xây dựng các lưu đồ thuật toán và thi công lắp ráp để kiểm chứng tính đúng đắn của thiết kế và các lưu đồ thuật toán đã xây dựng. Với phương pháp trên, đồ án đã được thiết kế và thi công thành công. Vì thời gian chuẩn bị không nhiều cùng với kiến thức còn hạn hẹp, đồ án không tránh khỏi những sai sót, chúng em rất mong nhận được ý kiến đóng góp của các thầy cô trong khoa, chúng em xin chân thành cảm ơn.

pdf55 trang | Chia sẻ: lvbuiluyen | Lượt xem: 3638 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Điều khiển tốc độ động cơ điện một chiều, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Lời cảm ơn Lời cảm ơn Với sự giúp đỡ tận tình của các thầy cô trong khoa Điện tự động hóa Trường Cao Đẳng Công Nghệ Đại học Đà Nẵng cùng với người thân, gia đình và bạn bè, chúng em đã hoàn thành đồ án theo đúng thời gian quy định. Để đạt được thành công này, chúng em xin chân thành cảm ơn thầy giáo Phó giáo sư-Tiến sĩ Đoàn Quang Vinh, người đã luôn theo dõi, chỉ bảo tận tình cho em trong suốt thời gian thực hiện đề tài, người đã đóng góp ý kiến và hướng dẫn em hoàn thành đồ án. Bên cạnh đó, em cũng xin chân thành cảm ơn đến các thầy cô giáo trong khoa Điện tử động đã tận tình dạy dỗ chúng em trong những năm học vừa qua. Cuối cùng, chúng em xin gởi lời cảm ơn chân thành đến gia đình, bạn bè đã giúp đỡ em hoàn thành đồ án này. Chúng em xin chân thành cảm ơn. Đà Nẵng, ngày 10 tháng 06 năm 2010 Sinh viên thực hiện Trần Nguyễn Quốc Huy Phan Hoàng Anh Nguyễn Đức Ba Nguyễn Tấn Thạch Lời cam đoan Cộng hòa xã hội chủ nghĩa Việt Nam Độc lập – Tự do – Hạnh phúc Lời cam đoan Kính gởi: Hội đồng bảo vệ tốt nghiệp khoa Điện tự động – Trường Cao Đẳng Công Nghệ – Đại học Đà Nẵng. Em tên là: Trần Nguyễn Quốc Huy Phan Hoàng Anh Nguyễn Đức Ba Nguyễn Tấn Thạch Đang là sinh viên lớp 08LTĐ – Khoa Điện tự động – Trường Cao Đẳng Công Nghệ – Đại học Đà Nẵng. Hiện nay chúng em làm đồ án tốt nghiệp với đề tài “Điều khiển tốc độ động cơ điện một chiều ”. Chúng em xin cam đoan nội dung đồ án hoàn toàn không giống với bất kỳ đồ án hoặc công trình nào đã có trước đó. Đà Nẵng, ngày 10 tháng 06 năm 2010 Sinh viên thực hiện Trần Nguyễn Quốc Huy Phan Hoàng Anh Nguyễn Đức Ba Nguyễn Tấn Thạch Mục lục MỤC LỤC Chương 1: Động cơ điện một chiều................................................................1 1.1. Giới thiệu chương ................................................................................1 1.2. Nội dung ..............................................................................................1 1.2.1 Giới thiệu động cơ DC...................................................................1 1.2.2 Mô hình hóa động cơ DC...............................................................1 1.2.3 Phương pháp điều khiển tốc độ động cơ:.......................................3 1.2.4 Khảo sát hàm truyền......................................................................4 1.2.4.1 Hàm truyền lý tưởng:.............................................................4 1.2.4.2 Hàm truyền gần đúng tìm được bằng thực nghiệm.................5 1.2.5 Phương pháp ổn định động cơ dùng thuật toán PID.......................6 1.2.5.1 Thuật toán PID.......................................................................6 1.2.5.2 Phương pháp hiệu chỉnh thông số bộ PID Ziegler-Nichols:....7 1.3. Kết chương ..........................................................................................8 Chương 2 : Giới thiệu vi điều khiển PIC16F887............................................9 1.4. Giới thiệu chương ................................................................................9 1.5. Nội dung ..............................................................................................9 2.2.1 Một vài chi tiết chính của vi điều khiển PIC16F887......................9 2.2.2 Bộ dao động của PIC16F887.......................................................11 2.2.3 Các Port I/O.................................................................................12 2.2.4 Hoạt động của khối giao tiếp EUSART.......................................13 2.2.5 Cấu tạo và hoạt động của khối điều xung PWM..........................15 2.2.6 Ngắt ngoài trên chân RB0............................................................17 2.2.7 Cấu tạo và hoạt động của bộ Timer1............................................18 Mục lục 2.2.8 Cách nạp cho PIC16F887............................................................18 1.6. Kết chương ........................................................................................20 Chương 3: Thiết kế và thi công phần cứng...................................................21 1.7. Mở chương ........................................................................................21 1.8. Nội dung ............................................................................................21 3.2.1 Sơ đồ khối phần cứng..................................................................21 3.2.2 Sơ đồ nguyên lý và hoạt động của các khối mạch........................22 3.2.3 Tính toán các thông số của mạch.................................................24 3.2.3.1 Mạch đảo chiều động cơ.......................................................24 3.2.3.2 Tính toán cho FET................................................................25 3.2.3.3 Tính toán mạch lái cho FET..................................................27 3.3.4 Layout và thi công mạch..............................................................30 1.9. Kết chương ........................................................................................31 Chương 4 : Thiết kế phần mềm....................................................................32 1.10. Mở chương ......................................................................................32 1.11. Nội dung ..........................................................................................32 4.2.1 Phần mềm cho vi điều khiển PIC16F887.....................................32 4.2.1.1 Thuật toán chương trình chính..............................................32 4.2.1.2 Thuật toán chương trình xử lý phím......................................35 4.2.1.3 Thuật toán chương trình đo tốc độ động cơ..........................38 4.2.1.4 Thuật toán chương trình phục vụ ngắt nhận UART..............40 4.2.2 Phần mềm trên máy vi tính giao tiếp với mạch điều khiển..........42 1.12. Kết luận chương ...............................................................................47 1.13. Nhận xét đánh giá hệ thống ............................................................47 Mục lục 1.14. Hướng phát triển đề tài ....................................................................47 ......................................................................................................................48 Các từ viết tắt CÁC TỪ VIẾT TẮT PID Proportional–Integral–Derivative DC Direct Current PWM Pulse Width Modulation EEPROM Electrically Erasable Programmable Read Only Memory ADC Analog Digital Converter USART Universal Synchronous Synchronous Asynchronous Receiver Transmitter MUX Multiplexer MCU Microcontroller Unit GPIO General Purpose Input Ourput EUSART Enhanced Universal Synchronous Asynchronous Receiver Transmitter LCD Liquid Crystal Display FET Field-Effect Transistor BJT Bipolar Junction Transistor MOSFET Metal Oxide Semiconductor Field-Effect Transistor UART Universal Asynchronous Receiver Transmitter Mở đầu Mở đầu Với sự phát triển rộng rãi của thiết bị điện, ngày nay, người người, nhà nhà hầu hết đã sử dụng các công nghệ hiện đại. Và khi mức sống của người dân được nâng cao thì việc quản lý các thiết bị điện trong nhà là hết sức cần thiết. Chính vì vậy việc điều khiển thiết bị và giám sát hoạt động của nó thông qua một quá trình tự động là việc làm mang nhiều lợi ích. Đề tài thực hiện việc điều khiển thông qua vi điều khiển PIC16F887A, chính vì vậy đề tài nghiên cứu sâu về việc ổn định tốc độ động cơ điện một chiều. Trong giới hạn thời gian nghiên cứu cho phép, đề tài chỉ phát triển một hệ thống điều khiển đơn giản. Các thiết bị được giám sát và điều khiển tiêu tốn rất ít năng lượng sẽ mang lại lợi ích kinh tế và hiệu quả sử dụng cao. Nội dung của đồ án gồm: Chương 1: Động cơ điện 1 chiều Chương 2: Giới thiệu về vi điều khiển PIC 16F887A Chương 3:Thiết kế và thi công phần cứng Chương 4: Thiết kế phần mềm Phương pháp nghiên cứu của đồ án là tính toán thiết kế mạch, xây dựng các lưu đồ thuật toán và thi công lắp ráp để kiểm chứng tính đúng đắn của thiết kế và các lưu đồ thuật toán đã xây dựng. Với phương pháp trên, đồ án đã được thiết kế và thi công thành công. Vì thời gian chuẩn bị không nhiều cùng với kiến thức còn hạn hẹp, đồ án không tránh khỏi những sai sót, chúng em rất mong nhận được ý kiến đóng góp của các thầy cô trong khoa, chúng em xin chân thành cảm ơn. Đà Nẵng, ngày 10 tháng 06 năm 2010 Sinh viên thực hiện Trần Nguyễn Quốc Huy Phan Hoàng Anh Nguyễn Đức Ba Nguyễn Tấn Thạch Chương 1: Động cơ điện một chiều Chương 1: Động cơ điện một chiều 1.1. Giới thiệu chương Chương này giới thiệu cơ bản về động cơ DC, các phương pháp điều khiển tốc độ động cơ và phương pháp ổn định tốc độ động cơ dùng thuật toán PID. 1.2. Nội dung 1.2.1 Giới thiệu động cơ DC Động cơ điện một chiều là động cơ điện hoạt động với dòng điện một chiều. Động cơ điện một chiều ứng dụng rộng rãi trong các ứng dụng dân dụng cũng như công nghiệp. Cấu tạo của động cơ gồm có 2 phần: stato đứng yên và rôto quay so với stato. Phần cảm (phần kích từ-thường đặt trên stato) tạo ra từ trường đi trong mạch từ, xuyên qua các vòng dây quấn của phần ứng (thường đặt trên rôto). Khi có dòng điện chạy trong mạch phần ứng, các thanh dẫn phần ứng sẽ chịu tác động bởi các lực điện từ theo phương tiếp tuyến với mặt trụ rôto, làm cho rôto quay. Tùy theo cách mắc cuộn dây roto và stato mà người ta có các loại động cơ sau: - Động cơ kích từ độc lập: Cuộn dây kích từ (cuộn dây stato) và cuộn dây phần ứng (roto) mắc riêng rẽ nhau, có thể cấp nguồn riêng biệt. - Động cơ kích từ nối tiếp: Cuộn dây kích từ mắc nối tiếp với cuộn dây phần ứng. Đối với loại động cơ kích từ độc lập, người ta có thể thay thế cuộn dây kích từ bởi nam châm vỉnh cữu, khi đó ta có loại động cơ điện 1 chiều dùng nam châm vĩnh cữu. Đây là loại động cơ được sử dụng trong đồ án này. 1.2.2 Mô hình hóa động cơ DC Mô hình tương đương của phần ứng động cơ như sau: Trang 1 Chương 1: Động cơ điện một chiều A - + 1 2 R a L a E g U a I a g a aaaa edt diLiRu ++= (1.1) nke vg Φ= (1.2) Trong đó Φ là từ thông do nam châm vĩnh cữu gây ra. n là tốc độ động cơ. Momen điện từ: Td = Kt Φia (1.3) Phương trình của động cơ: Ld TBdt dJT ++= ωω (1.4) B: hệ số ma sát T: monen tải. Ở chế độ xác lập: gaaa eiRu += (1.5) atLd iKTnBT Φ=+= pi2 (1.6) Ta có được tốc độ động cơ ở chế độ xác lập: Φ − = v aaa K RIU n (1.7) Trang 2 Chương 1: Động cơ điện một chiều 1.2.3 Phương pháp điều khiển tốc độ động cơ: Đối với loại động cơ kích từ độc lập dùng nam châm vĩnh cữu, để thay đổi tốc độ, ta thay đổi điện áp cung cấp cho roto. Việc cấp áp 1 chiều thay đổi thường khó khăn, do vậy người ta dùng phương pháp điều xung (PWM): Hình 1.1 Điều chỉnh độ rộng xung PWM. Phương pháp điều xung sẽ giữ tần số không đổi, thay đổi chu kì nhiệm vụ (Duty cycle) để thay đổi điện áp trung bình đặt lên động cơ. Điện áp trung bình: in on dk VT TV = Do đặc tính cảm kháng của động cơ, dòng qua động cơ là dòng liên tục, gợn sóng như sau: Hình 1.2 Dạng sóng dòng và áp trên động cơ. Trang 3 Chương 1: Động cơ điện một chiều 1.2.4 Khảo sát hàm truyền 1.2.4.1 Hàm truyền lý tưởng: Biến đổi Laplace các công thức từ (1.1) – (1.4 ) ta được: Ua(p) = RaIa(p)+pLaIa(p)+Eg(p) (1.9) )()( pnkpE vg Φ= (1.10) Td(p) = Kt ΦIa(p) (1.11) )()(2)(2)( pTpBnppJnpT Ld ++= pipi (1.12) Từ 1.12 tính được: )1(2 )()()( + − = m Ld pB pTpTpn τpi (1.13) (1.14) Trong đó: aτ =La/Ra Hằng số thời gian của mạch phần ứng mτ =J/B Hằng số thời gian cơ. Vậy ta có mô hình hệ thống như sau: Hình 1.3 Mô hình hệ thống động cơ điện DC Khi momen tải bằng 0, ta có: Φ+++ Φ = vma t a a Kpp K BRpUpn )1)(1(2 1)()( ττ pi Vậy hàm truyền của động cơ lúc này có dạng khâu dao động. Trang 4 Chương 1: Động cơ điện một chiều 1.2.4.2 Hàm truyền gần đúng tìm được bằng thực nghiệm Để tìm hàm truyền bằng thực nghiệm ta tìm đáp ứng xung của động cơ. Ta đặt áp bằng áp định mức vào động cơ và vẽ đồ thị vận tốc theo thời gian. Vì thời gian lấy mẫu vận tốc nhỏ do đó ta không thấy được các điểm uốn của đồ thị, do đó ở đây ta xấp xỉ hàm truyền động cơ là khâu quán tính bậc 1 có dạng như sau. 1+ = Tp kG Đáp ứng xung của động cơ: n(p)= pTp kU )1( + Biến đổi Laplace ngược ta được: n=kU(1-e-t/T) Khi t = T, n = kU(1-e-1)=0.63kU=0.63nmax Vậy trên đồ thị ta xác định điểm tại đó n=0.63nmax sau đó tìm được T. Dựa vào đồ thị tìm được bằng thực nghiệm ta tìm được kU và T. Hình 1.4 Đồ thị tìm được bằng thực nghiệm của động cơ DC kU = 150 vòng/s T = 30ms=0.03s Trang 5 Chương 1: Động cơ điện một chiều Vậy hàm truyền gần đúng: 103.0 5.37 103.0 24/150 1 + = + = + = ppTp kG 1.2.5 Phương pháp ổn định động cơ dùng thuật toán PID 1.2.5.1 Thuật toán PID τ τ ττ d deKdeKKG dip )()( ++= ∫ Trong đó: - Kp: Hệ số khâu tỉ lệ (khâu khuếch đại) - Ki: Hệ số tích phân - Kd: hệ số vi phân Hình 1.5 Mô hình hệ thống PID.  Luật điều khiển PID: Đáp ứng của hệ thống Thời gian tăng Vọt lố Thời gian ổn định Sai lệch so với trạng thái bền KP Giảm Tăng Ít thay đổi Giảm KI Giảm Tăng Tăng Triệt tiêu KD Ít thay đổi Giảm Giảm Ít thay đổi Bảng 1.1 Luật điều khiển PID Dựa vào bảng trên ta thấy rằng luật tỉ lệ (P) có đặc điểm tác động nhanh nhưng không triệt tiêu được sai lệch, đồng thời làm vọt lố của hệ thống tăng. Khâu tích phân cho phép triệt tiêu sai lệch nhưng tác động chậm. Khâu vi phân phản ứng Trang 6 Chương 1: Động cơ điện một chiều với tốc độ biến thiên của sai lệch. Ta cần xác định các thông số Kp, Ki, Kd để được hệ thống có chất lượng mong muốn.  Thuật toán của bộ điều khiển PID số: Khâu tỉ lệ P (Proportional): GP(z) = KP Khâu tích phân I (Integrate): 11 1)( − − = z TKzG II với ∫ ∑ = = kT k n nTTedtte 0 0 )()( Trong đó T là chu kì lấy mẫu vận tốc. Công thức tích phân gần đúng theo thuật toán xấp xỉ hình chữ nhật tới. Khâu vi phân D (Derivative): )1(1)( 1−−=−= zKTz zKzG dDD với thành phần vi phân xấp xỉ bởi T TnenTe dt tde ))1(()()( −− = Vậy ta được hàm truyền khâu PID rời rạc: )1( 1 1 )( )( 1 1 − − −+ − +== zK z KK zE zUG dipdk Udk(z)(1-z-1) = E(z)(Kp(1-z-1) + Ki + Kd(1-z-1)2 Suy ra: uk – uk-1 = Kp(ek – ek-1) + Kiek + Kd(ek – 2ek-1 – ek-2) 1.2.5.2 Phương pháp hiệu chỉnh thông số bộ PID Ziegler-Nichols: Thông thường việc chọn các thông số P, I, D được xác định bằng thực nghiệm dựa vào đáp ứng xung của hệ thống. Ziegler – Nichols đưa ra phương pháp chọn tham số PID cho mô hình quán tính bậc nhất có trễ. Ở đây ta xấp xỉ hàm truyền của động cơ để dùng phương pháp này, tuy không hoàn toàn chính xác nhưng có thể cho đáp ứng tương đối tốt. Phương pháp này đỏi hỏi phải tính được giá trị giới hạn của của khâu tỉ lệ Kgh và chu kì giới hạn của hệ kín Tgh. Sau đó tìm các thông số khác theo bảng sau: Bộ điều khiển KP TI TD P 0.5·Kgh - - PI 0.45·Kgh 0.83·Tgh - Trang 7 Chương 1: Động cơ điện một chiều PID 0.6·Kgh 0.5·Tgh 0.125·Tgh Bảng 1.2 Các giá trị thông dụng của các hệ số KP, KI, KD. Để tìm được Kgh và Tgh, ban đầu ta chỉnh Ki, Kd bằng 0 sau đó tăng từ từ Kp để hệ thống ở biên giới ổn định (dao động với biên độ và chu kì không đổi), tại đây ta xác định được Kgh và Tgh sau đó tính các thông số khác tùy theo bộ điều khiển như bảng trên. Ki = Kp/Ti Kd = KxTd Để thuận tiện trong quá trình điều chỉnh và quan sát đáp ứng của động cơ, đồ án này đã xây dựng chương trình viết bằng VB trên máy tính để giao tiếp với mạch điều khiển. Phần này sẽ được giới thiệu trong chương 4. 1.3. Kết chương Chương này đã giới thiệu cơ sở lý thuyết về động cơ, phương pháp điều khiển động cơ và thuật toán điều khiển PID. Chương tới sẽ giới thiệu vi điều khiển PIC16F887, trong đề tài này PIC16F887 được sử dụng làm khối điều khiển trung tâm, điều khiển động cơ dùng thuật toán PID và giao tiếp với máy tính theo chuẩn giao tiếp RS232 cho phép người sử dụng giám sát trạng thái của động cơ. Trang 8 Chương 2: Giới thiệu vi điều khiển PIC16F887 Chương 2 : Giới thiệu vi điều khiển PIC16F887 1.4. Giới thiệu chương Chương này giới thiệu cơ bản về vi điều khiển PIC16F887 của hãng Microchip và hoạt động của nó bao gồm nội dung về cách cấu hình xung clock, hoạt động khối giao tiếp UART, khối PWM, ngắt ngoài trên chân RB, cấu tạo và hoạt động của các bộ timer, và cách nạp chương trình cho PIC16F887. 1.5. Nội dung 2.2.1 Một vài chi tiết chính của vi điều khiển PIC16F887 PIC16F887 là vi điều khiển 8-bit có kiến trúc Harvard của Microchip có những thông số kỹ thuật như sau: - Clock hoạt động tối đa 20MHz. - Chu kỳ máy bằng bốn lần chu kỳ xung clock. - Chip có nhiều dạng vỏ khác nhau, loại chip được sử dụng trong đề tài là loại 40 chân PDIP. - Điện áp hoạt động rộng từ 2V đến 5.5V. - Bộ nhớ dữ liệu và bộ nhớ chương trình tách biệt nhau, bus địa chỉ cũng như bus dữ liệu là riêng biệt. Bộ nhớ chương trình Flash 8K ô nhớ cho phép ghi 100,000 lần. Mỗi ô nhớ có 14 bit. Bộ nhớ dữ liệu RAM có 512 Byte gồm các thanh ghi chức năng đặc biệt và các thanh ghi đa mục đích. Ngoài ra PIC16F887 được tích hợp 256 Byte EEPROM cho phép ghi đến 1,000,000 lần. - 35 chân I/O của 5 port điều khiển là PortA, PortB, PortC, PortD, PortE. - Bộ chuyển đổi ADC 10-bit với 14 kênh. - 3 bộ timer. Bộ timer0 8-bit, bộ timer1 16-bit và bộ timer2 8-bit. - Module Capture, Compare và PWM - Module Enhanced USART hỗ trợ RS-485, RS-232. Những chi tiết trên được thể hiện cụ thể trong hình 2.1. Trang 9 Chương 2: Giới thiệu vi điều khiển PIC16F887 Hình 2.1 Sơ đồ khối của PIC16F887 Trang 10 Chương 2: Giới thiệu vi điều khiển PIC16F887 2.2.2 Bộ dao động của PIC16F887 Sơ đồ khối của bộ dao động được minh họa trong hình 2.2. Hình 2.2 Sơ đồ khối bộ dao động của PIC16F887 Clock hệ thống của PIC16F887 có thể được chọn từ hai nguồn dao động nội (Internal Oscillator) hoặc dao động ngoại (External Oscillator) nhờ bộ chọn kênh MUX. Bộ MUX được điều khiển bởi các bit FOSC (bit 2, bit 1, bit 0 của thanh ghi CONFIG1 16-bit định vị tại địa chỉ 2007H và 2008H trong bộ nhớ chương trình) và bit SCS (bit 0 của thanh ghi OSCCON). Nếu SCS = 1, clock hệ thống được chọn từ INTOSC. Nếu SCS = 0, clock hệ thống được chọn từ bộ dao động ngoại. Các bit FOSC được sử dụng để cấu hình bộ dao động ngoại là LP, XT, HS, RC, RCIO hay EC.  Bộ dao động nội gồm 2 bộ dao động HFINTOSC 8MHz và LFINTOSC 31kHz. Clock 8MHz của bộ HFINTOSC được chia thành các tần số 8MHz, 4MHz, 2MHz, 1MHz, 500kHz, 250kHz, 125kHz nhờ bộ chia tần số postscaler. Các bit IRCF điều khiển bộ MUX chọn kênh cho INTOSC. Trang 11 Chương 2: Giới thiệu vi điều khiển PIC16F887  Bộ dao động ngoại (được tích hợp bên trong PIC) cần được kết nối với các bộ lọc tại các chân OSC1, OSC2. Trong đề tài, tôi sử dụng thạch anh 12MHz và 2 tụ 33pF kết nối như hình 2.3. Bộ dao động ngoại được hoạt động ở chế độ HS. Tín hiệu dao động được qua bộ đệm Trigger theo sườn xuống và tạo thành xung clock HS 12MHz cung cấp cho clock hệ thống. Hình 2.3 Bộ dao động ngoại ở chế độ HS. 2.2.3 Các Port I/O PIC16F887 tất cả 35 chân I/O mục đích thông thường (GPIO: General Purpose Input Ouput) có thể được sử dụng. Tùy theo những thiết bị ngoại vi được chọn mà một vài chân có thể không được sử dụng ở chức năng GPIO. Thông thường, khi một thiết bị ngoại vi được chọn, những chân liên quan của thiết bị ngoại vi có thể không được sử dụng ở chức năng GPIO. 35 chân GPIO được chia cho 5 Port: PortA gồm 8 chân, PortB gồm 8 chân, PortC gồm 8 chân, PortD gồm 8 chân và PortE gồm 3 chân. Mỗi port được điều khiển bởi 2 thanh ghi 8-bit, thanh ghi Port và thanh ghi Tris. Thanh ghi Tris được sử dụng để điều khiển port là nhập hay xuất. Mỗi bit của Tris sẽ điều khiển mỗi chân của port đó, nếu giá trị của bit là 1 thì chân liên quan là nhập, ngược lại nếu giá trị của bit là 0 thì chân liên quan là xuất. Thanh ghi Port được sử dụng để chứa giá trị của port liên quan. Mỗi bit của thanh ghi Port sẽ chứa giá trị c