![]() |
|
![]() |
#1 |
Đệ tử 3 túi
Tham gia ngày: Jan 2009
Bài gửi: 52
: |
Đây là bảng mã:
Code:
typedef struct { int8 b[5]; /* Data */ }T_font; const T_font font[]={ //******************BANG MA ASCII**************** //ascii_code: 0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE 0 0xFF,0xFF,0xA0,0xFF,0xFF,//! 1 0xFF,0xFF,0xF8,0xF4,0xFF,//' 2 0xEB,0x80,0xEB,0x80,0xEB,//# 3 0xDB,0xD5,0x80,0xD5,0xED,//$ 4 0xD8,0xEA,0x94,0xAB,0x8D,//% 5 0xC9,0xB6,0xA9,0xDF,0xAF,//& 6 0xFF,0xFF,0xF8,0xF4,0xFF,//' 7 0xFF,0xE3,0xDD,0xBE,0xFF,//( 8 0xFF,0xBE,0xDD,0xE3,0xFF,//) 9 0xD5,0xE3,0x80,0xE3,0xD5,//* 10 0xF7,0xF7,0xC1,0xF7,0xF7,//+ 11 0xFF,0xA7,0xC7,0xFF,0xFF,//, 12 0xF7,0xF7,0xF7,0xF7,0xF7,//- 13 0xFF,0x9F,0x9F,0xFF,0xFF,//x 14 0xFF,0xC9,0xC9,0xFF,0xFF,/// 15 0xC1,0xAE,0xB6,0xBA,0xC1,//0 16 0xFF,0xBD,0x80,0xBF,0xFF,//1 17 0x8D,0xB6,0xB6,0xB6,0xB9,//2 18 0xDD,0xBE,0xB6,0xB6,0xC9,//3 19 0xE7,0xEB,0xED,0x80,0xEF,//4 20 0xD8,0xBA,0xBA,0xBA,0xC6,//5 21 0xC3,0xB5,0xB6,0xB6,0xCF,//6 22 0xFE,0x8E,0xF6,0xFA,0xFC,//7 23 0xC9,0xB6,0xB6,0xB6,0xC9,//8 24 0xF9,0xB6,0xBE,0xD6,0xE1,//9 25 0xFF,0xC9,0xC9,0xFF,0xFF,//: 26 0xFF,0xA4,0xC4,0xFF,0xFF,//// 27 0xF7,0xEB,0xDD,0xBE,0xFF,//< 28 0xEB,0xEB,0xEB,0xEB,0xEB,//= 29 0xFF,0xBE,0xDD,0xEB,0xF7,//> 30 0xFD,0xFE,0xAE,0xF6,0xF9,//? 31 0xCD,0xB6,0x8E,0xBE,0xC1,//@ 32 0x83,0xF5,0xF6,0xF5,0x83,//A 33 0xBE,0x80,0xB6,0xB6,0xC9,//B 34 0xC1,0xBE,0xBE,0xBE,0xDD,//C 35 0xBE,0x80,0xBE,0xBE,0xC1,//D 36 0x80,0xB6,0xB6,0xB6,0xBE,//E 37 0x80,0xF6,0xF6,0xFE,0xFE,//F 38 0xC1,0xBE,0xB6,0xB6,0xC5,//G 39 0x80,0xF7,0xF7,0xF7,0x80,//H 40 0xFF,0xBE,0x80,0xBE,0xFF,//I 41 0xDF,0xBF,0xBE,0xC0,0xFE,//J 42 0x80,0xF7,0xEB,0xDD,0xBE,//K 43 0x80,0xBF,0xBF,0xBF,0xFF,//L 44 0x80,0xFD,0xF3,0xFD,0x80,//M 45 0x80,0xFD,0xFB,0xF7,0x80,//N 46 0xC1,0xBE,0xBE,0xBE,0xC1,//O 47 0x80,0xF6,0xF6,0xF6,0xF9,//P 48 0xC1,0xBE,0xAE,0xDE,0xA1,//Q 49 0x80,0xF6,0xE6,0xD6,0xB9,//R 50 0xD9,0xB6,0xB6,0xB6,0xCD,//S 51 }; //Phan tu hai const T_font font2[]={ 0xFE,0xFE,0x80,0xFE,0xFE,//T 52 0xC0,0xBF,0xBF,0xBF,0xC0,//U 53 0xE0,0xDF,0xBF,0xDF,0xE0,//V 54 0xC0,0xBF,0xCF,0xBF,0xC0,//W 55 0x9C,0xEB,0xF7,0xEB,0x9C,//X 56 0xFC,0xFB,0x87,0xFB,0xFC,//Y89 24 57 0x9E,0xAE,0xB6,0xBA,0xBC,//Z90 25 58 0xFF,0x80,0xBE,0xBE,0xFF,//[ 59 0xFD,0xFB,0xF7,0xEF,0xDF,//\ 60 0xFF,0xBE,0xBE,0x80,0xFF,//] 61 0xFB,0xE1,0xE0,0xE1,0xFB,//^ 62 0x7F,0x7F,0x7F,0x7F,0x7F,//_ 63 0xFF,0xFF,0xF8,0xF4,0xFF,//' 64 0xDF,0xAB,0xAB,0xAB,0xC7,//a 65 0x80,0xC7,0xBB,0xBB,0xC7,//b 0xFF,0xC7,0xBB,0xBB,0xBB,//c 0xC7,0xBB,0xBB,0xC7,0x80,//d 0xC7,0xAB,0xAB,0xAB,0xF7,//e 69 0xF7,0x81,0xF6,0xF6,0xFD,//f 0xF7,0xAB,0xAB,0xAB,0xC3,//g 71 0x80,0xF7,0xFB,0xFB,0x87,//h 72 0xFF,0xBB,0x82,0xBF,0xFF,//i 73 0xDF,0xBF,0xBB,0xC2,0xFF,//j 74 0xFF,0x80,0xEF,0xD7,0xBB,//k 75 0xFF,0xBE,0x80,0xBF,0xFF,//l 76 0x83,0xFB,0x87,0xFB,0x87,//m 77 0x83,0xF7,0xFB,0xFB,0x87,//n 78 0xC7,0xBB,0xBB,0xBB,0xC7,//o 79 0x83,0xEB,0xEB,0xEB,0xF7,//p 80 0xF7,0xEB,0xEB,0xEB,0x83,//q 81 0x83,0xF7,0xFB,0xFB,0xF7,//r 82 0xB7,0xAB,0xAB,0xAB,0xDB,//s 83 0xFF,0xFB,0xC0,0xBB,0xBB,//t 84 0xC3,0xBF,0xBF,0xDF,0x83,//u 85 0xE3,0xDF,0xBF,0xDF,0xE3,//v 86 0xC3,0xBF,0xCF,0xBF,0xC3,//w 87 0xBB,0xD7,0xEF,0xD7,0xBB,//x 88 0xF3,0xAF,0xAF,0xAF,0xC3,//y 89 0xBB,0x9B,0xAB,0xB3,0xBB,//z 90 0xFB,0xE1,0xE0,0xE1,0xFB,//^ 92 0xE3,0xE3,0xC1,0xE3,0xF7,//->93 0xF7,0xE3,0xC1,0xE3,0xE3,//<-94 0xEF,0xC3,0x83,0xC3,0xEF,//95 0xFF,0xFF,0xFF,0xFF,0xFF//BLANK CHAR 96 }; // End of code table Code:
void copy_2_ram2(int8 index_char) { int8 i,j; for (j=0;j<=5;j++) { for (i=90;i>0;i--) // Dich RAM buff_disp[i]= buff_disp[i-1]; //Dich RAM sang trai buff_disp[0]=font2[index_char].b[j]; //Luu ma ascii vao RAM display(); // Goi hien thi } buff_disp[0]=0xff; // Them mot khoang trang giua hai ky tu } void copy_2_ram1(int8 index_char) { int8 i,j; for (j=0;j<=5;j++) { // Dich RAM for (i=90;i>0;i--) buff_disp[i]= buff_disp[i-1]; // Dich RAM sang trai buff_disp[0]=font[index_char].b[j]; // Luu ma ascii vao RAM display(); // Goi hien thi } buff_disp[0]=0xff; } thay đổi nội dung bởi: namqn, 19-02-2009 lúc 05:01 PM. |
![]() |
![]() |
![]() |
#2 |
Trưởng lão PIC bang
|
Như vậy là bạn đã biết cách tạo font cho LED ma trận. Vấn đề còn lại là chọn phương pháp hiện thực font 1-byte tiếng Việt cho thuận lợi khi viết code thôi.
Với font 1-byte, bạn có thể có tối đa 256 ký tự trong một bảng font, và phần bảng mã ASCII mà bạn đã hiện thực mới chiếm có 97 ký tự, do đó bạn vẫn còn một số mã chưa dùng để hiện thực các ký tự tiếng Việt có dấu. Các lý do mà tôi khuyên bạn dựa vào bảng font tiếng Việt 1-byte trên máy tính: - Thuận lợi khi viết code trên máy tính, vì bạn có thể chọn bảng mã font với bộ gõ tiếng Việt để nhập các chuỗi hằng vào chương trình - Tương thích với các host PC, khi bạn muốn dùng một chương trình trên host PC để truyền các thông điệp cần hiển thị lên LED (qua một giao tiếp nào đó như RS-232, USB, ...) Tham khảo trang web sau về các bảng mã tiếng Việt: http://vietunicode.sourceforge.net/charset/, xét ví dụ bảng mã VISCII (là bảng mã chỉ sử dụng 1 byte. Giả sử bây giờ bạn muốn hiện thực ký tự "â" (mã 0xE2 = 226 trong bảng mã VISCII). Bạn chỉ cần lấy 5 byte cho ký tự "a" trong bảng font của bạn, sửa lại để hiển thị "â" trên LED, và đặt vào vị trí tương ứng với địa chỉ 226 trong bảng font của bạn, là có thể hiển thị ký tự đó trên LED ma trận của bạn. Làm tương tự cho các ký tự khác, theo như bảng mã VISCII, và sau đó bạn có thể dùng một host PC để gửi các thông điệp tiếng Việt mã hóa theo bảng mã VISCII từ máy tính đến vi điều khiển để hiển thị lên LED ma trận. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
![]() |
![]() |
![]() |
#3 | |
Đệ tử 3 túi
Tham gia ngày: Jan 2009
Bài gửi: 52
: |
Trích:
|
|
![]() |
![]() |
![]() |
#4 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#5 |
Đệ tử 3 túi
Tham gia ngày: Jan 2009
Bài gửi: 52
: |
Vâng để em tìm hiểu thêm. Nhưng mà anh ơi làm sao viết được tiếng việt trong CCS hả anh? Chẳng lẽ muốn viết chữ Â lại phải viết hai chữ A à? Như thế thì khó xử lý hơn rất nhiều.
|
![]() |
![]() |
![]() |
#6 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
|
|