Saturday, October 6, 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.

145 comments:

  1. Pass Unlock mediafire: quangtung1123

    ReplyDelete
  2. Replies
    1. anh oi hinh nhu trong mach co con dien tro bang nua~ ha? anh

      Delete
  3. anh có file .c không cho e xin với.

    ReplyDelete
  4. ok, b gửi mail cho m m gửi cho: quangtung1123@gmail.com.
    GL!

    ReplyDelete
    Replies
    1. anh ơi mình thay tụ 22p bằng tụ 33p được ko anh

      Delete
    2. Dùng tụ 33p cũng được nha.

      Delete
    3. cho e xin cai file code di a..e lam mach roi ma chua co code

      Delete
  5. 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

    ReplyDelete
  6. Á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!

    ReplyDelete
    Replies
    1. em dung R = 330 Ohm dc ko anh e nghj la hop li hon 470 Ohm ak

      Delete
  7. 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à

    ReplyDelete
  8. 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!

    ReplyDelete
  9. 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!

    ReplyDelete
  10. }
    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

    ReplyDelete
  11. 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!

    ReplyDelete
  12. 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.

    ReplyDelete
  13. M đã cập nhật ở trên b nha! GL!

    ReplyDelete
  14. 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 !

    ReplyDelete
  15. 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?

    ReplyDelete
  16. Cũng nhiều hiệu ứng b ah. B kiểm tra mail nhé. GL!

    ReplyDelete
  17. a gửi wa mail cho e nhé .e làm cho kịp noen a à.hihi

    ReplyDelete
  18. Sơ đồ mạch in và code đầy đủ m đã để ở link trên rồi mà.

    ReplyDelete
  19. 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

    ReplyDelete
  20. 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

    ReplyDelete
  21. 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

    ReplyDelete
  22. gmail cua minh la buiduybac89tb@gmail.com thank

    ReplyDelete
  23. 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

    ReplyDelete
  24. có thể sử dụng nhiều loại led( màu) trên 1 led cube 5x5x5 không anh.

    ReplyDelete
  25. @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!

    ReplyDelete
  26. 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

    ReplyDelete
  27. 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!

    ReplyDelete
  28. 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

    ReplyDelete
    Replies
    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 ạ

      Delete
  29. 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

    ReplyDelete
  30. 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.

    ReplyDelete
  31. 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.

    ReplyDelete
    Replies
    1. Anh oi cho e xin code mach led cube nay voi.
      Email: duy2112@gmail.com
      Cam on anh nhieu!

      Delete
    2. a ơi cho em xin code và mạch nguyên lí với ạ.
      gmail : nguyendangkhoa17061994@gmail.com
      mong a giúp đỡ

      Delete
    3. cho em cai code nhaz anh, thanks anh nhju ak.
      buggattisuperveyron@Gmail.com

      Delete
  32. Anh oi cho e xin code mach led cube nay voi.
    Email: kiucxua08i@gmail.com
    Cam on anh nhieu!

    ReplyDelete
  33. cho em xin code voi nhe. thank bac nhieu
    mail bnktb86@gmail.com

    ReplyDelete
  34. a ơi gửi cho em bản HD full với nhớ khoak42@gmail.com

    ReplyDelete
  35. 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

    ReplyDelete
  36. ban cho minh xin 1 ban duoc khong cam on ban truoc.minh dang tu hoc ma kho qua .cungdantinhyeuhttt@yahoo.com

    ReplyDelete
  37. 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!

    ReplyDelete
    Replies
    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!

      Delete
  38. 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é ^^!

    ReplyDelete
  39. a oi e munlam nhung nhin hk hiu
    a co the lam clip huong dan dc hum a
    mail cua e hieunghia1905@yahoo.com

    ReplyDelete
  40. 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.

    ReplyDelete
  41. bạn gửi cho mình xin code c với mail mình là huuson5291@gmail.com

    ReplyDelete
  42. bạn gửi cho mình xin code c với mail mình là truong1991.hua@gmail.com

    ReplyDelete
  43. 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ì

    ReplyDelete
    Replies
    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.

      Delete
    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 **

      Delete
  44. 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

    ReplyDelete
  45. 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 ạ

    ReplyDelete
    Replies
    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!

      Delete
    2. a nói hình nào thế anh? sao e tìm mãi mà ko thấy. em cũng đang muốn hỏi về phần đó. khoanh tròn ?

      Delete
  46. 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

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

      Delete
    2. anh oi cho em hoi, em lam xong het rui chi co khac mot chut la tu gom 22p e chuyen sang dung tu gom 33p. vdk chua co code ko bit la led co sang dc ko ak`, rieng mach cua e thi duoc moi led nguon la sang thui mong anh giup do ak. thank anh nhju

      Delete
  47. a Tung cho e hoi khoi reset dung de lam j? nguyenbdat13@gmail.com

    ReplyDelete
    Replies
    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.

      Delete
  48. 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.

    ReplyDelete
    Replies
    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.

      Delete
    2. Cảm ơn anh tùng nhe

      Delete
    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

      Delete
    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?

      Delete
    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

      Delete
    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

      Delete
    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.

      Delete
    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é

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

      Delete
    10. hok có anh ơi

      Delete
    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.

      Delete
    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

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

    ReplyDelete
    Replies
    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 ý.

      Delete
  50. sao m tai led cude 555 ghi pass ko đk vậy bạn

    ReplyDelete
  51. anh cho em xin cái code của nó,
    phamdonggl@gmail.com

    ReplyDelete
  52. 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

    ReplyDelete
  53. 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

    ReplyDelete
    Replies
    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.

      Delete
    2. a nói hình nào thế? em cũng đang ko hiểu về jac nguồn làm gì và phải đi mua ntn

      Delete
  54. 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.

    ReplyDelete
  55. #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;
    }
    /////////////////////////////////////////////////////

    ReplyDelete
  56. 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);
    }
    /////////////////////////////////////////////////////

    ReplyDelete
  57. 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);
    }}

    ReplyDelete
  58. 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

    ReplyDelete
  59. 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!

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

    ReplyDelete
  61. 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!

    ReplyDelete
    Replies
    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ì ....

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

      Delete
  62. 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!

    ReplyDelete
  63. mach lam khong can dien tro bang co duoc khong bac'!@@

    ReplyDelete
  64. Mạch có 1 thạch anh thôi b ah, b nhìn sơ đồ nguyên lý đó.

    ReplyDelete
  65. 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!

    ReplyDelete
  66. bạn ui h nối p26 trong mach led vao P1, p27 vs p3, p29vs p4 trong mạch dk ak?

    ReplyDelete
  67. 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

    ReplyDelete
  68. This comment has been removed by the author.

    ReplyDelete
  69. cho mjh họ cai tụ nam duoi ic la tu gj zay? duoi ic còn có ljh kjen gj k?

    ReplyDelete
    Replies
    1. Bạn vui lòng xem hình ảnh mạch in ở bài viết trên nhé.

      Regards!

      Delete
  70. cho m xin file full bộ này nhé mail m là namnguyen0509@gmail.com thanks

    ReplyDelete
  71. 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

    ReplyDelete
  72. Anh Tùng có dịp em nhờ anh giúp em làm một cái này nhá.

    ReplyDelete
    Replies
    1. Tự làm đi em, cũng dễ mà. Tự làm thì mới học hỏi được nhiều.hi

      Delete
  73. 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

    ReplyDelete
  74. 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!

    ReplyDelete
    Replies
    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!

      Delete
  75. 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!

    ReplyDelete
  76. 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

    ReplyDelete
    Replies
    1. A1015 cũng được bạn nhé. Con này có vẻ thông dụng hơn.

      Delete
  77. anh quangtung1123 cho em xin chương trình cho led cube 5x5x5 sử dụng 89s52 bằng ngôn ngữ C được không ạ? nếu được thì anh send qua mail tranhoangquy2303@gmail.com giùm em nha. cảm ơn anh

    ReplyDelete
  78. bạn ơi mình là thợ điện tử trẻ, mình rất thích thiết kế led, như bạn, bạn có thể hướng dẫn mình cách lập trình, cần phần mềm j để lập trình, bộ nạp chương trình mua ở đau vậy bạn, nói như thế nào để ng ta bán đúng bo nạp vậy bạn, hix khi xưa mình thi đh vào nghanh điện tử viễn thông nhưng ko có tiền học đành jaj nghỉ học hĩ đi học nghề mà m thích lập trinh nhưng ko làm đc hix. bạn có thể hướng dẫn m qua địa chỉ emai đc ko Huutruong92daklak@gmail.com cảm ơn bạn nhiu

    ReplyDelete
    Replies
    1. Bạn hỏi thế này thì chung chung quá. Hãy bắt đầu từng bước 1 đi:
      - Bạn muốn dùng loại chip nào: 8051, PIC, AVR... thì nó sẽ phần mềm tương ứng để lập trình và bộ nạp riêng. Mới học thì người ta thường học 8051 trước sau đó mới tìm hiểu các loại chip khác vì 8051 đơn giản, học sẽ nhanh hơn. Có gì không hiểu bạn có thể hỏi mình tại đây. Chúc bạn học tốt.

      Delete
  79. a cho e hỏi, cái bộ mạch mình mua về rồi làm led gắn vô được k ạ

    ReplyDelete
  80. This comment has been removed by the author.

    ReplyDelete
  81. anh cho em xin code voi nghita2546@gmail.com

    ReplyDelete
  82. cho em xin code tuanphu53dt@gmail.com
    mà a cho e hỏi sao e xem hình vs linh kiện liệt kê khác nhau vậy..ko thấy trở băng trong hình..ds linh kiện thì ko thấy thạch anh 12mhz vs tụ gốm..v..v.

    ReplyDelete
  83. cach cam bus 8 chan ntn zay a, e ko biet cam ntn cho dung nua ak

    ReplyDelete
  84. Anh cho em xin code với.Cám ơn anh nhiều!
    letrinhan94@gmail.com

    ReplyDelete
  85. anh ơi có thể gủi e file code full của mạch led cube này được k ạ, và có thể chỉ e cách viết chương trình để hiển thị chữ chạy trên khối LED 3D được k ạ, càng chi tiết càng tốt ạ, đây là gmail của e : luctran491994@gmail.com
    Cảm ơn anh nhiều !

    ReplyDelete
  86. Anh ơi, cho em xin code c của mạch này được không? em đang làm nhưng mà muốn tìm hiểu về code của nó. Trước giờ em toàn học PIC thôi à, chưa bao giờ học 8051 cả, giờ muốn tìm hiểu chút! mail của em: thinhktdt@gmail.com
    cám ơn anh nha

    ReplyDelete
  87. Sao mình làm rồi mà led sáng không đều và đẹp vây.

    ReplyDelete
  88. Không sử dụng ic7805 vậy chỉ xài được nguồn 5v thôi hả ad.

    ReplyDelete
  89. anh ơi cho e xin cái mô phỏng proteus, code .C, orcad, layout...có gì cho em xin luôn đi ạ, e muốn tìm hiểu thêm..cám ơn anh trước nha 41304975x@gmail.com

    ReplyDelete
  90. bạn ơi cho mình hỏi con JDC là con gì vậy? trả lời vào mail congquangls@gmail.com giúp mình với nha

    ReplyDelete
  91. a oi cho e file hex voi file c dk khong? minhcuongngo1996@gmail.com

    ReplyDelete
  92. Cho em xin code với anh gmail of e ngqui1996@gmail.com

    ReplyDelete
  93. anh cho e xin code e cảm ơn
    jokerfan2012@gmail.com
    vs lại cho e hỏi con trở băng anh đặt ở đâu z e hk thấy trên sơ đồ mạch in

    ReplyDelete
  94. A ơi cho em hỏi...ở phần mạch in khối led ấy có phần h1 đến h5 là gì vậy a??? Là chân của mấy cái gì vậy anh???

    ReplyDelete
  95. ủa bạn k dùng điện trở băng hả ? mình nhìn mạch hoài k thấy điện trở bảng đâu cả

    ReplyDelete
    Replies
    1. Sử dụng chân VĐK làm out thì không cần điện trở băng cũng được.

      Delete
  96. a ơi, a cho e xin code được ko ak.
    mail: nguyenkhanhqt@gmail.com

    ReplyDelete
  97. Bài viết rất hay bạn ơi. Mình cũng đang tập tành làm cái này.
    Bạn có thể share cho mình file Code không? Mình rất cảm kích.
    Mail của mình: duckhanhphan0912@gmail.com

    ReplyDelete