[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 !

Nếu trong phần code bạn nhìn thấy nhưng thứ kiểu như &amp; thì đó là lỗi hiển thị, cụ thể 3 kí tự < > & bị biến đổi thành như thế
&amp; là &
&lt;  là <
&gt; là >

Giới thiệu Đào Nguyện 80 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

6 bình luận

  1. @Đào Nguyên ơi

    Bài viết rất hay và tỷ mỷ ý nghĩa.

    LCD Font Maker V3.92

    Phần mềm tạo Font Maker V3.92 khi chuyển ra mã Hex(Bấm F5 báo lỗi).
    Mình có thể up lại bộ cài mới nhất được ko?

    Thứ 2 trong phần mã hóa số 1 và ! mã chưa đúng cần mã hóa lại.

    Xin cảm ơn!

Đã đóng bình luận.