Đồ án Hiệu ứng led đơn dùng vi điều khiển pic

Cùng với sự phát triển của khoa học và công nghệ, các thiết bị điện tử đã, đang và sẽ tiếp tục được ứng dụng ngày càng rộng rãi và mang lại hiệu quả trong hầu hết các lĩnh vực khoa học kỹ thuật cũng như trong đời sống xã hội. Trong đó, vi điều khiển đóng vai trò then chốt trong đa số các vi mạch điện tử, đặc biệt trong trong điều khiển tự động. Hiện nay trên thị trường có rất nhiều họ vi điều khiển. Sự lựa chọn Vi điều khiển PIC để thực hiện đồ án này của em bởi vài nguyên nhân sau: Hiện nay tại Việt Nam cũng như trên thế giới, họ vi điều khiển này được sử dụng khá rộng rãi. Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: số lượng tài liệu, số lượng các ứng dụng mở đã được phát triển thành công, dễ dàng trao đổi, học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó khăn, Những điều này đặc biệt có ý nghĩa đối với người lần đầu tiên tìm hiểu và ứng dụng nó như em. Họ vi điều khiển này dễ dàng tìm mua tại thị trường Việt Nam. Giá thành không quá đắt. Vì là lần đầu tiên tìm hiểu và cũng là lần đầu tiên em tự tay thiết kế, gia công một mạch điện tử nên em nghĩ nên chọn một đồ án cơ bản nằm trong khả năng tìm hiểu và thực thi của bản thân, để thông qua đó có thể hiểu thêm về ứng dụng của các vi điều khiển, các linh kiện điện tử, và đặc biệt là biết được các bước thiết kế, gia công một mạch điện tử, và cách thực hiện một đồ án. Em chọn đồ án là mạch hiệu ứng LED dùng vi điều khiển PIC. Đây là một mạch khá đơn giản, tuy nhiên là lần đầu tiên thực làm ra một sản phẩm như vậy nên em khá vất vả để hoàn thành nó. Là đồ án đầu tiên nên em còn bối rối, kiến thức còn nông cạn, nhiều vấn đề chưa nắm bắt được. Nên chắc chắn còn nhiều thiếu sót. Kính mong thầy cô tận tình chỉ bảo thêm và kính mong các bạn chân thành góp ý kiến.

