Em đã đọc nhiều tài liệu về quang báo. Em biết đối với led matran thì dùng quét led để hiển thị . Em làm thử nhiều lần mà sao nó khong chạy. Có ai có thuật toán và chương trình mẫu (bằng ngôn ngữ C) cho em tham khảo với. Cái này làm em đau đầu lâu lắm rồi. em cảm ơn trước.
Thông báo
Collapse
No announcement yet.
Hỏi về thuật toán quét led matrix!!
Collapse
X
-
Nguyên văn bởi dvnccbmacbt Xem bài viếtEm đã đọc nhiều tài liệu về quang báo. Em biết đối với led matran thì dùng quét led để hiển thị . Em làm thử nhiều lần mà sao nó khong chạy. Có ai có thuật toán và chương trình mẫu (bằng ngôn ngữ C) cho em tham khảo với. Cái này làm em đau đầu lâu lắm rồi. em cảm ơn trước.
-
hehe! bạn phải nói ra bạn đang muốn làm gì? và bạn đã làm được những gì và làm đến đâu của vấn đề! bạn đau dầu >> bạn đau ở vấn đề gì đau ở đâu?phần cứng của bạn? tóm lại bạn phải nói đến chỗ vướng mắc của bạn làm thì mình sẽ chỉ dẫn!chúc bạn thành công!!!--------------------------------------
Cùng nhau tỏa sáng
Email:
Comment
-
Cảm ơn mọi người nhé! Đây là sơ đồ mạch( vô cùng đơn giản vì em mới học)
[IMG][img=http://img484.imageshack.us/img484/7758/up002zu7.th.jpg][/IMG]
P1 nối với chân âm, P3 nối với chân dương.
Còn đây là chương trình : dùng keil C
Code:#include<REGX51.H> #include <intrins.h> //ham delay void delay (unsigned int time ) { while(time--) { unsigned char temp = 121; while(temp--); } } void main(void) { while (1) { // bat dau quet P1=0xE7;P3=0xFC; P3=0x3;P1=0x0; } }
Cho em hỏi vài chỗ :
1. Chương trình của em có phải là quét led không? Vì em chưa hiểu rõ lắm.
2. Em không rành về mạch nên không biết mạch của em có đúng không? ( ý em là nếu mắc mạch thật thì có cháy không?)
3. Em không làm cho chữ "T" chạy được! Em không biết thuật toán chỗ này!
4. Em không biết có sơ đồ và thuật toán nào tối ưu hơn không, mọi người giúp em với?
Em không post ảnh lớn hơn được mọi người giúp em.
Em cảm ơn nhiếu!
Comment
-
Mạch thiết kế vậy có nuớc nó lờ mờ sáng hoặc nhập nhòe sáng.
Vì cậu tích cực 1 cột (hoặc 1 hàng) bằng chính ngõ ra của VĐK.
Thứ 2 nữa giải thuật quét của cậu không chạy.vì đưa bộ giá trị đó có nuớc toàn con led nó sáng.
Đây là 1 đồ án mình đã làm với 1 matrix led 5*7 và cho phép chữ chạy.
Cậu có thể tham khảo giải thuật.Attached Files
Sông dài, Thuyền lớn, Biển rộng bao la.
Tháo neo ngôn ngữ, lèo lái con thuyền kiến thức nhân loại.
Comment
-
Nguyên văn bởi dvnccbmacbt Xem bài viếtCảm ơn mọi người nhé! Đây là sơ đồ mạch( vô cùng đơn giản vì em mới học)
[IMG][img=http://img484.imageshack.us/img484/7758/up002zu7.th.jpg][/IMG]
P1 nối với chân âm, P3 nối với chân dương.
Còn đây là chương trình : dùng keil C
#include<REGX51.H>
#include <intrins.h>
//ham delay
void delay (unsigned int time )
{ while(time--)
{ unsigned char temp = 121;
while(temp--);
}
}
void main(void)
{
while (1)
{ // bat dau quet
P1=0xE7;P3=0xFC;
P3=0x3;P1=0x0;
}
}
Còn đây là kết quả chạy.
[IMG][/IMG]
Cho em hỏi vài chỗ :
1. Chương trình của em có phải là quét led không? Vì em chưa hiểu rõ lắm.
2. Em không rành về mạch nên không biết mạch của em có đúng không? ( ý em là nếu mắc mạch thật thì có cháy không?)
3. Em không làm cho chữ "T" chạy được! Em không biết thuật toán chỗ này!
4. Em không biết có sơ đồ và thuật toán nào tối ưu hơn không, mọi người giúp em với?
Em không post ảnh lớn hơn được mọi người giúp em.
Em cảm ơn nhiếu!
thiết kế led cần quan trọng nhất là phải thiết kế tốt phần công suât cho nó.
bạn dùng trực tiếp vdk như vậy sẽ không đủ dòng cho led hoạt động.
Comment
-
Nguyên văn bởi dvnccbmacbt Xem bài viếtCảm ơn mọi người nhé! Đây là sơ đồ mạch( vô cùng đơn giản vì em mới học)
[IMG][img=http://img484.imageshack.us/img484/7758/up002zu7.th.jpg][/IMG]
P1 nối với chân âm, P3 nối với chân dương.
Còn đây là chương trình : dùng keil C
#include<REGX51.H>
#include <intrins.h>
//ham delay
void delay (unsigned int time )
{ while(time--)
{ unsigned char temp = 121;
while(temp--);
}
}
void main(void)
{
while (1)
{ // bat dau quet
P1=0xE7;P3=0xFC;
P3=0x3;P1=0x0;
}
}
Còn đây là kết quả chạy.
[IMG][/IMG]
Cho em hỏi vài chỗ :
1. Chương trình của em có phải là quét led không? Vì em chưa hiểu rõ lắm.
2. Em không rành về mạch nên không biết mạch của em có đúng không? ( ý em là nếu mắc mạch thật thì có cháy không?)
3. Em không làm cho chữ "T" chạy được! Em không biết thuật toán chỗ này!
4. Em không biết có sơ đồ và thuật toán nào tối ưu hơn không, mọi người giúp em với?
Em không post ảnh lớn hơn được mọi người giúp em.
Em cảm ơn nhiếu!
Comment
-
Cảm ơn mọi người nhiều. Em có đọc thêm tài liệu. CÓ phải cách như thế này không? Đầu tiên là mã hóa các ký tự vào một bảng, sau đó lấy ra, quét led và dịch. Em còn lờ mờ về thuật toán lắm. Em còn không hiểu chỗ mã hóa ký tự. Chỉ thấy 0xff,v..v. Em tìm dc một VD:
-chuong trinh viet bang Keil C.Dung 3 ma tran 8x8
===========PROGRAM=========================
Code:#include<reg52.h> unsigned char code hang[410] = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0x30,0x7a,0x30,0x00,0xff,0x03,0x3a,0x39,0x3a,0x03,0xff,0x00,0x30,0x7a,0x30,0x00,0xff, 0xff,0xff,0xff,0xff,0xff, 0xf7,0x00,0x76,0x7e,0x81,0xff, //D 0x05,0xff, //i 0x05,0x56,0x56,0x45,0xff, //e 0x07,0xef,0xf7,0x07,0xff, //n 0xff, // 0xfe,0xfe,0x00,0xfe,0xfe,0xff, //T 0x82,0x7c,0x7f,0x85,0xf9,0xff, //u 0xff, 0x00,0xfd,0xfb,0xfd,0x00,0xff, //M 0x17,0x57,0x57,0x0f,0xff, //a 0x07,0xef,0xf7,0x07,0xff, //n 0x00,0xf7,0xf7,0x0f,0xff, //h 0xff, 0x00,0x7f,0x7f,0xff, //L 0x17,0x57,0x57,0x0f,0xff, //a 0x07,0xef,0xf7,0x07,0xff, //n 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0x30,0x7a,0x30,0x00,0xff,0x03,0x3a,0x39,0x3a,0x03,0xff,0x00,0x30,0x7a,0x30,0x00,0xff, 0xff,0xff,0xff,0xff,0xff, 0xb9,0x76,0x76,0x8d,0xff, //S 0x82,0x7c,0x7f,0x85,0xf9, //u' 0x17,0x57,0x57,0x0f,0xff, //a 0xff, 0x81,0x7e,0x7e,0xbd,0xff, //C 0x00,0xf7,0xf7,0x0f,0xff, //h 0x85,0x7e,0x7d,0x86,0xf9, //u'~ 0x17,0x57,0x57,0x0f,0xff, //a 0xff, 0x00,0xfd,0xfb,0xfd,0x00,0xff, //M 0x87,0x7f,0x7f,0x87,0xff, //u 0x17,0x57,0x57,0x0f,0xff, //a 0xff, 0x00,0x76,0x76,0x89,0xff, //B 0x17,0x57,0x55,0x0e,0xff, //a' 0x07,0xef,0xf7,0x07,0xff, //n 0xff, 0x00,0x7f,0x7f,0xff, //L 0x81,0x7e,0x7e,0x81,0xff, //O 0x03,0xed,0xee,0xed,0x03,0xff, //A 0xf7,0xf7,0xff, //- 0x03,0xed,0xee,0xed,0x03,0xff, //A 0x00,0xfd,0xfb,0xfd,0x00,0xff, //M 0x00,0x7f,0x7f,0xff, //L 0x00,0xff, //I 0xf7,0xf7,0xff, //- 0xfe,0xfe,0x00,0xfe,0xfe,0xff, //T 0xc0,0xbf,0x7f,0xbf,0xc0,0xff, //V 0xf7,0xf7,0xff, //- 0xc0,0xbf,0x7f,0xbf,0xc0,0xff, //V 0x81,0x7e,0x7e,0xbd,0xff, //C 0x00,0x7e,0x7e,0x81,0xff, //D 0xf7,0xf7,0xff, //- 0x00,0x7e,0x7e,0x81,0xff, //D 0xc0,0xbf,0x7f,0xbf,0xc0,0xff, //V 0x00,0x7e,0x7e,0x81,0xff, //D 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0x7e ,0x42,0x76,0x6e,0x76,0x42,0x7e,0x42,0x5e,0x5e,0x7e,0x00,0xff,0xff,0xff, 0x00,0x7e,0x7a,0x42,0x7a,0x7e,0x42,0x6a,0x52,0x7e, 0x7a,0x42,0x7a,0x7e,0x00,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
Comment
-
Thuat Toan Ma Tran Led
BAI VIET CUA LONG DANH TANG BAN VE MA TRAN LED
O BAI TRUOC MINH DA DANG MOT THUAT TOAN BANG C VE MA TRAN , CHUYEN NAY THI DON GIAN THOI KHONG CO GI PHUC TAP CA , BAN XEM DOAN CODE NAY NHE DON GIAN LAM , LAP MACH LA CHAY NGAY THOI
mau(1);
mass(x);
mang[0]=c ;
mang[1]=o ;
mang[2]=n ;
mang[3]=g ;
mang[4]=t ;
mang[5]=y ;
PORTB = mang[0] & hien_phai(255,0);
PORTD = mang[1] & hien_phai(255,0);
PORTC = mang[2] & hien_phai(255,0);
PORTA.7=1; PORTA.6=0;
PORTB = mang[3] & hien_phai(255,0);
PORTD = mang[4] & hien_phai(255,0);
PORTC = mang[5] & hien_phai(255,0);
VOI THUAT TOAN NAY BAN SE VE LED MA TRAN
CHUC BAN THANH CONG
Comment
-
Nguyên văn bởi dvnccbmacbt Xem bài viếtCảm ơn mọi người nhiều. Em có đọc thêm tài liệu. CÓ phải cách như thế này không? Đầu tiên là mã hóa các ký tự vào một bảng, sau đó lấy ra, quét led và dịch. Em còn lờ mờ về thuật toán lắm. Em còn không hiểu chỗ mã hóa ký tự. Chỉ thấy 0xff,v..v. Em tìm dc một VD:
-chuong trinh viet bang Keil C.Dung 3 ma tran 8x8
===========PROGRAM=========================
Code:#include<reg52.h> unsigned char code hang[410] = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0x30,0x7a,0x30,0x00,0xff,0x03,0x3a,0x39,0x3a,0x03,0xff,0x00,0x30,0x7a,0x30,0x00,0xff, 0xff,0xff,0xff,0xff,0xff, 0xf7,0x00,0x76,0x7e,0x81,0xff, //D 0x05,0xff, //i 0x05,0x56,0x56,0x45,0xff, //e 0x07,0xef,0xf7,0x07,0xff, //n 0xff, // 0xfe,0xfe,0x00,0xfe,0xfe,0xff, //T 0x82,0x7c,0x7f,0x85,0xf9,0xff, //u 0xff, 0x00,0xfd,0xfb,0xfd,0x00,0xff, //M 0x17,0x57,0x57,0x0f,0xff, //a 0x07,0xef,0xf7,0x07,0xff, //n 0x00,0xf7,0xf7,0x0f,0xff, //h 0xff, 0x00,0x7f,0x7f,0xff, //L 0x17,0x57,0x57,0x0f,0xff, //a 0x07,0xef,0xf7,0x07,0xff, //n 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0x30,0x7a,0x30,0x00,0xff,0x03,0x3a,0x39,0x3a,0x03,0xff,0x00,0x30,0x7a,0x30,0x00,0xff, 0xff,0xff,0xff,0xff,0xff, 0xb9,0x76,0x76,0x8d,0xff, //S 0x82,0x7c,0x7f,0x85,0xf9, //u' 0x17,0x57,0x57,0x0f,0xff, //a 0xff, 0x81,0x7e,0x7e,0xbd,0xff, //C 0x00,0xf7,0xf7,0x0f,0xff, //h 0x85,0x7e,0x7d,0x86,0xf9, //u'~ 0x17,0x57,0x57,0x0f,0xff, //a 0xff, 0x00,0xfd,0xfb,0xfd,0x00,0xff, //M 0x87,0x7f,0x7f,0x87,0xff, //u 0x17,0x57,0x57,0x0f,0xff, //a 0xff, 0x00,0x76,0x76,0x89,0xff, //B 0x17,0x57,0x55,0x0e,0xff, //a' 0x07,0xef,0xf7,0x07,0xff, //n 0xff, 0x00,0x7f,0x7f,0xff, //L 0x81,0x7e,0x7e,0x81,0xff, //O 0x03,0xed,0xee,0xed,0x03,0xff, //A 0xf7,0xf7,0xff, //- 0x03,0xed,0xee,0xed,0x03,0xff, //A 0x00,0xfd,0xfb,0xfd,0x00,0xff, //M 0x00,0x7f,0x7f,0xff, //L 0x00,0xff, //I 0xf7,0xf7,0xff, //- 0xfe,0xfe,0x00,0xfe,0xfe,0xff, //T 0xc0,0xbf,0x7f,0xbf,0xc0,0xff, //V 0xf7,0xf7,0xff, //- 0xc0,0xbf,0x7f,0xbf,0xc0,0xff, //V 0x81,0x7e,0x7e,0xbd,0xff, //C 0x00,0x7e,0x7e,0x81,0xff, //D 0xf7,0xf7,0xff, //- 0x00,0x7e,0x7e,0x81,0xff, //D 0xc0,0xbf,0x7f,0xbf,0xc0,0xff, //V 0x00,0x7e,0x7e,0x81,0xff, //D 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0x7e ,0x42,0x76,0x6e,0x76,0x42,0x7e,0x42,0x5e,0x5e,0x7e,0x00,0xff,0xff,0xff, 0x00,0x7e,0x7a,0x42,0x7a,0x7e,0x42,0x6a,0x52,0x7e, 0x7a,0x42,0x7a,0x7e,0x00,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
Chương trình trên của bạn cho phép hiện thị mã ký tự đã được mã hóa sẵn và được đưa vào trong mảng 410 byte trên.
bạn sử dụng 3 con leld ma trận 8x8,mình đoán rằng ở đây sử dụng cách quét theo cột.
chương trình trên của bạn sẽ quét liên tục 8x8=64 cột ma trận,ban đầu cho cột đầu tiên sáng ứng với dữ liệu là byte đầu của mảng có 410byte ở trên,tiếp đó là đến cột thứ hai ứng với byte thứ hai của mảng 410byte trên,cứ như vậy cho đến cột thứ 64 của bạn.như vậy nếu chỉ quét không như vậy bạn chỉ có thể nhìn thấy 64 byte đầu của mảng trên,để có thể nhìn thấy các ký tự tiếp theo của mảng trên bạn phải sử dụng thuật toán là phải dịch mảng đi để hiển thị tiếp.
bạn đã biết thuật toán để làm được chức năng đó chưa nhẩy.
Comment
-
Về thuật toán cơ bản thì cách làm như đồ án của Thái là đúng! Nhưng tôi có vài nhận xét sau:
- đã là ledmatrix thì phải quét theo hàng, cột để nhìn thấy/ được với tần số > 24hình/s.
- để hiển thị thông tin thì phải số lượng led lớn ( dài 3 - 15 m cao 20-60cm)
- Cần phần cứng: hàng điều khiển bằng transitor và cột được xuất dữ liệu bởi 74HC595 ( thanh ghi dịch ) mất 3 chân VXL thôi
- Bộ font không làm như thái vì mất tg select case nên để trong falsh bộ font 128 cho TA và 256 cho việt nam theo mã ASCII--------------------------------------
Cùng nhau tỏa sáng
Email:
Comment
-
Nguyên văn bởi luonghanh Xem bài viếtVề thuật toán cơ bản thì cách làm như đồ án của Thái là đúng! Nhưng tôi có vài nhận xét sau:
- đã là ledmatrix thì phải quét theo hàng, cột để nhìn thấy/ được với tần số > 24hình/s.
- để hiển thị thông tin thì phải số lượng led lớn ( dài 3 - 15 m cao 20-60cm)
- Cần phần cứng: hàng điều khiển bằng transitor và cột được xuất dữ liệu bởi 74HC595 ( thanh ghi dịch ) mất 3 chân VXL thôi
- Bộ font không làm như thái vì mất tg select case nên để trong falsh bộ font 128 cho TA và 256 cho việt nam theo mã ASCII
-Số lượng led nhỏ là do thầy yêu cầu thì mình làm(ko dư tiền chơi nhiều).
-Còn bộ font thì nó đuợc đặt trong FLASH đấy bạn đừng hiểu lầm từ khoá PROGMEM chính là nói lên nó đặt trong flash.select case là để giải mã từ ascii sang mã font lưu trong flash việc truy xuất bộ font đuợc thực hiện bằng cách giống truy xuất mảng.Bộ font này được mình xây dựng bằng 1 cách hết sức đơn giản mà không tốn công sức tí nào để ngồi vẽ hoặc viết chương trình tạo.
Sông dài, Thuyền lớn, Biển rộng bao la.
Tháo neo ngôn ngữ, lèo lái con thuyền kiến thức nhân loại.
Comment
-
Led
Các anh làm LED ơi, em cũng rất khoái cái món LED này, em muốn tìm cái LED của bọn tầu to như những cái hay treo ở ngoài đường ấy(không phải là cái 5x7 hay cái 8x8 nhỏ xíu như ngoài chợ giời vẫn bán đâu). Bác nào cái đó bán ở đâu chỉ cho em với. Em cảm on các bác.Đường nào dìu tôi đi đến cơn say???????
0953 735 178
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677nhân tiện cho mình hỏi thêm về cái phần test hipot (cao áp),là để kiểm tra độ bền cách điện giưa các cuộn dây,mà thấy thông số test thường ở mức 4kvac,vậy nếu mấy con fail đó xài bình thường vẫn dduocj phải không ạ,vì điện mình làm gì lên tới mức đó
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:52 -
-
Trả lời cho Kiểm tra biến ápbởi lamvu0677máy đo số vòng thì cty có ,mà nó to quá,tưởng có máy nào gọn gọn bỏ túi được thì tiện hơn,vì đi lại nhiều...
-
Channel: Điện tử dành cho người mới bắt đầu
10-11-2024, 08:47 -
-
bởi tmcodonMình thấy diễn đàn có chuyên mục quảng cáo rồi mà. Bạn đóng góp để mở luồng riêng
-
Channel: Hướng dẫn sử dụng diễn đàn
09-11-2024, 13:36 -
-
bởi Nicole08Xin chào mọi người, tôi đã sử dụng Flashforge Inventor 2 được gần 5 năm và rất hài lòng với nó, nhưng tuần trước đã xảy ra sự cố. Có vẻ như động cơ bước đưa sợi in vào đầu nóng đã bị hỏng. Mọi thứ khác có vẻ ổn trên máy...
-
Channel: Điện tử dành cho người mới bắt đầu
09-11-2024, 12:55 -
Comment