Thứ Bảy, ngày 06 tháng 10 năm 2012

Led cube 5x5x5 dùng 89S52


   M mới hoàn thành xong khối led cube 5x5x5 nên hôm nay m viết bài này muốn chia sẻ với mọi người. Ai có nhu cầu làm thì m sẽ cố gắng hướng dẫn nhiệt tình.
1) Giới thiệu.
- Led cube là 1 khối led hình lập phương, noa là sự kết hợp của các con led đơn được sắp xếp lại tạo thành 1 khối lập phương vững chắc và đẹp mắt. Hình dáng như sau:

- Kết hợp với những hiệu ứng như: pháo hoa, giun bò, sóng nước, pittong, chạy chữ… ta sẽ được khối led 3D vô cùng đẹp mắt.


2) Nguyên liệu.
- Khối led 3D bao gồm 2 phần: phần khối led lập phương và phần điều khiển. Ở đây, m sử dụng chip 89S52 vì nó có nhiều ưu điểm: chip 89S52 là chip vi điều khiển rất điển hình và khá dễ hiểu cấu trúc và cách lập trình cho nó nên rất thích hợp cho những người mới làm quen với vi điều khiển, đặc biệt giá thành của nó cũng khá rẻ. Các b có thể sử dụng 89C52 để thay thế cho 89S52, tuy nhiên, m khuyên là nên dùng 89S52 vì dòng chip này có chức năng nạp “on board” nên rất tiện lợi khi nạp cho chip vì sẽ không cần nhổ chip ra khỏi mạch.
    Do đó, nguyên liệu để làm khối led 3D này như sau:
-         - 1 chip 89S52.
- 125 con led đục ( màu tùy vào sở thích của từng người).
- 30 con trở 470 Ohm.
- 5 con transistor A1013.
- Đế cắm cho chip 89S52 (dùng đế cho an toàn và tiện dụng).
- 4 dây bus 8.
- 1 nút bấm cho mạch reset.
- Board đồng để làm mạch in.
- Mạch nạp cho 89S
- Và một số dụng cụ để làm mạch.
3) Cách làm.
- Bẻ chân led và hàn các led với nhau theo kiểu Anot chung. Hàn từng tầng 1 mỗi tầng 25  con led tạo thành 25 cột. Khoảng cách giữa các led bằng khoảng cách các chân led ở phần mạch in. Sau khi hàn xong 5 tầng thì tiếp tục hàn ghép tầng lại ta sẽ được khối led lập phương.
- Dùng board đồng để làm mạch in: file mạch in các b download ở link phía dưới, hoặc có thể tự đi dây theo ý thích. Sau khi làm mạch in xong thì tiến hành hàn linh kiện và hàn khối led vào mạch.
- Dùng mạch nạp để nạp hiệu ứng cho chip 89S52. M đã sưu tầm và viết thêm được 1 số hiệu ứng rất đẹp các b tải ở linh phía dưới.
- Cắm các dây bus để kết nối khối led và khối điều khiển lại. Cấp nguồn vào và hưởng thụ thành quả mà m đã làm được.
4) Sơ đồ nguyên lý
a) Sơ đồ nguyên lý khối điều khiển
b) Sơ đồ nguyên lý khối Led

5) Sơ đồ mạch in
a) Sơ đồ mạch in


- Tải ở link dưới.
b) Hình ảnh 3D của mạch


Pass Unlock: quangtung1123

Chúc các b thành công.

