1. Giới thiệu led ma trận:
Trong quảng cáo ở nơi công cộng thường sử dụng led ma trận, trong phần này sẽ giới thiệu và trình bày cách giao tiếp vi điều khiển với led ma trận và phần mềm điều khiển led ma trận.
Led ma trận là 1 tập các led đơn được bố trí theo dạng ma trận cho phép hiển thị được các kí tự bất kỳ. Các nhà chế tạo đã tích hợp theo các dạng ma trận tính theo led 5×7 (5 cột và 7 hàng) hoặc 8×8 (8 hàng và 8 cột) và tính theo kích thước và phân biệt theo màu của led, cuối cùng là phân biệt led sáng trong nhà (indoor) hay led sáng ngoài trời (outdoor). Led sáng trong nhà thì không thể dùng được ngoài trời vì ánh sáng mặt trời chiếu vào làm chúng ta không nhìn thấy rõ, chỉ có led outdoor mới thấy rõ, và dĩ nhiên led outdoor sẽ có giá thành cao hơn.
Hình 7-37 giới thiệu led ma trận 5×7 với 4 màu khác nhau:
Hình 7-37. Led ma trận 5×7. 2. Cấu tạo và phương pháp điều khiển led ma trận:
Led ma trận là một tập hợp các led đơn với cách kết nối như sau: theo hàng thì các anode nối chung, theo cột thì các cathode nối chung, với led ma trận 5×7 thì có 7 hàng và 5 cột.
Chương 7. Giao tiếp ứng dụng vi điều khiển. SPKT
Anode nối với mức H và cathode nối mức L thì led sáng, các trường hợp còn lại thì led tắt. Hãy quan sát hình 7-38 led ma trận 8×8 đang hiển thị chữ A, có 2 cách hiển thị chữ A: Cách 1: dữ liệu gởi ra hàng, mã quét gởi ra cột:
Mỗi kí tự có 5 byte mã:
- Byte mã thứ nhất gởi ra 8 hàng (led nào sáng thì bit tương ứng bằng 1, led nào tắt thì bit tương ứng bằng 0) và cho cột thứ nhất xuống mức L, các cột còn lại ở mức H. - Byte mã thứ hai gởi ra 8 hàng, cột thứ hai xuống mức L.
- Byte mã thứ ba gởi ra 8 hàng, cột thứ ba xuống mức L. - Byte mã thứ tư gởi ra 8 hàng, cột thứ tư xuống mức L. - Byte mã thứ năm gởi ra 8 hàng, cột thứ năm xuống mức L. Do tốc độ thực hiện nhanh nên chúng ta sẽ nhìn thấy cả chữ A sáng.
Hình 7-38. Sáng chữ A.
Nếu hàng trên cùng là H0 và hàng dưới cùng là H7 thì mã của chữ A và mã quét được tóm tắt như bảng sau:
MÃ ĐIỀU KHIỂN HAØNG MÃ QUÉT ĐIỀU KHIỂN CỘT H7 H6 H5 H4 H3 H2 H1 H0 Số H7 H6 H5 H4 H3 H2 H1 H0 Số
hex
C0 C1 C2 C3 C4
1 1 1 1 1 0 0 0 F8 0 1 1 1 1 Cột thứ nhất sáng 0 0 1 0 0 1 0 0 24 1 0 1 1 1 Cột thứ hai sáng 0 0 1 0 0 1 0 0 24 1 0 1 1 1 Cột thứ hai sáng 0 0 1 0 0 0 1 0 22 1 1 0 1 1 Cột thứ ba sáng 0 0 1 0 0 1 0 0 24 1 1 1 0 1 Cột thứ tư sáng 1 1 1 1 1 0 0 0 F8 1 1 1 1 0 Cột thứ năm sáng
Bảng 7-8. Quét theo cách 1.
Chương 6. Thiết kế hệ thống vi xử lý. SPKT
Để thực hiện quét cột và dễ dàng cho việc mở rộng cột khi kết nối nhiều led ma trận với nhau thì thanh ghi dịch thường được sử dụng.
Với ma trận 8×8 thì thời gian sáng của 1 cột là 1/8 chu kỳ quét, thời gian tắt là 7/8, chính vì thế led sẽ sáng không rõ nếu làm việc với dòng và áp định mức. Để tăng cường độ sáng thì phải tăng áp và dòng. Bình thường led làm việc với dòng từ 10mA đến 20mA và áp là 2V, nhưng với phương pháp quét cho 1 led 8×8 thì dòng phải tăng lên khoảng 8 lần từ 80mA đến 160mA tương ứng.
Cách tính toán như sau: với dòng làm việc bình thường (không quét) chọn là 20mA, áp làm việc định mức 2V. Khi đó điện trở của mỗi led là:
100 20 2 mA V I U RLED
Khi dùng phương pháp quét thì dòng tức thời phải bằng 160mA, khi đó dòng trung bình:
mA mA ILED TB 20 8 160 _
Suy ra điện áp cung cấp cho led:
V mA
VLED_LED 160 10016
Thường thì chọn dòng thấp hơn nên áp cung cấp sẽ thấp – khoảng từ 9V đến 12V. Sơ đồ mạch điều khiển led ma trận như hình 7-39:
Chương 7. Giao tiếp ứng dụng vi điều khiển. SPKT
Hình 7-39. Sơ đồ mạch điều khiển.
Ưu điểm:
- Khi mở rộng thêm led thì chỉ cần kết nối song song 8 hàng và cột dùng thanh ghi dịch rất đơn giản do số lượng đường điều khiển ít.
- Mỗi một thời điểm chỉ có 1 cột sáng nên dòng tiêu thụ thấp. - Mạch điện đơn giản.
Khuyết điểm:
- Bị giới hạn số cột vì khi mở rộng càng nhiều cột thì thời gian tắt của led tăng thêm
tăng dòng quá lớn nguy hiểm cho led và led sáng không rõ sinh ra hiện tượng chập chờn. Giả sử có 100 cột thì cho dù quét nhanh hay quét chậm thì thời gian sáng của mỗi cột vẫn không đổi bằng 1/100, thời gian tắt bằng 99/100.
Cách 2: dữ liệu gởi ra cột, mã quét gởi ra hàng:
Mỗi kí tự có 5 byte mã giống như cách 1, nhưng trình tự thực như sau:
MÃ ĐIỀU KHIỂN HAØNG MÃ QUÉT ĐIỀU KHIỂN CỘT
Chương 6. Thiết kế hệ thống vi xử lý. SPKT H7 H6 H5 H4 H3 H2 H1 H0 Số hex C0 C1 C2 C3 C4 0 0 0 0 0 0 0 1 1 1 1 1 1 Hàng thứ 0 sáng 0 0 0 0 0 0 1 0 1 1 0 1 1 Hàng thứ 1 sáng 0 0 0 0 0 1 0 0 1 0 1 0 1 Hàng thứ 2 sáng 0 0 0 0 1 0 0 0 0 1 1 1 0 Hàng thứ 3 sáng 0 0 0 1 0 0 0 0 0 1 1 1 0 Hàng thứ 4 sáng 0 0 1 0 0 0 0 0 0 0 0 0 0 Hàng thứ 5 sáng 0 1 0 0 0 0 0 0 0 1 1 1 0 Hàng thứ 6 sáng 1 0 0 0 0 0 0 0 0 1 1 1 0 Hàng thứ 7 sáng HEX 07 DB DD DB 07
Bảng 7-9. Quét theo cách 2.
- Cho 5 bit thứ 0 của 5 byte mã chữ A được dịch ra các cột, cho hàng H0 dẫn – khi đó hàng H0 sáng tuỳ thuộc vào dữ liệu.
- Cho 5 bit thứ 1 của 5 byte mã chữ A được dịch ra các cột, cho hàng H1 dẫn – khi đó hàng H1 sáng tuỳ thuộc vào dữ liệu.
- Cho 5 bit thứ 2 của 5 byte mã chữ A được dịch ra các cột, cho hàng H2 dẫn – khi đó hàng H2 sáng tuỳ thuộc vào dữ liệu.
- …
- Cho 5 bit thứ 70 của 5 byte mã chữ A được dịch ra các cột, cho hàng H7 dẫn – khi đó hàng H1 sáng tuỳ thuộc vào dữ liệu.
Với cách quét theo hàng thì thời gian sáng của led là 1/8 thời gian tắt là 7/8.
Khi tăng thêm led số cột tăng lên thì thời gian sáng và tắt của mỗi led vẫn không đổi. Nhưng chu kỳ quét sẽ tăng vì phải tốn thêm thời gian gởi dữ liệu ra các cột, càng nhiều cột thì càng tốn thời gian gởi dữ liệu.
Để đáp ứng được tốc độ quét khi bảng quang báo có nhiều led thì phải sử dụng các IC có tốc độ làm việc cao khoảng vài chục MHz như CPLD phụ trách công việc này.
3. Chương trình điều khiển led ma trận:
Các chương trình ví dụ sử dụng sơ đồ nguyên lý hình 7-39 và điều khiển theo cách 1. Ví dụ 11: Chương trình điều khiển hiển thị chữ A:
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh hien thi ki tu chu A tren ma tran led dung yen
;ma chu A = 007H,0DBH,0DDH,0DBH,007H
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
hang equ p3 ;dieu khien hang
cotx equ p0 ;dieu khien cot mau xanh
cotd equ p2 ;dieu khien cot mau do
org 0000h
mov cotx,#0 ;tat quet neu co ket noi
mov cotd,#0 ;tat quet neu co ket noi
Chương 7. Giao tiếp ứng dụng vi điều khiển. SPKT
main: mov hang,#007h ;goi du lieu ra hang 1
mov cotx,#00000001b ;goi ma quet cho 1 transistor dan
lcall delay
mov cotx,#00h ;chong lem
mov hang,#0DBh ;goi du lieu ra hang 2
mov cotx,#00000010b ;cot thu 2 dan
lcall delay
mov cotx,#00h ;chong lem
mov hang,#0ddh ;goi du lieu re hang 3
mov cotx,#00000100b
lcall delay
mov cotx,#00h
mov hang,#0DBh ;goi du lieu ra hang 4
mov cotx,#00001000b
lcall delay
mov cotx,#00h
mov hang,#007h ;goi du lieu ra hang 5
mov cotx,#00010000b
lcall delay
mov cotx,#00h
sjmp main
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh con delay nho
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay: mov r5,#10 de: mov r6,#20 djnz r6,$ djnz r5,de ret end
Bài tập 13: Hãy thiết kế mạch điều khiển 4 led ma trận 8×8 dùng thanh ghi dịch 6B595 để quét cột. Viết chương trình hiển thị 1 chuỗi kí tự tuỳ ý.