doc38 trang | Chia sẻ: ngtr9097 | Lượt xem: 4290 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đồ án Hiệu ứng led đơn dùng vi điều khiển pic, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA ĐIỆN – ĐIỆN TỬ ĐỀ TÀI: HIỆU ỨNG LED ĐƠN DÙNG VI ĐIỀU KHIỂN PIC GVHD : Ths. LÊ ANH TUẤN SVTH : NGUYỄN BÁ GIANG Lớp : 08DD3D MSSV : 081396D TP. Hồ Chí Minh tháng 5 năm 2011 TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA ĐIỆN – ĐIỆN TỬ ĐỀ TÀI: HIỆU ỨNG LED ĐƠN DÙNG VI ĐIỀU KHIỂN PIC GVHD : Ths. LÊ ANH TUẤN SVTH : NGUYỄN BÁ GIANG Lớp : 08DD3D MSSV : 081396D TP. Hồ Chí Minh tháng 5 năm 2011 NHIỆM VỤ ĐỒ ÁN MÔN HỌC 1 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ……. 000 …… Tp.HCM, Ngày ..….Tháng…....Năm 2011 GVHD LỜI CẢM ƠN Là lần đầu tiên thực hiện một đồ án, thiết kế, gia công một mạch điện tử nên từ lúc bắt đầu đến quá trình thực hiện em đã rất bối rối và gặp nhiều vấn đề mới. Em sẽ rất khó khăn để thực hiện đồ án này nếu không có sự giúp đỡ của các thầy cô và của các bạn. Đồ án 1 này đã hoàn thành tốt đẹp và đúng thời gian quy định của khoa Điện – Điện tử. Kết quả này không chỉ là sự nỗ lực của cá nhân em mà còn có sự giúp đỡ, đóng góp ý kiến chân thành và quý báu của quý thầy cô và các bạn. Em xin chân thành cảm ơn quý thầy cô khoa điện tử đặc biệt là thầy Lê Anh Tuấn đã giúp đỡ và đóng góp rất nhiều ý kiến quý báu để em có thể hoàn thành tốt đồ án lần này. Xin cảm ơn các bạn trong lớp đã tận tình giúp đỡ, đóng góp ý kiến và cung cấp phương tiện, tài liệu,… để mình thực hiện tốt đồ án lần này. TP. Hồ Chí Minh, ngày 03 tháng 5 năm 2011. SVTH MỤC LỤC Đề mục Trang Trang tựa i Nhiệm vụ đồ án môn học 1 ii Nhận xét của GVHD iii Lời cảm ơn v Mục lục vi Liệt kê hình viii Lời mở đầu ix Chương I: CƠ SỞ LÝ THUYẾT I.1. Tổng quan về vi điều khiển PIC và PIC 16F877A 2 I.2. Tụ điện thường dùng trong các mạch điện tử 9 I.3. Các điện trở thường dùng trong các mạch điện tử 9 I.4. Led đơn 11 Chương II: THIẾT KẾ VÀ THI CÔNG MẠCH “HIỆU ỨNG LED ĐƠN DÙNG VI ĐIỀU KHIỂN PIC” II.1. Nội dung thiết kế 15 II.2. Giới thiệu các linh kiện điện tử dùng trong mạch 15 II.3. Sơ đồ nguyên lý mạch “hiệu ứng led dùng vi điều khiển PIC” 18 II.4. Sơ đồ mạch in 19 II.5. Mạch nạp và chương trình nạp cho PIC 16F877A 20 II.6. chương trình dịch cho hiệu ứng 23 Chương III: MẠCH SAU KHI HOÀN THÀNH 26 Chương IV: KẾT LUẬN – ĐỀ NGHỊ 27 Tài liệu tham khảo 28 Phụ lục 29 Thông tin cá nhân 30 LIỆT KÊ HÌNH Hình Trang I.1-PIC 16F877A 5 I.2, H II.1- Sơ đồ chân của PIC 16F877A 5, 15 I.3-Sơ đồ mạch giao tiếp với LED đơn dùng cho PIC 16F877A 8 I.4-Các tụ điện thường dùng trong mạch điện tử 9 I.5-Các điện trở thường dùng trong các mạch điện tử 10 I.6-Các loại LED đơn thường dùng 11 II.2-Điện trở 10K 16 II.3-Tụ thạch anh 20 MHz 16 II.4-Tụ gốm 33pF 16 II.5-Tụ 33pF mắc phối hợp với tụ thạch anh 17 II.6-LED đơn màu đỏ 17 II.7-Điện trở 0.3K 17 II.8-Sơ đồ nguyên lý mạch hiệu ứng LED đơn dùng vi điều khiển PIC 16F877A 18 II.9-Sơ đồ mạch in 19 II.10-Sơ đồ thiết kế mạch nạp PIC – GTP USB 20 II.11-Sơ đồ mạch in của mạch nạp GTP USB 21 II.12-Mạch nạp GTP USB 22 II.13-Hình ảnh giao diện của WinPIC 800 23 II.14a-Mạch sau khi hoàn thành 26 LỜI MỞ ĐẦU Cùng với sự phát triển của khoa học và công nghệ, các thiết bị điện tử đã, đang và sẽ tiếp tục được ứng dụng ngày càng rộng rãi và mang lại hiệu quả trong hầu hết các lĩnh vực khoa học kỹ thuật cũng như trong đời sống xã hội. Trong đó, vi điều khiển đóng vai trò then chốt trong đa số các vi mạch điện tử, đặc biệt trong trong điều khiển tự động. Hiện nay trên thị trường có rất nhiều họ vi điều khiển. Sự lựa chọn Vi điều khiển PIC để thực hiện đồ án này của em bởi vài nguyên nhân sau: Hiện nay tại Việt Nam cũng như trên thế giới, họ vi điều khiển này được sử dụng khá rộng rãi. Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: số lượng tài liệu, số lượng các ứng dụng mở đã được phát triển thành công, dễ dàng trao đổi, học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó khăn,…Những điều này đặc biệt có ý nghĩa đối với người lần đầu tiên tìm hiểu và ứng dụng nó như em. Họ vi điều khiển này dễ dàng tìm mua tại thị trường Việt Nam. Giá thành không quá đắt. Vì là lần đầu tiên tìm hiểu và cũng là lần đầu tiên em tự tay thiết kế, gia công một mạch điện tử nên em nghĩ nên chọn một đồ án cơ bản nằm trong khả năng tìm hiểu và thực thi của bản thân, để thông qua đó có thể hiểu thêm về ứng dụng của các vi điều khiển, các linh kiện điện tử, và đặc biệt là biết được các bước thiết kế, gia công một mạch điện tử, và cách thực hiện một đồ án. Em chọn đồ án là mạch hiệu ứng LED dùng vi điều khiển PIC. Đây là một mạch khá đơn giản, tuy nhiên là lần đầu tiên thực làm ra một sản phẩm như vậy nên em khá vất vả để hoàn thành nó. Là đồ án đầu tiên nên em còn bối rối, kiến thức còn nông cạn, nhiều vấn đề chưa nắm bắt được. Nên chắc chắn còn nhiều thiếu sót. Kính mong thầy cô tận tình chỉ bảo thêm và kính mong các bạn chân thành góp ý kiến. Chương I CƠ SỞ LÝ THUYẾT I.1.TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC VÀ PIC 16F877A: I.1.1. GIỚI THIỆU VỀ PIC: Pic là một họ Vi điều khiển RISC được sản xuất bởi công ty Mycrochip Technology. Dòng Pic đầu tiên là PIC 1650 được phát triển bởi Microelectronics Dicision thuộc General Instrument. PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch là “máy tính thông minh khả trình” do hãng General Instrument đặt tên cho vi điều khiển đầu tiên của họ. Hiện nay có khá nhiều dòng vi diều khiển Pic khác nhau nhưng chúng cùng có chung một số đặc điểm như sau: + Sử dụng công nghệ tích hợp cao RISC CPU. + Người sử dụng có thể lập trình với 35 câu lệnh đơn giản. + Tất cả các câu lệnh thực hiện trong một chu kì lệnh ngoại trừ một số câu lệnh rẽ nhánh thực hiện trong 2 chu kì lệnh. + Tốc độ hoạt động là: - Xung đồng bộ vào là DC- 20MHz. - Chu kì lệnh thực hiện trong 200ns. +Bộ nhớ chương trình Flash 8K* 14 Words. + Bộ nhớ Ram 368*8 bytes. + Bộ nhớ EEPRom 256*8 bytes. Khả năng của bộ vi xử lí này: + Khả năng ngắt lên tới 14 nguồn ngắt trong và ngắt ngoài. + Ngăn nhớ Stack được phân chia làm 8 mức. + Truy cập bộ nhớ bằng địa chỉ trực tiếp hoặc gián tiếp. + Nguồn khởi động lại (POR). + Bộ tạo xung thời gian (PWRT) và bộ tạo dao động (OST). + Bộ đếm xung thời gian (WDT) với nguồn dao động trên chíp ( nguồn dao động RC) hoạt động đáng tin cậy. + Có mã chương trình bảo vệ. + Phương thức cất giữ SLEEP. + Có bảng lựa chọn dao động. + Công nghệ CMOS FLASH/EEPROM nguồn mức thấp tốc độ cao. + Thiết kế hoàn toàn tĩnh. + Mạch chương trình nối tiếp có 2 chân. + Vi xử lý đọc/ ghi bộ nhớ chương trình. + Dải điện thế hoạt động rộng: 2.0V đến 5.5V. + Nguồn sử dụng hiện tại 25Ma. + Dãy nhiệt độ công nghiệp và thuận lợi. + Công suất tiêu thụ thấp. < 0.6 Ma với 5V.4MHz. 20Ua với nguồn, 32KHs. <1Ua nguồn dự phòng. Các đặc tính nổi bật của thiết bị ngoại vi trên chíp: + Timer 0: 8bit của bộ định thời, bộ đếm với hệ số tỉ lệ trước. + Timer 1: 16bit của bộ định thời, bộ đếm với hệ số tỉ lệ, có khả năng tăng trong khi ở chế độ Sleep qua xung đồng hồ được cung cấp bên ngoài. + Time 2:8bit của bộ định thời, bộ đếm với 8bit của hệ số tỉ lệ trước và hệ số tỉ lệ sau. + Có 2 chế độ bắt giữ, so sánh, điều chế độ rộng xung (PWM). + Chế độ bắt giữ với 16bit với tốc độ 12.5ns, chế đọ so sánh với 16bit, tốc đọ giải quyết cực đại là 200ns, chế độ rộng xung với 10bit. + Bộ chuyển đổi tín hiệu số sang tương tự với 10bit. + Cổng truyền thông nối tiếp SSP với SPI phương thức chủ (chủ/ tớ). + Bộ truyền nhận thông tin đồng bộ, dị bộ (USART/SCL) có khả năng phát hiện 9bit địa chỉ. + Cổng phụ song song (PSP) với 8bit mở rộng, với RD, WR và CS điều khiển. KIẾN TRÚC CỦA PIC. Cấu trúc phần cứng của một vi điều khiển được thiết kế theo 2 dạng kiến trúc: kiến trúc Von Neuman và kiến trúc Havard. Tổ chức phần cứng của PIC được thiết kế theo kiến trúc Havard CÁC DÒNG PIC VÀ CÁCH LỰA CHỌN VI ĐIỀU KHIỂN PIC. Các kí hiệu của vi điều khiển PIC: PIC 12xxxx: độ dài lệnh 12bit. PIC 16xxxx: độ dài lệnh 14bit. PIC 18xxxx: độ dài lệnh 16bit. C: PIC có bộ nhớ EPROM ( chỉ có 16c84 là EEPROM). F: PIC có bộ nhớ Flash. LF: PIC có bộ nhớ Flash hoạt động ở điện áp thấp. LV: tương tự như LF, đây là kí hiệu cũ. NGÔN NGỮ LẬP TRÌNH CHO PIC: Ngôn ngữ lập trình cho PIC rất đa dạng. Ngôn ngữ cấp thấp có MPLAB ( được cung cấp miễn phí bởi nhà sản xuất Microchip), các ngôn ngữ lập trình cấp cao hơn gồm C, Basic, Pascal,… Ngoài ra còn có một số ngôn ngữ lập trình được phát triển dành riêng cho PIC như PICBasic, MicroBasic,… CÁC MẠCH NẠP THƯỜNG DÙNG CHO PIC: Falleaf PG2C – PIC Tutorial, PICSTART plus, MPLAB ICD 2J, DM programmer, MPLAB PM3 , PRO MATE II. CHƯƠNG TRÌNH NẠP THƯỜNG DÙNG CHO PIC: - MPLAB, - Winpic800, - Icprog (hầu hết các mạch nạp đều hỗ trợ tính năng nạp chương trình này), … I.1.2. PIC 16F877A: GIỚI THIỆU VỀ PIC 16F877A: PIC16F877 (mid-range). Nó là loại vi điều khiển loại trung với kích cỡ 1 lệnh là 14 bit. Nó mang hầu hết các đặc điểm chung của các dòng PIC. Bộ nhớ chương trình ở đây là bộ nhớ FLASH (có thể xoá và nạp lại 100000 lần). H I.1: PIC 16F877A H I.2: Sơ đồ chân của PIC 16F877A CÁC CỔNG RA VÀO TRONG PIC16F877: PIC16F877 có 5 cổng vào ra là PORTA, PORTB, PORTC, PORTD, PORTE, tương ứng với nó là các thanh ghi cấu hình TRISA, TRISB, TRISC, TRISD, TRISE. Trong PIC, các ngăn nhớ trong RAM được gọi là các thanh ghi, tất nhiên thực tế thì không đúng bởi vì các thanh ghi đuợc xem là các thành phần của CPU, còn các ngăn nhớ lại thuộc bộ nhớ. Thanh ghi PORTA và TRISA: PORTA có 6 bit, 2 hướng (vào và ra). Các bit cấu hình hướng nằm trong thanh ghi TRISA, nếu bit tương ứng bằng 0 thì bit đó là output và ngược lại sẽ là input. Việc đọc nội dung của thanh ghi PORTA sẽ đọc các trạng thái của các chân. Chân RA4 đuợc dồn kênh với đầu vào clock của mô đun Timer0 gọi là chân RA4/T0CKI. Thanh ghi TRISA điều khiển huớng của các chân của cổng. Thanh ghi PORTB và TRISB: PORTB là thanh ghi 8 bit, 2 hướng. Quan hệ với TRISB cũng tương tự như PORTA. Các chân của PORTB đuợc dồn kênh với 1 số chức năng đặc biệt khác và các chức năng debug ngay trong mạch,và chức nang lập trình ở chế độ điện áp thấp: RB3/PGM, RB6/PGC, RB7/PGD. Đây là những chức năng đặc biệt của CPU. Mỗi chân của PORTB có 1 điện trở kéo lên nhỏ bên trong. Một bit điều khiển dùng để “bật” (enable) tất cả các điện trở này lên, đây chính là chức năng của bit RBPU trong thanh ghi OPTION. Điện trở này đuợc tự động disable khi cổng này được cấu hình làm output. RB0/INT là chân dồn kênh với ngắt ngoài mà ta sẽ miêu tả trong phần ngắt Thanh ghi PORTC và TRISC PORTC là thanh ghi 8 bit, 2 huớng. Có bộ đệm đầu vào Trigger Schmitt. Nó cũng được dồn kênh với vài chức năng đặc biệt khác. Thanh ghi PORTD và TRISD Là cổng 8 bit, 2 hướng. có bộ đệm đầu vào Trigger Schmitt. Nó dồn kênh thêm với chức năng giao tiếp cổng song song Slave (parallel Slave Port) bằng cách thiết lập bit điều khiển PSPMODE (TRISE). Thanh ghi PORTE và TRISE Có 3 chân, có bộ đệm đầu vào kiểu Trigger Schmitt. Dồn kênh với các đầu vào analog mà ta sẽ xem xét trong phần ADC. TRISE do còn thừa 5 bit không sử dụng trong cấu hình PORTE do đó các bit thừa này được dùng để cấu hình các chức năng khác nhu chức năng cổng song song PSP. SƠ ĐỒ MẠCH GIAO TIẾP VỚI LED ĐƠN: H I.3: Sơ đồ mạch giao tiếp với led đơn dùng cho PIC 16F877A Trên đây là sơ đồ mạch giao tiếp với led đơn dùng cho PIC 16F877A, với 8 led đơn. Tùy theo yêu cầu của ứng dụng ta có thể thêm bớt số lượng led, hoặc thay đổi cách mắc cho phù hợp. Ngoài ra với những ứng dụng khác còn có nhiều mạch giao tiếp khác dùng cho PIC 16F877A I.2. TỤ ĐIỆN THƯỜNG DÙNG TRONG CÁC MẠCH ĐIỆN TỬ: H I.4: Các tụ điện thường dùng trong các mạch điện tử Ứng dụng của tụ điện: + Được sử dụng để truyền tín hiệu giữa các tầng khuyếch đại có chênh lệch về điện áp một chiều. + Lọc điện áp xoay chiều sau khi đã được chỉnh lưu. Tùy theo cách đấu từng loại mạch, các loại linh kiện trong mạch mà ta chọn các loại tụ với các thông số phù hợp. Ở vi điều khiển PIC, ứng với mỗi loại vi điều khiển mà nhà sản đưa ra các thông số phù hợp. Người dùng có thể tra cứu ở cuốn datasheet của nhà sản xuất. Với vi điều khiển 16F877A thì nên dùng tụ thạch anh >4MHz, và 2 tụ gốm 30Pf. Đây cũng là thông số khuyến cáo của nhà sản xuất đưa ra. I.3. CÁC ĐIỆN TRỞ THƯỜNG DÙNG TRONG CÁC MẠCH ĐIỆN TỬ: Điện trở (Resistor) là một trong những loại linh kiện không thể thiếu trong mạch điện tử. Như ta đã biết điện trở đặc trưng cho mức độ cản trở dòng điện. Vậy tại sao ta cần phải cản trở dòng điện?. Vì một số linh kiện có khả năng chịu được áp nguồn cung cấp nhưng dòng thì quá tải (vượt giá trị dòng điện định mức), khi đó ta cần phải dùng điện trở để hãm dòng lại, điển hình đó là con LED. Ngoài ra còn dùng điện để chia dòng, cầu phân áp, mạch phân cực, mạch lọc…Do điện trở là loại linh kiện không phân cực nên khi mắc vào mạch không cần phân biệt chiều âm dương. Tùy theo mục đích sử dụng nhà sản xuất tạo ra các loại điện trở có thành phần cấu tạo khác nhau: than, magie, oxit thiếc, oxit silic, dây quấn… H I.5: Các điện trở thường dùng trong các mạch điện tử Cách tính điện trở phù hợp cho LED: Đã nói ở trên, một công dụng của điện trở đó là cản bớt dòng điện để Led không bị cháy do hoạt động quá giá trị dòng điện định mức. Do đó ta không thể cấp nguồn trực tiếp cho Led mà phải mắc nối tiếp thông qua một điện trở: Công thức tính giá trị R như sau: R = (VS – VL) / I Trong đó: VS: điện áp nguồn VL: điện áp định mức của Led (2-4V) I: dòng định mức của Led (10-20Ma) I.4. LED ĐƠN: H 1.6: các loại LED đơn thường dùng LED (viết tắt của Light Emitting Diode, có nghĩa là điốt phát quang) là các điốt có khả năng phát ra ánh sáng hay tia hồng ngoại, tử ngoại. Cũng giống như điốt, LED được cấu tạo từ một khối bán dẫn loại p ghép với một khối bán dẫn loại n Nguyên lý hoạt động của LED: Hoạt động của LED giống với nhiều loại điốt bán dẫn.Khối bán dẫn loại p chứa nhiều lỗ trống tự do mang điện tích dương nên khi ghép với khối bán dẫn n (chứa các điện tử tự do) thì các lỗ trống này có xu hướng chuyển động khuếch tán sang khối n. Cùng lúc khối p lại nhận thêm các điện tử (điện tích âm) từ khối n chuyển sang. Kết quả là khối p tích điện âm (thiếu hụt lỗ trống và dư thừa điện tử) trong khi khối n tích điện dương (thiếu hụt điện tử và dư thừa lỗ trống). Ở biên giới hai bên mặt tiếp giáp, một số điện tử bị lỗ trống thu hút và khi chúng tiến lại gần nhau, chúng có xu hướng kết hợp với nhau tạo thành các nguyên tử trung hòa. Quá trình này có thể giải phóng năng lượng dưới dạng ánh sáng (hay các bức xạ điện từ có bước ong gần đó). Tính chất: Tùy theo mức năng lượng giải phóng cao hay thấp mà bước sóng ánh sáng phát ra khác nhau (tức màu sắc của LED sẽ khác nhau). Mức năng lượng (và màu sắc của LED) hoàn toàn phụ thuộc vào cấu trúc năng lượng của các nguyên tử chất bán dẫn. LED thường có điện thế phân cực thuận cao hơn điốt thông thường, trong khoảng 1,5 đến 3V. Nhưng điện thế phân cực nghịch ở LED thì không cao. Do đó, LED rất dễ bị hư hỏng do điện thế ngược gây ra. Loại LED Điện thế phân cực thuận Hồng ngoại Đỏ 1.2V 1,4 – 1,8V Vàng 2 – 2,5V Xanh lá cây Xanh dương Trắng 2 – 2,8V 3 – 3.5V 3.7 – 4v Ứng dụng: LED được dùng để làm bộ phận hiển thị trong các thiết bị điện, điện tử, đèn quảng cáo, trang trí, đèn giao thông. Các LED phát ra tia hồng ngoại được dùng trong các thiết bị điều khiển từ xa cho đồ điện tử dân dụng, … Chương II THIẾT KẾ VÀ THI CÔNG “MẠCH HIỆU ỨNG LED ĐƠN DÙNG VI ĐIỀU KHIỂN PIC” II.1.NỘI DUNG THIẾT KẾ: Thiết kế mạch hiệu ứng cho 10 LED đơn như sau: Trạng thái ban đầu: cả 10 LED đều không sáng. Hiệu ứng 1: sáng lần lượt từng LED theo thứ tự từ LED 1 đến LED 10. Khi sáng đến LED10 thì LED 10 giữ nguyên trạng thái sáng. 9 LED còn lại tiếp tục hiệu ứng cho đến khi thấy sáng hết. Hiệu ứng 2: kết thúc hiệu ứng 1, 10 LED trở về trạng thái đầu, sau đó sáng theo chiều ngược lại hiệu ứng 1 cho đến khi sáng hết các LED. Hiệu ứng 3: kết thúc hiệu ứng 2, 10 LED lại trở về trạng thái đầu, sau đó 2 LED ở 2 biên sáng và di chuyển dần vào 2 LED kề bên trong. Hiệu ứng tiếp diễn cho đến khi sáng LED chính giữa. Hiệu ứng 4: kết thúc hiệu ứng 3, 10 LED trở lại trạng thái đầu, sau đó LED chính giữa sáng trước rồi di chuyển dần ra 2 biên (tức là ngược với hiệu ứng 3). Hiệu ứng 5: kết thúc hiệu ứng 4, 10 LED trở về trạng thái đầu. Sau đó 10 LED đồng thời nhấp nháy (sáng tắt) 5 lần. Kết thúc hiệu ứng. II.2. GIỚI THIỆU CÁC LINH KIỆN DÙNG TRONG MẠCH: MỘT VI ĐIỀU KHIỂN PIC 16F877A: H II.1-Sơ đồ chân PIC 16F877A MỘT ĐIỆN TRỞ 10K: H II.2-Điện trở 10K Điện trở 10K nối vào vị trí VPP (chân 1), VDD (chân11, 32) của PIC 16F877A MỘT TỤ THẠCH ANH 4 – 20 MHz: H II.3-Tụ thạch anh. Tụ thạch anh 4 – 20 MHz dùng nối vào giữa OSC1/CLK1 và OSC2/CLKO (chân 13, 14) HAI TỤ 33Pf: H II.4-tụ gốm 33pF. Hai tụ 33Pf mắc phối hợp với tụ thạch anh như sơ đồ sau sau: H II.5-Tụ 33pF mắc phối hợp với tụ thạch anh. 10 LED ĐƠN: H II.6-LED đơn màu đỏ. 10 LED này, nối GND cho tất cả đầu anot của các LED. 10 đầu catot còn lại của các LED được nối vào 10 chân của vi điều khiển (8 chân của RB và 2 chân của RD) thông qua 10 điện trở 0,3K (mỗi LED mắc nối tiếp với 1 điện trở). 10 ĐIỆN TRỞ 0,3K: H II.7-Điện trở 0,3K. 10 điện trở này, mỗi điện trở mắc nối tiếp với 10 LED đơn trên II.3. SƠ ĐỒ NGUYÊN LÝ MẠCH HIỆU ỨNG LED ĐƠN DÙNG VI ĐIỀU KHIỂN PIC: H II.8-Sơ đồ nguyên lý mạch hiệu ứng LED dùng vi điều khiển PIC 16F877A. II.4. SƠ ĐỒ MẠCH IN: H II.9-Sơ đồ mạch in. II.5. MẠCH NẠP VÀ CHƯƠNG TRÌNH NẠP CHO VI ĐIỀU KHIỂN PIC 16F877A: II.5.1.Mạch nạp: -Tên mạch nạp: GTP USB GTP-USB là loại mạch nạp cổng USB hỗ trợ PIC và dsPIC, có cấu tạo đơn giản, dễ sử dụng, nạp nhanh và ổn định. GTB-USB tương thích với phần mềm Winpic800. -Sơ đồ thiết kế: H II.10-Sơ đồ thiết kế mạch nạp PIC – GTP USB. -Sơ đồ mạch in: H II.11-Sơ đồ mạch in của mạch nạp GTP USB -mạch nạp hoàn thành: H II.12-Mạch nạp GTP USB. II.5.2. Chương trình nạp: Dùng chương trình nạp là WINPIC 800. Phần mềm WINPIC800 dùng để nạp CODE cho IC khả lập trình dòng họ PIC. H II.13-Hình ảnh giao diện của WinPIC 800 II.6. CHƯƠNG TRÌNH DỊCH CHO HIỆU ỨNG: -Dùng trình dịch CCS (CCS PCWH 3.236) để viết chương trình cho hiệu ứng. Đây là đoạn code đã viết cho hiệu ứng trên: #include #fuses nowdt,noprotect,nolvp,xt,put #use delay(clock=20000000) #use fast_io(b) #use fast_io(d) void main() { set_tris_b(0); output_b(1); set_tris_d(0); output_d(1); while(true) { output_b(0b00000000); delay_ms(0); output_d(0b00000001); delay_ms(200); output_d(0b00000010); delay_ms(200); output_d(0b00000000); delay_ms(0); output_b(0b00000001); delay_ms(200); output_b(0b00000010); delay_ms(200); output_b(0b00000100); delay_ms(200); output_b(0b00001000); delay_ms(200); output_b(0b00010000); delay_ms(200); output_b(0b00100000); delay_ms(200); output_b(0b01000000); delay_ms(200); output_b(0b10000000); delay_ms(200); output_b(0b01000000); delay_ms(200); output_b(0b00100000); delay_ms(200); output_b(0b00010000); delay_ms(200); output_b(0b00001000); delay_ms(200); output_b(0b00000100); delay_ms(200); output_b(0b00000010); delay_ms(200); output_b(0b00000001); delay_ms(200); output_b(0b00000000); delay_ms(000); output_d(0b00000010); delay_ms(200); output_d(0b00000001); delay_ms(200); output_b(0b11111111); delay_ms(00); output_d(0b11111111); delay_ms(200); output_b(0b00000000); delay_ms(000); output_d(0b00000000); delay_ms(200); output_b(0b11111111); delay_ms(00); output_d(0b11111111); delay_ms(200); output_b(0b00000000); delay_ms(000); output_d(0b00000000); delay_ms(200); output_b(0b11111111); delay_ms(00); output_d(0b11111111); delay_ms(200); output_b(0b00000000); delay_ms(000); output_d(0b00000000); delay_ms(200); output_b(0b11111111); delay_ms(00); output_d(0b11111111); delay_ms(200); output_b(0b00000000); delay_ms(000); output_d(0b00000000); delay_ms(200); output_b(0b11111111); delay_ms(00); outpu