Hiệu ứng Led, Vi điều Khiển, Lập Trình Pic16F877A Chạy Sáng đuổi
Có thể bạn quan tâm
Skip to content Bài học led đơn sẽ có rất nhiều hiệu ứng led đẹp dùng để các bạn có thể chạy led trái tim, led ngôi sao, led trang trí làm bảng hiệu,bằng các hiệu ứng sáng đuổi,sáng dần… ngoài ra còn nhiều hiệu ứng khác nữa. Hi vọng bài này sẽ đem đến cho các bạn thật nhiều kiến thức bổ ich.
Theo như trên thì các bạn thấy vị trí số 0 sẽ bị mất và vị trí số 7 bị trống và vi điều khiển sẽ lấp đầy bằng giá trị số 0 nên giá trị là : 0011 1111 Nhưng mình không muốn vậy lẽ ra vị trí số 7 phải bằng 1 thì một điểm sáng mới dịch đúng.
Khi đã lấy giá trị cho 8bit của PortD thì còn lại 8 bit cao phải xuất cho Port C là : 0111 1111 Vì chỉ lấy giá trị từ thấp đến cao nên không thể xuất trực tiếp cho Port C được Mà phải tiến hành dịch 8 lần để 8bit cao xuống 8bit thấp khi dịch h>>8 = 0000 0000 0111 1111 Sau đó Output_C(h>>8) thì vi điều khiển sẽ lấy được 8bit cao sắp vào cho Port C
Như vậy là đã lấy đủ 16bit cho hai port mà không bị chồng dữ liệu.
Mua linh kiện điện tử tại Điện tử Nhật Tùng
Liên hệ làm mạch Phone: 0967.551.477 Zalo: 0967.551.477 Email: dientunhattung@gmail.com Địa Chỉ: 171/25 Lê Văn Thọ, P8, Gò Vấp, Tp HCM Chi tiết: Nhận làm mạch và đồ án Điện tử Khóa học Vi điều khiển có phí Hình thức học: Video hoặc Kèm trực tiếp ===>>>> Kích vào hình để được biết thêm chi tiếtTải phần Tổng hợp hiệu ứng led đơn
Tải Xuống Pass giải nén: Huynhnhattung.com===>>> Nếu bạn chưa có phần mềm giải nén:Hướng dẫn Tải và Cài đặt phần mềm giải nén Winrar
Nguyên lý hiệu ứng led
Cách mắc led để lập trình các hiệu ứng led
Giải thích các nối led
Đối với nguyên lý này muốn led sáng hay tắt phụ thuộc vào chân VDK Nếu VDK=1 thì hai đầu led đều bằng 1 tức sảy ra hiện tượng đẳng áp nên không làm led sáng được. Nếu VDK=0 thì điện áp lúc này sẽ đổ nguồn qua chân A của led và qua chân VDK, lúc này làm led sáng lên. Phần tính điện trở R32 thì đơn giản mình không bàn ở trong này nhé.Chương trình chạy hiệu ứng led sáng đuổi
Bắt đầu đi giải thích các phần nào.Khai báo thư viện cho hiệu ứng led
Tiền sử lý
#include <16F877A.h> // dòng lệnh này là khai báo thư viện con Pic16F887, nếu các bạn sử dụng thử viện khác thì thay đổi tên lại nhé. Ví dụ: Pic16F877A thì khai báo #include<16F877A.h> Pic18F4550 thì khai báo #include <18F4550>Định cấu hình
#FUSES NOWDT, PUT, HS, NOPROTECT, NOLVP // dòng lệnh này định cấu hình cho PicChức năng các thông số như sau:
- NOWDT: là không sử dụng bộ định thời giám sát (No watchdog timer)
- PUT: là sử dụng bộ định thời khi có nguồn để kéo dài them thời gian reset vi điều khiển để chờ nguồn điện ổn định, thời gian kéo dài thêm 72ms (Power up timer)
- HS: là sử dụng bộ dao động tần số cao từ 4MHz đến 20MHz (High Speed)
- NOPROTECT: là không sử dụng bảo vệ mã code nạp vào bộ nhớ flash bên trong
- NOLVP: là không sử dụng chế độ nạp code dùng nguồn điện áp thấp 5V mà dùng nguồn 12,5V.
- Ngoài ra thì còn nhiều thông số khác các bạn xem thêm trong thư viện Pic16F887 nhé.
Thư viện delay
#use delay (clock =20M) // nếu sử dụng thạch anh nội thì từ 37k đến 8M, còn thạch anh ngoài thì 4M đến 20M, Khi bạn sử dụng thạch anh nào thì nhớ khai báo đúng ở đây là được.Khai báo biến phục vụ cho chương trình hiệu ứng led
- Biến y dùng xuất giá trị ra cho led đơn chạy hiệu ứng led sáng đuổi, vì nó 8bit nên chỉ xuất tối đa là 8 led thôi nhé
- Biến i dùng để đếm số vòng lặp for cho giá trị chỉ chạy từ 0 đến 8 hoặc 0 đến 16 nên không cần khai báo lớn nhằm tiết kiệm bộ nhớ.
- Biến h dùng lưu giá trị và xuất ra cho hai port C và D.
Chương trình con hiệu ứng led sáng đuổi
Chương trình con 8 led sáng đuổi từ trái qua phải.Có hai hình thức viết hiệu ứng led sáng đuổi:
Kê khai từng giá trị cụ thể.
Hiệu ứng sáng đuổi Khi mình xuất số 0 thì led sáng, xuất số 1 thì led tắt. Các đổi từ số 2 sang số hex các bạn xem phần video nhé.Cách viết chương trình
Xuất lần lượt từng giá trị ra, mỗi lần xuất mình delay một khoảng thời gian để dễ quan sát. Phần cứng mạch thực tế các bạn xem phần video nhéViết vòng lặp For,công thức chung 8 led sáng đuổi trái sang phải
Nếu cứ đi kê khai từng giá trị thế thì chương trình trở nên dài và khó khăn cho các hiệu ứng 32 led… Từ đó mình phải đi tìm công thức chung cho hiệu ứng sáng đuổi. Đầu tiên phải cho một điểm sáng trước 0111 1111 = 0x7f Sau đó điểm sáng đó dịch lần vô là đượcToán thử dịch
Toán từ dịch trái sang phải là >>, còn dịch phải sang trái là : << ð Nếu 0111 1111 >>1 thì được giá trị như bảng dưới0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
0 | 1 | 1 | 1 | 1 | 1 | 1 |
Toán tử OR
Từ đó muốn vị trí đó dịch đúng thì phải OR với vị trí Số 7 đó giá trị bằng 1. 0011 1111 |1000 0000 = 1011 1111 Từ đó chỉ cần tạo hiệu ứng Sáng dịch chỉ cần >>1 và | với vị trí cần làm led đó tắt Từ đó mình đưa ra chương trình như sauCách viết chương trình
Đầu tiên mình phải cho sáng vị trí đầu tiên bằng cách cho y = 0x7f, xuất ra và delay để quan sát. Sau đó vòng lặp for chạy 8 lần, mỗi lần như thế thì mình cho y >>1 và sau đó |0x80 thì sẽ ra hiệu ứng mình cần dùng Như vậy là đã xong 8 led Phần cứng mạch thực tế các bạn xem phần video nhéVòng lặp For, công thức chung 16 led sáng đuổi trái sang phải
Tương tự như 8 led nhéCách viết chương trình
Các bạn lúc này phải dùng biến 16bit nhé. Vì là 16bit nên giá trị ban đầu từ trái sang phải là 0111 1111 1111 1111 = 0x7fff; Mỗi port của vi điều khiển chỉ xuất cho 8led, vì thế muốn xuất được 16led phải dùng 2 port C.DVí dụ
H = 0111 1111 1111 1111 Mình sắp xếp vào cho đúng nhé: giả sử 8 ô đầu là của Port C, còn lại của Port D Khi mình Output_d(h) thì VĐK chỉ lấy giá trị từ bít thấp lên bit cao, đủ 8 bit thì ngưng1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Chương trình chính
Vi điều khiển chạy khi có chương trình chính Vì tín hiệu đều được ra ngoài led đơn nên khỏi tạo giá trị đều đi ra. Đầu tiên phải tắt các led khi chạy. Vòng lặp tuần hoàn chỉ cần gọi chương trình con ra là xong.Điện tử Nhật Tùng
Mạch điện tử, Lập trình Vi điều khiển tổng hợp File đồ án-Phần 2CodevisionAVR 3.12, Hướng dẫn Download + Install Full, Link DriverTrả lời Hủy
Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Bình luận *
Tên *
Email *
Trang web
Lưu tên của tôi, email, và trang web trong trình duyệt này cho lần bình luận kế tiếp của tôi.
NHẬN THIẾT KẾ VÀ CODE MẠCH ĐIỆN TỬ & ĐỒ ÁN- Điện thoại : 0967551477
- Liên hệ Zalo : 0967551477
- Liên hệ FB : Huỳnh Nhật Tùng
- ĐỒ ÁN ĐIỆN TỬ
- Review Đồ án
- Tổng hợp File
- GIÁO TRÌNH
- MÔN HỌC
- Ngành Điện – Điện tử
- Giải đề Vi điều khiển
- Lập trình Vi điều khiển
- Lập trình STM32
- Ngành Điện – Điện tử
- PHẦN MỀM
- LẬP TRÌNH
- CodeVisionAVR
- Keil C
- Pic C CCS
- Visual Studio
- Arduino IDE
- Matlab
- ĐIỆN TỬ
- Proteus
- Altium Designer
- Cadence Orcad
- Autodesk Eagle
- NI Multisim & Ultiboard
- KỸ THUẬT
- SolidWorks
- Eplan electric P8
- Creo Parametric
- Solid Edge
- Altair SimSolid
- Wolfram Mathematica
- SketchUP Pro
- BỘ AUTODESK
- Autodesk Autocad
- Autodesk Inventor
- Autodesk Maya
- Autodesk Revit
- Autodesk Civil 3D
- Autodesk 3DS MAX
- Autodesk PowerShape
- Autodesk InfraWorks
- Autodesk Advance Steel
- Autodesk Structural Bridge Design
- Autodesk Alias AutoStudio
- Autodesk Alias Surface
- Autodesk Fabrication CADmep
- Autodesk Fabrication CADduct
- Autodesk Fabrication ESTmep
- Autodesk Factory Design Utilities
- Autodesk FeatureCAM
- Autodesk HSMWorks
- Autodesk Robot Structural Analysis
- Autodesk Vred Pro
- Autodesk InventoCAM
- Autodesk MotionBuilder
- Autodesk Navisworks Manage
- Autodesk ReCap
- Autodesk Inventor Nastran
- DESIGN
- CorelDRAW Graphics
- Proshow Producer
- Affinity Designer
- Affinity Photo
- Affinity Publisher
- BỘ ADOBE
- Adobe Photoshop
- Adobe Premiere
- Adobe illustrator
- Adobe After Effects
- Adobe Dreamweaver
- Adobe InDesign
- Adobe Prelude
- Adobe Lightroom Classic
- Adobe Acrobat
- Adobe Bridge
- Adobe Media Encoder
- Adobe Auditsion
- Adobe Animate
- Adobe Dimension
- VĂN PHÒNG
- Microsoft Office
- Mindjet MindManager
- iMindMap
- Quay màn hình
- LẬP TRÌNH
- LIÊN HỆ WooCommerce not Found
- Newsletter
- Địa chỉ 106/14 Đường số 51, P14, Gò Vấp, HCM
- Hotline: 0967551477
Từ khóa » Code Led Sáng đuổi
-
BÀI 2-VIẾT CHƯƠNG TRÌNH HIỆU ỨNG LED SÁNG ĐUỔI ...
-
Bài 3: Điều Khiển Led Sáng đuổi | Lập Trình Vi điều Khiển PIC16F877A
-
Bài 4-3: Lập Trình LED Sáng Lần Lượt
-
Code Lập Trình C Led đơn Cơ Bản - ECHIPKOOL SHOP
-
Code Sáng đuổi Trái Tim 32 Led. - ECHIPKOOL SHOP
-
Làm Hiệu ứng LED Nhấp Nháy Rượt đuổi Nhau đơn Giản Với 5 LED
-
Điều Khiển 8 đèn LED Sáng Theo ý Muốn Của Bạn, Dễ Hay Khó
-
Code Led Sáng Dần Tắt Dần
-
Code Led Sáng Dần Tắt Dần Và Tắt Dần !!!!, Lập Trình Arduino Cơ ...
-
Xin Code điều Khiển 8 Led. Sáng Từ. Phải Qua Trái Và Ngược Lại
-
BÀI 3 : HIỆU ỨNG LED PIC16F877A XC8 (PART 2) - Lập Trình PIC
-
Điều Khiển Led Sáng Dồn ( Lập Trình PIC16F877A ) - Huy Training