[Matrix LED] Bài 2: Điều khiển lập trình led matrix 8×8 hiển thị kí tự

Lập trình led matrix 8×8, tiếp nối bài trước, trong bài này mình sẽ hướng dẫn các bạn lập trình led matrix 8×8 hiển thị 1 kí tự bất kì như số hoặc chữ. Mình sẽ test với chữ A nhé.

1. Tạo font cho chữ A

mã led ma trận
Font chữ A lấy theo hàng ngang ! LED sáng = 1 LED tắt =0

Sau khi lấy được 8bit mã nhị phân tương ứng với các trạng thái bật tắt của LED. Mình đổi sang mã hex để viết cho gọn

2. Thiết kế mạch nguyên lí proteus

lập trình led ma trận 8x8

Do trong mô phỏng không cần sử dụng điện trở hay transistor để khuyếch đại công suất nên mình sẽ nối trực tiếp các chân IO của vi điều khiển vào tấm led ma trận 8×8 màu đỏ. Ở đây, 8 chân dương của led mình nối vào port P2, các chân dương sẽ điều khển 8 hàng ngang của tấm LED. 8 chân âm mình nối vào port P3, các chân âm này sẽ điều khiển 8 hàng dọc của biến LED. Lúc nãy mình đã lấy font theo hàng ngang, nên các mã led lấy được sẽ xuất ra port P2. Còn port P3 sẽ lo việc quét ( tức sẽ bật xong tắt, bật xong tắt các chân P3)

OK. Bây giờ viế chương trình nhé ! Đầu tiên mình sẽ tạo 1 hàm delay để làm chậm trễ, nếu không quét nhanh quá mắt mình lại chưa kịp nhìn !

Trong vòng lặp chính, mình sẽ tắt hết cổng P3, đưa mã font và cổng P2, bật chân P3_0 , delay 1 chút cho mắt kịp nhìn. Tiếp tục làm tương tự cho đến P3_7 là hết 1 chu kì quét.
Nếu bạn để ý ở trên thì mình có nói nối 8 chân âm led vào P3, có nghĩa là port P3 tích cực âm. Nếu mình đưa các chân port P3 lên 1 thì chắc chắn led sẽ tắt. Do vậy để tắt hết led mình chỉ cần gọi P3=0xFF;

lập trình led ma trận 8x8

Như vậy là đã hiện được chữ A lên LED matrix. Khá đơn giản phải không ! Bây giờ chúng ta hay tìm cách rút gọn đoạn code trên cho đơn giản, ngắn gọn hơn nhé.
Phần mã font xuất ra port P2 mình sẽ đưa vào 1 mảng dữ liệu như sau:

Phần mã font xuất ra port 3 mình sẽ đưa vào 1 mảng dữ liệu như sau, mã này thực chất là xuất cả byte ra cổng P3 thay vì xuất từng chân như code trên, miễn sao cho chỉ có 1 chân sáng trong 1 thời điểm !

Bây giờ chỉ việc tạo 1 vòng lặp for chạy từ 0 đến 7 là đây dữ liệu trong các mảng ra PORT là xong. Đoạn code rất ngắn gọn !

Kết quả vẫn thế 🙂

led matrix 8x8

Bài tiếp theo trong chuỗi tutorial lập trình led matrix 8×8

 

Từ tác giả:

Nếu có bất kì thắc mắc nào trong bài viết, vui lòng để lại comment dưới mỗi bài ! Mình sẽ không trả lời thắc mắc của các bạn ở facebook hay email !

Giới thiệu Đào Nguyện 54 bài viết
DIY,chế cháo, viết blog chia sẽ kiến thức về lập trình,điện tử - IoT. Rất mong được giao lưu, kết bạn với các bạn cùng đam mê. Địa chỉ Facebook: https://www.facebook.com/nguyendao207

2 bình luận

Để lại bình luận