VI ĐIỀU KHIỂN GIAO TIẾP VỚI LED MA TRẬN:

Một phần của tài liệu Giao tiếp ứng dụng trong vi xử lý (Trang 47 - 52)

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 VAØ 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.

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ố hex C0 C1 C2 C3 C4 1 1 1 1 1 0 0 0 F8 0 1 1 1 1 Cột thứ 1 sáng 0 0 1 0 0 1 0 0 24 1 0 1 1 1 Cột thứ 2 sáng 0 0 1 0 0 0 1 0 22 1 1 0 1 1 Cột thứ 3 sáng 0 0 1 0 0 1 0 0 24 1 1 1 0 1 Cột thứ 4 sáng 1 1 1 1 1 0 0 0 F8 1 1 1 1 0 Cột thứ 5 sáng Bảng 7-8. Mã chữ A

Để 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 ×100Ω=16

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:

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. (adsbygoogle = window.adsbygoogle || []).push({});

Cách 2: dữ liệu gởi ra cột, mã quét gởi ra hàng:

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ố hex C0 C1 C2 C3 C4 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ứ 7 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

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 (adsbygoogle = window.adsbygoogle || []).push({});

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ỳ ý.

Một phần của tài liệu Giao tiếp ứng dụng trong vi xử lý (Trang 47 - 52)