Tải bản đầy đủ (.pdf) (3 trang)

Hướng dẫn sử dụng Kit 89 - Bài 9 pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (281.18 KB, 3 trang )

Hướng dẫn sử dụng Kit 89
Bài 9 : Chạy chữ trên Ma trận led

Mục đích:
Nắm vững nguyên lý điều khiển ma trận led. Xây dựng ứng dụng trên ma trận led.
Yêu cầu:
Viết chương trình chữ chạy trên ma trận led, cung cấp interface giúp người dùng
có thể thay đổi dễ dàng.

9.1 Nguyên lý chạy chữ trên ma trận led



Để chạy 1 dòng chữ qua ma trận led, bạn sẽ có 1 buffer lưu toàn bộ dòng chữ đó.
Buffer này thường là 1 mảng các byte. Chương trình sẽ định kì cắt 1 phần trong buffer
này đổ dữ liệu vào buffer nhỏ hơn dùng để quét led. Chương trình quét led sẽ hiển thị ra
led ma trận.
Tại thời điểm T1, dữ liệu đổ vào buffer quét led là chữ “H”. Tại thời điểm T2, 1
phần chữ H và E được đổ vào buffer này, và tại thời đi
ểm T3 là chữ “E”. Nếu khoảng
cách giữa các thời điểm nhỏ lại, bạn sẽ thấy hiệu ứng dòng chữu chạy qua ma trận led.
Để sinh ra được buffer chứa toàn bộ dòng chữ, bạn phải xử lý dữ liệu đã lưu sẵn
(tạm gọi là font chữ), ghép nối chúng sao cho đẹp mắt. Chẳng hạn muốn hiện chữ
“HELLO WORLD”,bạn phải làm như sau:
¾ Lấy font của chữ
“H”, bỏ những cột trống ở đầu và cuối, phần còn lại bỏ vào
buffer.
¾ Lấy font của chữ “E”, bỏ những cột trống ở đầu và cuối,thêm 1 byte 0x00 vào
buffer (tạo 1 nét rời giữa H và E) rồi bỏ dữ liệu của E vào.
¾ Tương tự, hết chữ “O”, bạn thêm khoảng 3 byte 0x00.
Tuỳ vào tài nguyên của hệ thống, bạn định nghĩa ra độ dài tối đa của buffer này.


Trong quá trình sinh ra buffer, chươ
ng trình sẽ cập nhật độ dài hiện tại và sẽ dừng việc
ghép chữ nếu độ dài là quá mức cho phép.
BKIT HARDWARE CLUB – www.bkit4u.com
55
Hướng dẫn sử dụng Kit 89
9.2 Kết nối phần cứng
Gạt switch 3 lên ON để kích hoạt ma trận led.

9.3 Viết chương trình
Chương trình sẽ gồm 3 group là TIMER, LED MATRIX và MAIN. Các group
TIMER và LED MATRIX được dùng lại. Trong file led_matrix.h ta khai báo thêm 1 hàm
cung cấp cho người dùng:
void set_message(char strMsg[]);
Hàm này cho phép người dùng thay đổi nội dung chữ chạy qua ma trận led. Ví dụ
gọi set_message(“HELLO WORLD”).
Để xử lý chuỗi trong KeilC, bạn include thêm 2 thư viện sau ở đầu file
led_matrix.c:
#include <stdlib.h>
#include <string.h>
Dữ liệu của buffer lớn gồm có 100 cột, biến total_length dùng để lưu độ dài hiện
tại của mảng buffer này:
unsigned char data_buff[100];
int total_length;
Mảng alphabet_upcase_led_matrix là dữ liệu font của các chữ cái in hoa. Trong
chương trình này chỉ hiển thị được các chữ cái in hoa, không bao gồm các chữ cái thường
và các kí tự số.
9.3.1 Hàm set_message(char strMsg[])
void set_message(char strMsg[])
{

int length;
int i;
int j;
int index_char;

length = strlen(strMsg);

//fill data into data_buff
for(i=0;i<length;i++)
{
index_char = (strMsg[i] - 'A')*8; //position to get font data
if(strMsg[i] != ' ') //is not blank character
{
for(j=index_char;;j++)//remove 0x00 at the begining
{
if(alphabet_upcase_led_matrix[j] != 0x00)
break;
}

for(;j<8 + index_char;j++)//copy data to data_buff
{
if(total_length != 100)
BKIT HARDWARE CLUB – www.bkit4u.com
56
Hướng dẫn sử dụng Kit 89
data_buff[total_length++]=
alphabet_upcase_led_matrix[j];

}
}

else //blank character,add 3 bytes 0x00
{
if(total_length != 100)
data_buff[total_length++] = 0x00;
if(total_length != 100)
data_buff[total_length++] = 0x00;
if(total_length != 100)
data_buff[total_length++] = 0x00;
}
}
}

9.3.2 Hàm main()
void main()
{
init_main();
init_timer0(); //use for scan led
init_timer1(); //use for delay_ms() function
init_led_matrix(); //initiate led matrix
set_message("HELLO WORLD");
while(1)
{
delay_ms (300);
update_display_led_matrix();
}
}
Hàm update_display_led_matrix() tăng con trỏ alphabet_index để lấy dữ liệu
trong data_buff bỏ vào red_buff và green buff. Biến alphabet_index được khởi tạo là -8
với ý nghĩa ở trạng thái đầu tiên màn hình led 7 đoạn không hiển thị gì cả. Khi hiện thực
hàm này bạn chú ý kiểm tra điều kiện của alphabet_index để lấy dữ liệu cho đúng. Chi

tiết của chương trình các bạn tham khảo tại thư mục Bai 9.
BKIT HARDWARE CLUB – www.bkit4u.com
57

×