111 nhận xét:

  1. Trả lời
    1. anh oi hinh nhu trong mach co con dien tro bang nua~ ha? anh

      Xóa
  2. ok, b gửi mail cho m m gửi cho: quangtung1123@gmail.com.
    GL!

    Trả lờiXóa
    Trả lời
    1. anh ơi mình thay tụ 22p bằng tụ 33p được ko anh

      Xóa
    2. Dùng tụ 33p cũng được nha.

      Xóa
  3. Anh ơi em không hiểu lắm. Theo em học thì kipshop1 thì
    con R của mình chịu mất 5V vậy áp không đủ qua led sao sang. led 3V 10mA 20mA mà anh

    Trả lờiXóa
  4. Áp rơi trên led thì phụ thuộc vào từng loại led, tuy nhiên nó rơi vào khoảng 2V, dòng 10mA. Như vậy, áp rơi trên điện trở sẽ là :
    Ur=5V-Uled=5V-2V=3V
    --> R=Ur/Iled=3V/10mA=300Ohm. Do đó ta chọn giá trị điện trở xấp xỉ là 470Ohm là hợp lý.(nên chọn giá trị điện trở lớn hơn giá trị tính được để đảm bảo an toàn cho led).
    Thực tế có thể chọn R=1k nhưng mức độ sáng sẽ yếu hơn 1 chút. GL!

    Trả lờiXóa
  5. cho mình hỏi chút xíu nha, mình dùng 89c52 có được k. ma nếu dung turbo hay phan mem gi do ltrinh c de viet roi bien dich ra co dùng dc cho 89c k nhỉ. hay chỉ dành cho pic, mình mới tìm hiểu cái này nên hơi gà

    Trả lờiXóa
  6. Dùng 89C cũng được nhưng m dùng 89S thì khi nạp không cần phải nhổ chip ra mà dùng mạch nạp ISP để nạp nên nó tiện dụng hơn 89C thôi.
    Lập trình cho 89 thì dùng trình dịch KeliC hoặc Read51. M thì toàn dùng KeilC. GL!

    Trả lờiXóa
  7. Question from Tai Le:
    "vâng ạ. em còn gà C quá. em dọc cái code C của anh. em dịch lại file C của anh mà sao nó báo lỗi hoài ở dòng sbit d0 ..... vậy là sao hả anh. CT đấy chuẩn mà a dịch sang hex đc rồi sao em dịch lại lại k được anh nhỉ. a có thể giải thích cho em các vòng lặp với mấy cái chuẩn bij1. chuẩn bị 2... đấy là có chức năng gì k ạ? "

    Answer:

    M viết trên phần mềm KelC nên bạn cũng phải dùng KeilC để dịch ra file hex, còn nếu b dùng trình dịch khác thì phải viết lại code theo đúng cấu trúc của trình dịch đó. Nhưng chương trình của m làm gì có d0 nhỉ? Còn chuẩn bị 1, chuẩn bị 2 ở chỗ nào vậy b? Bạn trích chỗ đó ra m xem nào? GL!

    Trả lờiXóa
  8. }
    71 void chuanbi1 (void)
    72 { d1=d2=d3=d4=d5=d6=d11=d16=d21=d22=d23=d24=d25=d20=d10=d15=1;
    73 1 d7=d8=d9=1;d12=d14=1;d17=d18=d19=1;
    74 1
    75 1 c1=c2=c4=c5=0; c3=1;
    76 1 d13=0;
    77 1 }
    78 void chuanbi2 (void)
    79 { d1=d2=d3=d4=d5=d6=d11=d16=d21=d22=d23=d24=d25=d20=d10=d15=1;d13=1;
    80 1 d7=d8=d9=0;d12=d14=0;d17=d18=d19=0;
    81 1 c1=0;c2=c4=1;c5=0; c3=1;
    82 1
    83 1 }
    84 void chuanbi3 (void)
    85 {
    86 1 d7=d8=d9=d12=d13=d14=d17=d18=d19=1;
    87 1 d1=d2=d3=d4=d5=d6=d11=d16=d21=d22=d23=d24=d25=d20=d10=d15=0;
    88 1 c1=1;c2=c4=1;c5=1; c3=1;
    89 1
    90 1 }
    91
    đây anh ơi

    Trả lờiXóa
  9. Chắc là b nhầm với code của ai đó, code này không phải code m gửi cho b. Tuy nhiên, nhìn code thì phần chuẩn bị này không có gì phải quan tâm b ah, nó cũng tương đương như 1 hiệu ứng chạy theo ý đồ của tác giả thôi. GL!

    Trả lờiXóa
  10. anh có thể cho em hình ảnh về mạch in đã làm xong ko vậy??? càng chi tiết càng tốt. em làm theo nhưng khi gắn linh kiện vô thì có 1 số chổ ko biết gắn như thế nào. thanks.

    Trả lờiXóa
  11. vậy chắc em nhầm rồi. em mới xem lại file a up k có file C. a có thể gửi file đầy đủ hoặc chỉ file C cho em xin được k anh. Gmail của em là letantaiddt4@gmail.com. nếu được em cảm ơn anh nhiều !

    Trả lờiXóa
  12. cho em xin file C dc không ạ;gmail e:phamhung1991ht@gmail.com cho em hỏi cái này có nhìu kiểu chạy không a?

    Trả lờiXóa
  13. Cũng nhiều hiệu ứng b ah. B kiểm tra mail nhé. GL!

    Trả lờiXóa
  14. a gửi wa mail cho e nhé .e làm cho kịp noen a à.hihi

    Trả lờiXóa
  15. Sơ đồ mạch in và code đầy đủ m đã để ở link trên rồi mà.

    Trả lờiXóa
  16. anh tung ah!e cung dang muon thu lam mach led cube va dung ngon ngu C de viet .a co the gui cho e phan chuong trinh duoc chu ah,vi e chua hinh dung duoc cach viet ct cho led cube nhu the nao ca.a gui vao mail t.phuong919@gmail.com
    cho e voi nhe !e cam on a

    Trả lờiXóa
  17. bài viết của anh hay quá
    anh ơi, em mới học cái này, anh cho em xin file .c của cái này cái, em cũng giống như bạn ở trên, chưa hình dung đc lập trình món này thế nào cả, cảm ơn anh nhá
    gmail của em là manhbkproc@gmail.com
    thks a

    Trả lờiXóa
  18. ban oi minh moi hoc cho m phan mem viet chuong va phan mem thiet ke mach tren may tinh ko ca chuong trinh viet led nay voi nhe thank nhiu

    Trả lờiXóa
  19. gmail cua minh la buiduybac89tb@gmail.com thank

    Trả lờiXóa
  20. anh oi cho em hoi tren mach dung 2 tro? bang ak?
    voi ngay cho~ J31(em nghi~ ngay nay` la nguon ak ) voi J4 la gi` vay anh ? em hok hieu cho? do' . em hok phai dan chuyen nganh
    tks anh mong anh giup em

    Trả lờiXóa
  21. có thể sử dụng nhiều loại led( màu) trên 1 led cube 5x5x5 không anh.

    Trả lờiXóa
  22. @bac buiduy: m lập trình bằng phần mềm KeilC, thiết kế mạch bằng Orcad. Phần mềm dung lượng lớn nên m không upload lên được. B chịu khó tìm trên mạng nhé. Trên mạng cũng có nhiều mà. GL!

    @Nặc danh: mạch của m chỉ có 1 điện trở bảng là J5 (ở phía trên bên trái của chip 89S52, có 9 chân). Còn J20 ở phía giữa bên phải của chip (có 6 chân) là jac để m nạp chương trình cho 89S52.

    @Sống Để Biết Đồng Tiền Có Thể Giết All: b có thể dùng nhiều loại led nhưng cần phải tính toán sseer sắp xếp màu cho hợp lý, không thì các màu sẽ xen lẫn lên nhau trông sẽ rối mắt. GL!

    Trả lờiXóa
  23. ban oi send minh xin code nao hay chut vs cach dau noi tu' cac post ra 25 chan do' vs. qua mail: tinhyeudonphuong_dt2000@yahoo.com
    thanks

    Trả lờiXóa
  24. cot1 = P1^0;
    cot2 = P1^1;
    cot3 = P1^2;
    cot4 = P1^3;
    cot5 = P1^4;
    cot6 = P1^5;
    cot7 = P1^6;
    cot8 = P1^7;
    cot9 = P3^0;
    cot10 = P3^1;
    cot11 = P3^2;
    cot12 = P3^3;
    cot13 = P3^4;
    cot14 = P3^5;
    cot15 = P3^6;
    cot16 = P3^7;
    cot17 = P2^0;
    cot18 = P2^1;
    cot19 = P2^2;
    cot20 = P2^3;
    cot21 = P2^4;
    cot22 = P2^5;
    cot23 = P2^6;
    cot24= P2^7;
    cot25=P0^6;
    hang1=P0^0;
    hang2=P0^1;
    hang3=P0^2;
    hang4=P0^3;
    hang5=P0^4;

    Cột của led tính từ góc trên bên trái là cột 1. Rồi đếm tiếp sang phía phải. GL!

    Trả lờiXóa
  25. like
    muk e l biet lap trinh the nao, a co the up cho e code vao nik cua? e dk. k
    kieuvanthu94@gmail.com
    tks a nhe

    Trả lờiXóa
    Trả lời
    1. a ơi cho e hỏi cách hiển thị chữ với ạ.
      như hiển thị chữ A thì làm sao
      và 0xff là tính thế nào ạ

      Xóa
  26. bạn ơi cho mình xin file nguyên lý ocard hoặc proteus có cả file mạch in thì cảm onwbanj nhiều lắm check mail cho mình nhé connguoicodoc.in@gmail.com

    Trả lờiXóa
  27. up lun file .c lên dd đi chứ bạn. Tốt nhất là up full lên cho các mem nghiên cứu đi.Cái này bạn nào làm thì sẻ thấy rất thú vị đấy.

    Trả lờiXóa
  28. Code này m chắt lọc trên mạng và viết thêm 1 số hiệu ứng, do đó m ko muốn up luôn lên vì sợ vi phạm bản quyền của các tác giả trên mạng. Nếu b nào cần thì m sẽ gửi vào mail. Mong các b thông cảm.

    Trả lờiXóa
  29. Anh oi cho e xin code mach led cube nay voi.
    Email: kiucxua08i@gmail.com
    Cam on anh nhieu!

    Trả lờiXóa
  30. cho em xin code voi nhe. thank bac nhieu
    mail bnktb86@gmail.com

    Trả lờiXóa
  31. a ơi gửi cho em bản HD full với nhớ khoak42@gmail.com

    Trả lờiXóa
  32. bạn ơi cho mình xin code .C luôn với. Nếu có bản orcad của mạch thì cho mình xin luôn với. Mail của mình là: thesang9900@gmail.com
    Cảm ơn bạn nhiều

    Trả lờiXóa
  33. ban cho minh xin 1 ban duoc khong cam on ban truoc.minh dang tu hoc ma kho qua .cungdantinhyeuhttt@yahoo.com

    Trả lờiXóa
  34. cho minh hoi nhe tai sao minh tim duoc 1 code tren mang .dung keic dich ra fie hex toan bao noi dung luong daì qua 8000h cac ban co the noi cho minh biet duoc không!

    Trả lờiXóa
    Trả lời
    1. Do bản KelC của b crack chưa đúng. Lúc lấy key thì b phải chọn mục debug nha. GL!

      Xóa
  35. bạn ơi cho mình xin mạch in và code của machj này với. mail của mình là haudtd51dh2@gmail.com thank bạn nhé ^^!

    Trả lờiXóa
  36. a oi e munlam nhung nhin hk hiu
    a co the lam clip huong dan dc hum a
    mail cua e hieunghia1905@yahoo.com

    Trả lờiXóa
  37. Anh có thể gửi cho em xin Code của anh dc ko.

    Gmail: mungdoantvm@gmail.com

    Anh cho em hỏi chút về nguyên lý hoạt động của led : vấn đề là khối led của e sau khi nạp chương trình ( keil C ) vào vđk thì khối led sáng cả khối luôn mà không nhấp nháy theo lập trình.sử dụng vđk AT89S52.

    Trả lờiXóa
  38. bạn gửi cho mình xin code c với mail mình là huuson5291@gmail.com

    Trả lờiXóa
  39. bạn gửi cho mình xin code c với mail mình là truong1991.hua@gmail.com

    Trả lờiXóa
  40. Cảm ơn bạn đã chia sẽ, sản phẩm này hay nhỉ^^. Tiếc là cậu ko post video khối cube 3d này biểu diễn. Mình search thử thấy có nhiều clip về led cube 3d này rất đẹp. Mình cũng muốn bắt đầu làm thử, mình ko phải chuyên ngành điên tử, vậy mình có thể làm đc ko, ý mình cần fai có kiến thức chuyên ngành ko^^ chứ mình sợ bỏ công nghiên cứu vô ích hì hì

    Trả lờiXóa
    Trả lời
    1. Do điều kiện ko có máy quay nên m ko post video được, ko phải chuyên ngành điện tử thì b có thể liên hệ với những b học điện tử để nhờ họ giúp đỡ, như thế sẽ làm nhanh hơn. Ít nhất cũng học cách hàn mạch trước b nhé. Chúc b thành công.

      Xóa
    2. ^^ mình sẽ cố gắng "nghiên cứu", mình đang học về bản đồ nhưng lúc còn là học sinh cũng thích về mạch điện tử lắm, cảm ơn bạn đã động viên **

      Xóa
  41. bạn làm thì cũng hay thật nhưng linh kiện bạn đưa ra ở trên thì làm k được đâu (thiếu thạch anh, tụ, trở than,...) nếu có thể bạn có thể up lại file bố trí linh kiện lại cho dễ nhìn một chút

    Trả lờiXóa
  42. https://docs.google.com/file/d/0B4pTxxBinLMCZnV5STRVR216V2c/edit?usp=sharing

    Anh ơi xem giúp em với, em mới học nên còn chỗ này em chua hiểu rõ.
    những chỗ em khoanh tròn đó phải gắn linh kiện gì và chiều dương âm như thế nào ạ

    Trả lờiXóa
    Trả lời
    1. Tính từ trái qua phải:
      Khoanh tròn 1: (linh kiện 3 chân) là cái jăc nguồn DC, dùng để cắm cục sạc 5V cấp nguồn luôn, nếu b không thích thì ko cần lắp cái này cũng được mà thay vào đó là b lắp vào khoanh tròn thứ 2.
      Khoanh tròn thứ 2: là cầu đấu để đấu nguồn 5V vào mạch. Chân 2 là âm, chân 1 là dương.
      Khoanh tròn 3: nút bấm 4 chân, dùng để reset mạch.
      GL!

      Xóa
  43. A Tùng chỉ nhờ a chỉ e cách làm và lập trình qua zteyohio@gmail.com nhé .Thanks a nhiều

    Trả lờiXóa
    Trả lời
    1. B không hiểu phần nào thì có thể hỏi trực tiếp ở đây. GL!

      Xóa
  44. a Tung cho e hoi khoi reset dung de lam j? nguyenbdat13@gmail.com

    Trả lờiXóa
    Trả lời
    1. Reset có nghĩa là bắt vi điều khiển quay trở về trạng thái ban đầu (nghĩa là nó đang chạy ở hiệu ứng bất kỳ thì sẽ trở về chạy hiệu ứng đầu tiên trở đi). Và nút reset còn được sử dụng khi vi điều khiển bị treo.

      Xóa
  45. Anh Tùng ơi giúp em với, vấn đề là em làm mạch cube 5*5*5 nhưng còn 1 lỗi là con VĐK k biết tại sao nó bị lỏng hả gì ấy em đã làm mạch VĐK đến 3 lần rồi nhưng vẫn không cải thiện được tình hình đó là mỗi lần rút điện ra rồi gắn điện lại thì đèn không chớp hiệu ứng mà chỉ sáng không à, dùng tay đè đè vào con VĐK 1 chút thì nó mới chớp. em nghĩ vấn đề là do đế VĐK nhưng em đã thay 3 lần rồi (thay cả mạch in luôn và hàn rất kỹ). Anh đã làm nhiều chắc có nhiều kinh nghiệm anh đã gặp tình trạng như z chưa ạ, chỉ em cách khắc phục với.

    Trả lờiXóa
    Trả lời
    1. Có thể do VDK của b chưa được reset ngay sau khi cấp nguồn nên nó như thế. B có thể nối từ chân reset của 8952 vào cự âm của tụ 10uF, cực dương tụ thì nối VCC, và nối chân reset với trở 10k xuống đất. Chúc b thành công.

      Xóa
    2. Cảm ơn anh tùng nhe

      Xóa
    3. anh ơi tình hình là gắn tụ rồi nhưng vẫn như lúc xưa, chắc phải làm lại mạch thêm 1 lần nửa quá, buồn quá đi

      Xóa
    4. Lúc cắm nguồn vào mạch, b ấn nút reset thì mạch có chạy ko? hay phải lấy tay ấn vào chip thì nó mới chạy?

      Xóa
    5. em không có gắn nút reset nhưng em lấy cây vít kích thì nó cũng không chạy nữa,nhấn nhấn ở đâu đó trên board rồi mới chạy có khi để 1 lát nó tự chạy luôn . em mới làm lại mạch VĐK hàn tỷ mỹ từng chân nhìn cũng đẹp lắm nhưng vẫn bị bệnh cũ k biết tại sao luôn

      Xóa
    6. Giờ nó chạy rồi anh ơi nhưng gắn điện vào thì nó sáng k à khoảng 8-9s sau nó mới chớp (nhưng chớp k bắt đàu từ reset mà bắt đầu từ hiệu ứng bất kỳ), k biết vì sao z anh. Điện trở băng có tác dụng j z anh

      Xóa
    7. B dùng mạch điều khiển của m up phía trên hay b tự vẽ mạch vậy? Nếu tự vẽ mạch thì up lên cho m xem thế nào? Đã thêm mạch reset RC như m đã nói ở trên chưa?

      Còn điện trở bảng để treo P0 của 8952 lên Vcc trong trường hợp dùng P0 là chân IN, còn ở đây P0 dùng là Out nên ko cần lắp điện trở bang cũng đc.

      Xóa
    8. em dùng mạch của anh chipcook https://www.dropbox.com/s/h2lps79mmjtr6gl/MACH%20IN%20CUBE.pdf
      Anh xem giúp e nhé

      Xóa
    9. Có sơ đồ nguyên lý ko b? Nhìn mạch in thế này thì khó phát hiện lắm.

      Xóa
    10. hok có anh ơi

      Xóa
    11. Thế thì m khuyên b nên tự thiết kế lại mạch, sau đó tự vẽ mạch in. Như thế b sẽ vừa hiểu rõ nguyen lý của mạch vừa biết cách vẽ mạch. B cứ chủ động vẽ mạch, nếu thấy chưa ổn thì gửi cho m, m sẽ xem và góp ý cho b. Chúc b thành công.

      Xóa
    12. Nhưng vấn đề nan giải là em mới là sinh viên năm 1 à, k biết vẽ mạch in anh ơi với lại 2 tuần này là phải kiểm tra giữa kỳ nên k có thời gian nghiên cứu Orcard, anh có tài liệu về Orcard k cho em xin đi kiểm tra giữa kỳ xong em nghiên cứu nó. Cảm ơn anh nhiều

      Xóa
  46. anh ơi sao anh k gắn Transistor lên boar VĐK luôn (để boar led hình vuông cho đẹp)

    Trả lờiXóa
    Trả lời
    1. Đó là lần đầu m làm nên m cũng tham khảo trên mạng sơ đồ như vậy nên m làm luôn, lười ko thiết kế lại.hi. B có thể cho tran xuống mạch điều khiển cũng được. Cảm ơn b đã góp ý.

      Xóa
  47. sao m tai led cude 555 ghi pass ko đk vậy bạn

    Trả lờiXóa
  48. anh cho em xin cái code của nó,
    phamdonggl@gmail.com

    Trả lờiXóa
  49. anh ơi.. anh có thể giải thích cho em rỏ hơn về cái Jack Nguồn (vì nó có 3 chân, e rối quá), bên cạnh đó nó có cái con gì 2 chân (1,2 - Value), gi đó.. anh giúp em được không ah, e cảm ơn anh nhiều ah

    Trả lờiXóa
  50. anh ơi.. anh có thể giải thích cho em rỏ hơn về cái Jack Nguồn (vì nó có 3 chân, e rối quá), bên cạnh đó nó có cái con gì 2 chân (1,2 - Value), gi đó.. anh giúp em được không ah, e cảm ơn anh nhiều ah..

    hay các pro nào biết giúp em với, em đang gấp lắm.. cảm ơn mọi người ah

    Trả lờiXóa
    Trả lời
    1. Mạch m vẽ luôn 2 cái jac nguồn để ai thích lắp kiểu gì thì lắp. Hình ảnh về jac nguồn b xem ở phần trên nhé (mới cập nhật).
      1 loại 2 chân: màu đen.
      loại 2 chân: màu xanh.

      Xóa
  51. thank anh đã gửi code nhưng mà code đó đưa vào Keil 4, F7 vẫn ra file hex bình thường nhưng khi nạp vào thì chỉ có 3,4 o dữ liệu, nên không có hiệu ứng, em có chương trình này sưu tầm, nhưng đưa vào Keil 4, nhấn F7 thì báo lỗi " If" và "x" có thể là sai cú pháp, nhưng không tìm được lỗi, còn led 3d thì phần cứng đã hoàn thành gần 1 tuần.

    Trả lờiXóa
  52. #include
    #include
    /////////////////////////////////////
    sbit DATA = P2^5;
    sbit SCK = P2^7;
    sbit LACH = P2^6;

    sbit L1=P1^0;
    sbit L2=P1^1;
    sbit L3=P1^2;
    sbit L4=P1^3;
    sbit L5=P1^4;
    unsigned char temp1,temp2,temp3,temp4;
    unsigned char i,j;
    /////////////////////////////////////////
    void delay(unsigned int ms)
    {
    unsigned int i,j;
    for(i=0;i<ms;i++)
    for(j=0;j<125;j++);
    }
    ////////////////////////
    void hienthi(unsigned char x)
    {
    unsigned int i,temp;
    for(i=0;i<8;i++)
    {
    temp=x;
    temp=temp&0x80
    if(temp==0x80)
    DATA=1; else
    DATA=0
    x*=2;
    SCK=0;
    SCK=1;
    }}
    void xuat()
    {
    hienthi(temp4);
    hienthi(temp3);
    hienthi(temp2);
    hienthi(temp1);
    LACH=0;
    LACH=1;
    }
    /////////////////////////////////////////////////////

    Trả lờiXóa
  53. void chaychu(unsigned int ms)
    {
    //chu D
    for(j=0;j<ms;j++)
    {
    temp1=0x00;temp2=0x00,temp3=0xf0;temp4=0x00;xuat();L1=1;delay(1);L1=0;
    temp1=0x00;temp2=0x00,temp3=0x10;temp4=0x01;xuat();L2=1;delay(1);L2=0;
    temp1=0x00;temp2=0x00,temp3=0x10;temp4=0x01;xuat();L3=1;delay(1);L3=0;
    temp1=0x00;temp2=0x00,temp3=0x10;temp4=0x01;xuat();L4=1;delay(1);L4=0;
    temp1=0x00;temp2=0x00,temp3=0xf0;temp4=0x00;xuat();L5=1;delay(1);L5=0;
    }
    P2=0;delay(300);
    //chu T
    for(j=0;j<ms;j++)
    {
    temp1=0x00;temp2=0x00,temp3=0x40;temp4=0x00;xuat();L1=1;delay(1);L1=0;
    temp1=0x00;temp2=0x00,temp3=0x40;temp4=0x00;xuat();L2=1;delay(1);L2=0;
    temp1=0x00;temp2=0x00,temp3=0x40;temp4=0x00;xuat();L3=1;delay(1);L3=0;
    temp1=0x00;temp2=0x00,temp3=0x40;temp4=0x00;xuat();L4=1;delay(1);L4=0;
    temp1=0x00;temp2=0x00,temp3=0xf0;temp4=0x01;xuat();L5=1;delay(1);L5=0;
    }
    P2=0;delay(300);
    //so 3
    for(j=0;j<ms;j++)
    {
    temp1=0x00;temp2=0x00,temp3=0xf0;temp4=0x01;xuat();L1=1;delay(1);L1=0;
    temp1=0x00;temp2=0x00,temp3=0x00;temp4=0x01;xuat();L2=1;delay(1);L2=0;
    temp1=0x00;temp2=0x00,temp3=0xf0;temp4=0x01;xuat();L3=1;delay(1);L3=0;
    temp1=0x00;temp2=0x00,temp3=0x00;temp4=0x01;xuat();L4=1;delay(1);L4=0;
    temp1=0x00;temp2=0x00,temp3=0xf0;temp4=0x01;xuat();L5=1;delay(1);L5=0;
    }
    P2=0;delay(300);
    //CHU K
    for(j=0;j<ms;j++)
    {
    temp1=0x00;temp2=0x00,temp3=0x10;temp4=0x01;xuat();L1=1;delay(1);L1=0;
    temp1=0x00;temp2=0x00,temp3=0x90;temp4=0x00;xuat();L2=1;delay(1);L2=0;
    temp1=0x00;temp2=0x00,temp3=0x70;temp4=0x00;xuat();L3=1;delay(1);L3=0;
    temp1=0x00;temp2=0x00,temp3=0x90;temp4=0x00;xuat();L4=1;delay(1);L4=0;
    temp1=0x00;temp2=0x00,temp3=0x10;temp4=0x01;xuat();L5=1;delay(1);L5=0;
    }
    P2=0;delay(300);
    //so 3
    for(j=0;j<ms;j++)
    {
    temp1=0x00;temp2=0x00,temp3=0xf0;temp4=0x01;xuat();L1=1;delay(1);L1=0;
    temp1=0x00;temp2=0x00,temp3=0x00;temp4=0x01;xuat();L2=1;delay(1);L2=0;
    temp1=0x00;temp2=0x00,temp3=0xf0;temp4=0x01;xuat();L3=1;delay(1);L3=0;
    temp1=0x00;temp2=0x00,temp3=0x00;temp4=0x01;xuat();L4=1;delay(1);L4=0;
    temp1=0x00;temp2=0x00,temp3=0xf0;temp4=0x01;xuat();L5=1;delay(1);L5=0;
    }
    P2=0;delay(300);
    //CHU H
    for(j=0;j<ms;j++)
    {
    temp1=0x00;temp2=0x00,temp3=0x10;temp4=0x01;xuat();L1=1;delay(1);L1=0;
    temp1=0x00;temp2=0x00,temp3=0x10;temp4=0x01;xuat();L2=1;delay(1);L2=0;
    temp1=0x00;temp2=0x00,temp3=0xf0;temp4=0x01;xuat();L3=1;delay(1);L3=0;
    temp1=0x00;temp2=0x00,temp3=0x10;temp4=0x01;xuat();L4=1;delay(1);L4=0;
    temp1=0x00;temp2=0x00,temp3=0x10;temp4=0x01;xuat();L5=1;delay(1);L5=0;
    }
    P2=0;delay(300);
    //CHU A
    for(j=0;j<ms;j++)
    {
    temp1=0x00;temp2=0x00,temp3=0x10;temp4=0x01;xuat();L1=1;delay(1);L1=0;
    temp1=0x00;temp2=0x00,temp3=0x10;temp4=0x01;xuat();L2=1;delay(1);L2=0;
    temp1=0x00;temp2=0x00,temp3=0xf0;temp4=0x01;xuat();L3=1;delay(1);L3=0;
    temp1=0x00;temp2=0x00,temp3=0xa0;temp4=0x00;xuat();L4=1;delay(1);L4=0;
    temp1=0x00;temp2=0x00,temp3=0x40;temp4=0x00;xuat();L5=1;delay(1);L5=0;
    }
    P2=0;delay(300);
    //CHU U
    for(j=0;j<ms;j++)
    {
    temp1=0x00;temp2=0x00,temp3=0xe0;temp4=0x00;xuat();L1=1;delay(1);L1=0;
    temp1=0x00;temp2=0x00,temp3=0x10;temp4=0x01;xuat();L2=1;delay(1);L2=0;
    temp1=0x00;temp2=0x00,temp3=0x10;temp4=0x01;xuat();L3=1;delay(1);L3=0;
    temp1=0x00;temp2=0x00,temp3=0x10;temp4=0x01;xuat();L4=1;delay(1);L4=0;
    temp1=0x00;temp2=0x00,temp3=0x10;temp4=0x01;xuat();L5=1;delay(1);L5=0;
    }
    P2=0;delay(300);
    //CHU I
    for(j=0;j<ms;j++)
    {
    temp1=0x00;temp2=0x00,temp3=0xf0;temp4=0x01;xuat();L1=1;delay(1);L1=0;
    temp1=0x00;temp2=0x00,temp3=0x40;temp4=0x00;xuat();L2=1;delay(1);L2=0;
    temp1=0x00;temp2=0x00,temp3=0x40;temp4=0x00;xuat();L3=1;delay(1);L3=0;
    temp1=0x00;temp2=0x00,temp3=0x40;temp4=0x00;xuat();L4=1;delay(1);L4=0;
    temp1=0x00;temp2=0x00,temp3=0xf0;temp4=0x01;xuat();L5=1;delay(1);L5=0;
    }
    P2=0;delay(300);
    }
    /////////////////////////////////////////////////////

    Trả lờiXóa
  54. void locxoay(unsigned char ms,unsigned int m)
    {
    for(i=0;i<m
    ;i++)
    {
    //FAMER 1
    for(j=0;j<ms;j++)
    {
    temp1=0x01;temp2=0x00,temp3=0x00;temp4=0x01;xuat();L1=1;delay(1);L1=0;
    temp1=0x02;temp2=0x00,temp3=0x80;temp4=0x00;xuat();L2=1;delay(1);L2=0;
    temp1=0x04;temp2=0x00,temp3=0x40;temp4=0x00;xuat();L3=1;delay(1);L3=0;
    temp1=0x08;temp2=0x00,temp3=0x20;temp4=0x00;xuat();L4=1;delay(1);L4=0;
    temp1=0x10;temp2=0x00,temp3=0x10;temp4=0x00;xuat();L5=1;delay(1);L5=0;
    }
    //FAMER 2
    for(j=0;j<ms;j++)
    {
    temp1=0x02;temp2=0x00,temp3=0x80;temp4=0x00;xuat();L1=1;delay(1);L1=0;
    temp1=0x04;temp2=0x00,temp3=0x40;temp4=0x00;xuat();L2=1;delay(1);L2=0;
    temp1=0x08;temp2=0x00,temp3=0x20;temp4=0x00;xuat();L3=1;delay(1);L3=0;
    temp1=0x10;temp2=0x00,temp3=0x10;temp4=0x00;xuat();L4=1;delay(1);L4=0;
    temp1=0x00;temp2=0x82,temp3=0x00;temp4=0x00;xuat();L5=1;delay(1);L5=0;
    }
    //FAMER 3
    for(j=0;j<ms;j++)
    {
    temp1=0x04;temp2=0x00,temp3=0x40;temp4=0x00;xuat();L1=1;delay(1);L1=0;
    temp1=0x08;temp2=0x00,temp3=0x20;temp4=0x00;xuat();L2=1;delay(1);L2=0;
    temp1=0x10;temp2=0x00,temp3=0x10;temp4=0x00;xuat();L3=1;delay(1);L3=0;
    temp1=0x00;temp2=0x82,temp3=0x00;temp4=0x00;xuat();L4=1;delay(1);L4=0;
    temp1=0x00;temp2=0x44,temp3=0x00;temp4=0x00;xuat();L5=1;delay(1);L5=0;
    }
    //FAMER 4
    for(j=0;j<ms;j++)
    {
    temp1=0x08;temp2=0x00,temp3=0x20;temp4=0x00;xuat();L1=1;delay(1);L1=0;
    temp1=0x10;temp2=0x00,temp3=0x10;temp4=0x00;xuat();L2=1;delay(1);L2=0;
    temp1=0x00;temp2=0x82,temp3=0x00;temp4=0x00;xuat();L3=1;delay(1);L3=0;
    temp1=0x00;temp2=0x44,temp3=0x00;temp4=0x00;xuat();L4=1;delay(1);L4=0;
    temp1=0x20;temp2=0x00,temp3=0x08;temp4=0x00;xuat();L5=1;delay(1);L5=0;
    }
    //FAMER 5
    for(j=0;j<ms;j++)
    {
    temp1=0x10;temp2=0x00,temp3=0x10;temp4=0x00;xuat();L1=1;delay(1);L1=0;
    temp1=0x00;temp2=0x82,temp3=0x00;temp4=0x00;xuat();L2=1;delay(1);L2=0;
    temp1=0x00;temp2=0x44,temp3=0x00;temp4=0x00;xuat();L3=1;delay(1);L3=0;
    temp1=0x20;temp2=0x00,temp3=0x08;temp4=0x00;xuat();L4=1;delay(1);L4=0;
    temp1=0x01;temp2=0x00,temp3=0x00;temp4=0x01;xuat();L5=1;delay(1);L5=0;
    }
    //FAMER 6
    for(j=0;j<ms;j++)
    {
    temp1=0x00;temp2=0x82,temp3=0x00;temp4=0x00;xuat();L1=1;delay(1);L1=0;
    temp1=0x00;temp2=0x44,temp3=0x00;temp4=0x00;xuat();L2=1;delay(1);L2=0;
    temp1=0x20;temp2=0x00,temp3=0x08;temp4=0x00;xuat();L3=1;delay(1);L3=0;
    temp1=0x01;temp2=0x00,temp3=0x00;temp4=0x01;xuat();L4=1;delay(1);L4=0;
    temp1=0x02;temp2=0x00,temp3=0x80;temp4=0x00;xuat();L5=1;delay(1);L5=0;
    }
    //FAMER 7
    for(j=0;j<ms;j++)
    {
    temp1=0x00;temp2=0x44,temp3=0x00;temp4=0x00;xuat();L1=1;delay(1);L1=0;
    temp1=0x20;temp2=0x00,temp3=0x08;temp4=0x00;xuat();L2=1;delay(1);L2=0;
    temp1=0x01;temp2=0x00,temp3=0x00;temp4=0x01;xuat();L3=1;delay(1);L3=0;
    temp1=0x02;temp2=0x00,temp3=0x80;temp4=0x00;xuat();L4=1;delay(1);L4=0;
    temp1=0x04;temp2=0x00,temp3=0x40;temp4=0x00;xuat();L5=1;delay(1);L5=0;
    }
    //FAMER 8
    for(j=0;j<ms;j++)
    {
    temp1=0x20;temp2=0x00,temp3=0x08;temp4=0x00;xuat();L1=1;delay(1);L1=0;
    temp1=0x01;temp2=0x00,temp3=0x00;temp4=0x01;xuat();L2=1;delay(1);L2=0;
    temp1=0x02;temp2=0x00,temp3=0x80;temp4=0x00;xuat();L3=1;delay(1);L3=0;
    temp1=0x04;temp2=0x00,temp3=0x40;temp4=0x00;xuat();L4=1;delay(1);L4=0;
    temp1=0x08;temp2=0x00,temp3=0x20;temp4=0x00;xuat();L5=1;delay(1);L5=0;
    }
    }}
    void main()
    {
    P2=0;
    delay(1000);
    chaychu(100);
    while(1)
    {
    locxoay(12,10);
    }}

    Trả lờiXóa
  55. 3 đoạn ghép thành 1 chương trình, ngoài ra e còn file ,hex này nạp thẳng vào nhưng hiệu ứng xấu,
    http://www.mediafire.com/?w7hu3qbl9h3ic37

    Trả lờiXóa
  56. void hienthi(unsigned char x)
    {
    unsigned int i,temp;
    for(i=0;i<8;i++)
    {
    temp=x;
    temp=temp&0x80
    if(temp==0x80)
    DATA=1; else
    DATA=0
    x*=2;

    Thiếu dấu ";" ở dòng temp=temp&0x80 và dòng DATA=0.
    GL!

    Trả lờiXóa
  57. Anh Tùng ơi ở chân của VĐK sao a k lam cho có lỗ để khoan cho dễ z anh

    Trả lờiXóa
  58. M quen hàn chip theo kiểu led trái tim nên m thiết kế đặt chip ở phía dưới(cùng phía mạch in), hàn giống kiểu chip dán nên không cần phải khoan lỗ ở phần chip.
    GL!

    Trả lờiXóa
    Trả lời
    1. ah hiểu rồi, cảm ơn anh nhé. Anh còn file mạch in (protues) của khối đế cắm led k z, cho em xin với em định sửa lại gắn Transistor ở dưới mạch điều khiển. Nếu anh còn thì cho em xin chứ vẽ lại thì ....

      Xóa
    2. anh ơi cho em xin file C với hoangduy1505@gmail.com

      Xóa
  59. mach nay co may con thach anh ha? bac'!@@ khong can dien tro bang ah! e thay 2 file pdf mach in cua bac' gui len khong giong lam o trong day!

    Trả lờiXóa
  60. mach lam khong can dien tro bang co duoc khong bac'!@@

    Trả lờiXóa
  61. Mạch có 1 thạch anh thôi b ah, b nhìn sơ đồ nguyên lý đó.

    Trả lờiXóa
  62. anh! e mới bắt đầu làm mà chưa biết hàn chân led kiểu sao hết...anh chỉ rõ hơn cho e được ko anh! em tham khảo thì người ta nói là tất cả chân dương nối với nhau! chân âm thì nối chung từng cột...e ko hiểu lắm, a chỉ rõ hơn cho e được ko a!

    Trả lờiXóa
  63. bạn ui h nối p26 trong mach led vao P1, p27 vs p3, p29vs p4 trong mạch dk ak?

    Trả lờiXóa
  64. bạn gửi cho mình code bạn làm nhé
    híc xong mạch rùi nhưng led chạy linh tinh hết

    Trả lờiXóa
  65. Nhận xét này đã bị tác giả xóa.

    Trả lờiXóa
  66. cho mjh họ cai tụ nam duoi ic la tu gj zay? duoi ic còn có ljh kjen gj k?

    Trả lờiXóa
    Trả lời
    1. Bạn vui lòng xem hình ảnh mạch in ở bài viết trên nhé.

      Regards!

      Xóa
  67. cho m xin file full bộ này nhé mail m là namnguyen0509@gmail.com thanks

    Trả lờiXóa
  68. bạn cho m xin code với sơ đồ nguyên lý được không. mình nhìn trên web hơi mờ, mail của mình nguyenngoctuuct@gmail.com. Thank bạn

    Trả lờiXóa
  69. Anh Tùng có dịp em nhờ anh giúp em làm một cái này nhá.

    Trả lờiXóa
    Trả lời
    1. Tự làm đi em, cũng dễ mà. Tự làm thì mới học hỏi được nhiều.hi

      Xóa
  70. Anh Tùng cho em xin file full của led cube 5x5x5 ( mạch nguyên lí trên mờ nhìn không rõ) ! bên em đang làm đồ án này ! Mong anh giúp đở ! Thank ! Mail :dungnguyen91vn@gmail.com

    Trả lờiXóa
  71. Bạn cho mình hỏi: trên mạch in mạch điều khiển thì ở giữa chíp có phải là 1 chân cho tụ gốm 33pF với chân cho trở 470(ohm) không vậy bạn?
    Tại thấy trên mạch in có nhưng bạn up hình lên là 3D nên mình đang phân vân không biết đúng không hihi..
    Bạn đưa hình lên không chỉ chân - với chân + cho led nguồn với chân chíp thì hơi khó để biết hướng đặt chíp :D
    Cảm ơn bạn rất nhiều!

    Trả lờiXóa
    Trả lời
    1. Chào bạn.
      Mình xin trả lời câu hỏi của bạn như sau:
      - Phần giữa chip có 1 tụ 10uF và 1 trở 10k để dùng cho phần reset chip khi khởi động.
      - Hướng đặt chip: m vừa bổ sung thêm hình ảnh mạch in, bạn vui lòng xem lại bài viết phía trên.

      Regard!

      Xóa
  72. Chào bạn.
    Mình xin trả lời câu hỏi của bạn như sau:
    - Phần giữa chip có 1 tụ 10uF và 1 trở 10k để dùng cho phần reset chip khi khởi động.
    - Hướng đặt chip: m vừa bổ sung thêm hình ảnh mạch in, bạn vui lòng xem lại bài viết phía trên.

    Regard!

    Trả lờiXóa
  73. a cho em hỏi là ngoài con trở transistor A1013 mình còn dùng loài nào khác được không

    Trả lờiXóa