Đây là bảng mã:
Code:
typedef struct { Code:
void copy_2_ram2(int8 index_char) { |
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, |
Trích:
|
Trích:
Thân, |
Trích:
|
Trích:
Thân, |
Vâng nói chung là kiến thức của em còn hạn chế quá. Em cũng chưa hiểu lắm. Để em thử xem. Cảm ơn anh rất nhiều vì những bài viết bổ ích.
|
gửi Anh Namnp
Bác Nampn ơi cho em hỏi với a. em dùng 2 hàm để ghi dữ liệu vào eeprom ngoài (24c512) mà sao ko được(nó bị ghi vào rom trong của pic) anh có cách nào ko giúp em với a.
Code:
void write_eeprom(long int address,unsigned char data) |
Trích:
Thân, |
Vâng em cảm ơn Anh nhiều, em đang xem lại đây a.
|
bạn cho mình xem sơ đồ kết nối i2c của ban dc ko
|
undefined
Trích:
"The 10-bit range of the pair can address a memory range of 1024 bytes (00h to 3FFh)." Con DSPIC30 thì nó giới thiệu như sau "The dsPIC30F4011/4012 devices have 1 Kbyte (512 words) of data EEPROM, with an address range from 0x7FFC00 to 0x7FFFFE." . hoặc " The dsPIC30F6010 device has 8 Kbytes (4K words) of data EEPROM, with an address range from 0x7FF000 to 0x7FFFFE. " Vậy với DSPIC này nếu dùng hai hàm trên để đọc và ghi EEPROM ở DSPIC30 thì dịa chỉ có bắt đầu từ 0x000000 hay bắt đầu từ 0x7FFC00 (ở dsPIC30F4011) và bắt đầu từ 0x7FF000 ( ở dòng dsPIC30F6010) ? Thanks ! Còn vấn đề nửa , em xem khá nhiều datasheet của pic dong 16 , 18 , dsPIC30 , hầu hết điều có giới thiệu "address range " của EEPROM trong phần DATA EEPROM. Nhưng riêng mỗi con 18F4550 ,lại chẳng thấy giới thiệu . Cũng liên quan đến EEPROM, nhưng ngoài luồng xíu , anh Nam cho em hỏi, e có làm mạch pickit2 full theo sơ đồ của MCHP đã chạy rồi. Trong đó em dùng 2 con EEPROM 24LC512 , đã chạy được chức năng Program to go. Em xem datasheet thấy con AT24C512B có vị trí chân và địa chỉ device (1,0,1,0,A2,A1,A0) , bộ nhớ thì 2 con như nhau 512Kbit. Con AT24C512B rẻ hơn xíu . Anh cho em hỏi mình có thể thay thế 24LC512 bằng AT24C512B để lắp vào PICKIT2 không ? Thanks anh nhiều . |
Múi giờ GMT. Hiện tại là 11:42 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam