Thông báo
Collapse
No announcement yet.
32ledTRÁI TIM dùng ic89c51 cho dân điện tử
Collapse
X
-
cái này mình có cái 16 led bác lấy rồi phát triển thêm đc kNguyên văn bởi boychjpcoj Xem bài viếtai có chtrình sáng dồn 32led trái tim ko. sáng từng led 1 sau đó giữ led nah.
good luck
Email:
Gmail:
Comment
-
thử cái này xem sao:Nguyên văn bởi boychjpcoj Xem bài viếtai có chtrình sáng dồn 32led trái tim ko. sáng từng led 1 sau đó giữ led nah.
Code:#include"reg51.h" char x,y,i,j,q,g=0x00; int tong2; unsigned long int time=2000;//thay đổi giá trị time để có delay mong muốn void sang_don(); void don_32(); void don_24(); void don_16(); void don_8(); const unsigned char ma_led[]= {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x81,0x82,0x84,0x88,0x90, 0xA0,0xC0,0xC1,0xC2,0xC4,0xC8,0xD0,0xE0,0xE1,0xE2,0xE4,0xE8,0xF0,0xF1,0xF2,0xF4,0xF8,0xF9,0xFA, 0xFC,0xFD,0xFE,0xff}; unsigned long tam; void delay(unsigned long int t) { unsigned long int l; for(l=0;l<t;l++); } main() { while(1) { g=0; don_32(); g++; don_24(); g++; don_16(); g++; don_8(); delay(time+1000); P1=P2=P3=P0=0xff; } } void sang_don() { for(x=0;x<=j;x++) { switch (y) { case 0: { if(g==0) P0=~ma_led[0+x]; else if(g==1) P2=~ma_led[0+x]; else if(g==2) P3=~ma_led[0+x]; else if(g==3) P1=~ma_led[0+x]; break; } case 1: { if(g==0) P0=~ma_led[8+x]; else if(g==1) P2=~ma_led[8+x]; else if(g==2) P3=~ma_led[8+x]; else if(g==3) P1=~ma_led[8+x]; break; } case 2: { if(g==0) P0=~ma_led[15+x]; else if(g==1) P2=~ma_led[15+x]; else if(g==2) P3=~ma_led[15+x]; else if(g==3) P1=~ma_led[15+x]; break; } case 3: { if(g==0) P0=~ma_led[21+x]; else if(g==1) P2=~ma_led[21+x]; else if(g==2) P3=~ma_led[21+x]; else if(g==3) P1=~ma_led[21+x]; break; } case 4: { if(g==0) P0=~ma_led[26+x]; else if(g==1) P2=~ma_led[26+x]; else if(g==2) P3=~ma_led[26+x]; else if(g==3) P1=~ma_led[26+x]; break; } case 5: { if(g==0) P0=~ma_led[30+x]; else if(g==1) P2=~ma_led[30+x]; else if(g==2) P3=~ma_led[30+x]; else if(g==3) P1=~ma_led[30+x]; break; } case 6: { if(g==0) P0=~ma_led[33+x]; else if(g==1) P2=~ma_led[33+x]; else if(g==2) P3=~ma_led[33+x]; else if(g==3) P1=~ma_led[33+x]; break; } case 7: { if(g==0) P0=~ma_led[35+x]; else if(g==1) P2=~ma_led[35+x]; else if(g==2) P3=~ma_led[35+x]; else if(g==3) P1=~ma_led[35+x]; break; } } delay (time); } j--; } void don_32() { j=7; for(y=0;y<=7;y++) { for(q=0;q<=2;q++) { for(x=0;x<=7;x++) { switch (q) { case 0: { P1= ~ma_led[x]; delay (time); break; } case 1: { P3= ~ma_led[x]; delay (time); break; } case 2: { P2= ~ma_led[x]; delay (time); break; } } } P2= P1= P3=0xff; } sang_don(); } } void don_24() { j=7; for(y=0;y<=7;y++) { for(q=0;q<=1;q++) { for(x=0;x<=7;x++) { switch (q) { case 0: { P1= ~ma_led[x]; delay (time); break; } case 1: { P3= ~ma_led[x]; delay (time); break; } } } P1= P3=0xff; } sang_don(); } } void don_16() { j=7; for(y=0;y<=7;y++) { for(x=0;x<=7;x++) { P1= ~ma_led[x]; delay (time); } P1=0xff; sang_don(); } } void don_8() { j=7; for(y=0;y<=7;y++) { sang_don(); } }Attached Files|
Comment
-
bác chơi = C ak thế thì e chịuNguyên văn bởi tdm Xem bài viếtthử cái này xem sao:
Code:#include"reg51.h" char x,y,i,j,q,g=0x00; int tong2; unsigned long int time=2000;//thay đổi giá trị time để có delay mong muốn void sang_don(); void don_32(); void don_24(); void don_16(); void don_8(); const unsigned char ma_led[]= {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x81,0x82,0x84,0x88,0x90, 0xA0,0xC0,0xC1,0xC2,0xC4,0xC8,0xD0,0xE0,0xE1,0xE2,0xE4,0xE8,0xF0,0xF1,0xF2,0xF4,0xF8,0xF9,0xFA, 0xFC,0xFD,0xFE,0xff}; unsigned long tam; void delay(unsigned long int t) { unsigned long int l; for(l=0;l<t;l++); } main() { while(1) { g=0; don_32(); g++; don_24(); g++; don_16(); g++; don_8(); delay(time+1000); P1=P2=P3=P0=0xff; } } void sang_don() { for(x=0;x<=j;x++) { switch (y) { case 0: { if(g==0) P0=~ma_led[0+x]; else if(g==1) P2=~ma_led[0+x]; else if(g==2) P3=~ma_led[0+x]; else if(g==3) P1=~ma_led[0+x]; break; } case 1: { if(g==0) P0=~ma_led[8+x]; else if(g==1) P2=~ma_led[8+x]; else if(g==2) P3=~ma_led[8+x]; else if(g==3) P1=~ma_led[8+x]; break; } case 2: { if(g==0) P0=~ma_led[15+x]; else if(g==1) P2=~ma_led[15+x]; else if(g==2) P3=~ma_led[15+x]; else if(g==3) P1=~ma_led[15+x]; break; } case 3: { if(g==0) P0=~ma_led[21+x]; else if(g==1) P2=~ma_led[21+x]; else if(g==2) P3=~ma_led[21+x]; else if(g==3) P1=~ma_led[21+x]; break; } case 4: { if(g==0) P0=~ma_led[26+x]; else if(g==1) P2=~ma_led[26+x]; else if(g==2) P3=~ma_led[26+x]; else if(g==3) P1=~ma_led[26+x]; break; } case 5: { if(g==0) P0=~ma_led[30+x]; else if(g==1) P2=~ma_led[30+x]; else if(g==2) P3=~ma_led[30+x]; else if(g==3) P1=~ma_led[30+x]; break; } case 6: { if(g==0) P0=~ma_led[33+x]; else if(g==1) P2=~ma_led[33+x]; else if(g==2) P3=~ma_led[33+x]; else if(g==3) P1=~ma_led[33+x]; break; } case 7: { if(g==0) P0=~ma_led[35+x]; else if(g==1) P2=~ma_led[35+x]; else if(g==2) P3=~ma_led[35+x]; else if(g==3) P1=~ma_led[35+x]; break; } } delay (time); } j--; } void don_32() { j=7; for(y=0;y<=7;y++) { for(q=0;q<=2;q++) { for(x=0;x<=7;x++) { switch (q) { case 0: { P1= ~ma_led[x]; delay (time); break; } case 1: { P3= ~ma_led[x]; delay (time); break; } case 2: { P2= ~ma_led[x]; delay (time); break; } } } P2= P1= P3=0xff; } sang_don(); } } void don_24() { j=7; for(y=0;y<=7;y++) { for(q=0;q<=1;q++) { for(x=0;x<=7;x++) { switch (q) { case 0: { P1= ~ma_led[x]; delay (time); break; } case 1: { P3= ~ma_led[x]; delay (time); break; } } } P1= P3=0xff; } sang_don(); } } void don_16() { j=7; for(y=0;y<=7;y++) { for(x=0;x<=7;x++) { P1= ~ma_led[x]; delay (time); } P1=0xff; sang_don(); } } void don_8() { j=7; for(y=0;y<=7;y++) { sang_don(); } }
vừa mới học asm thui
bác có bản asm k e mới viết 16 led thôi chưa viết 32 led để tẹo rảnh viêt cái xem sao
Email:
Gmail:
Comment
-
tắt dần ahNguyên văn bởi tdm Xem bài viếtthử cái này xem sao:
Code:#include"reg51.h" char x,y,i,j,q,g=0x00; int tong2; unsigned long int time=2000;//thay đổi giá trị time để có delay mong muốn void sang_don(); void don_32(); void don_24(); void don_16(); void don_8(); const unsigned char ma_led[]= {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x81,0x82,0x84,0x88,0x90, 0xA0,0xC0,0xC1,0xC2,0xC4,0xC8,0xD0,0xE0,0xE1,0xE2,0xE4,0xE8,0xF0,0xF1,0xF2,0xF4,0xF8,0xF9,0xFA, 0xFC,0xFD,0xFE,0xff}; unsigned long tam; void delay(unsigned long int t) { unsigned long int l; for(l=0;l<t;l++); } main() { while(1) { g=0; don_32(); g++; don_24(); g++; don_16(); g++; don_8(); delay(time+1000); P1=P2=P3=P0=0xff; } } void sang_don() { for(x=0;x<=j;x++) { switch (y) { case 0: { if(g==0) P0=~ma_led[0+x]; else if(g==1) P2=~ma_led[0+x]; else if(g==2) P3=~ma_led[0+x]; else if(g==3) P1=~ma_led[0+x]; break; } case 1: { if(g==0) P0=~ma_led[8+x]; else if(g==1) P2=~ma_led[8+x]; else if(g==2) P3=~ma_led[8+x]; else if(g==3) P1=~ma_led[8+x]; break; } case 2: { if(g==0) P0=~ma_led[15+x]; else if(g==1) P2=~ma_led[15+x]; else if(g==2) P3=~ma_led[15+x]; else if(g==3) P1=~ma_led[15+x]; break; } case 3: { if(g==0) P0=~ma_led[21+x]; else if(g==1) P2=~ma_led[21+x]; else if(g==2) P3=~ma_led[21+x]; else if(g==3) P1=~ma_led[21+x]; break; } case 4: { if(g==0) P0=~ma_led[26+x]; else if(g==1) P2=~ma_led[26+x]; else if(g==2) P3=~ma_led[26+x]; else if(g==3) P1=~ma_led[26+x]; break; } case 5: { if(g==0) P0=~ma_led[30+x]; else if(g==1) P2=~ma_led[30+x]; else if(g==2) P3=~ma_led[30+x]; else if(g==3) P1=~ma_led[30+x]; break; } case 6: { if(g==0) P0=~ma_led[33+x]; else if(g==1) P2=~ma_led[33+x]; else if(g==2) P3=~ma_led[33+x]; else if(g==3) P1=~ma_led[33+x]; break; } case 7: { if(g==0) P0=~ma_led[35+x]; else if(g==1) P2=~ma_led[35+x]; else if(g==2) P3=~ma_led[35+x]; else if(g==3) P1=~ma_led[35+x]; break; } } delay (time); } j--; } void don_32() { j=7; for(y=0;y<=7;y++) { for(q=0;q<=2;q++) { for(x=0;x<=7;x++) { switch (q) { case 0: { P1= ~ma_led[x]; delay (time); break; } case 1: { P3= ~ma_led[x]; delay (time); break; } case 2: { P2= ~ma_led[x]; delay (time); break; } } } P2= P1= P3=0xff; } sang_don(); } } void don_24() { j=7; for(y=0;y<=7;y++) { for(q=0;q<=1;q++) { for(x=0;x<=7;x++) { switch (q) { case 0: { P1= ~ma_led[x]; delay (time); break; } case 1: { P3= ~ma_led[x]; delay (time); break; } } } P1= P3=0xff; } sang_don(); } } void don_16() { j=7; for(y=0;y<=7;y++) { for(x=0;x<=7;x++) { P1= ~ma_led[x]; delay (time); } P1=0xff; sang_don(); } } void don_8() { j=7; for(y=0;y<=7;y++) { sang_don(); } }
Comment
-
Comment
-
mô phỏng rồi mà.không phải tắt dần mà là tắt dồn. điều khiển âm ah. thế làm sao sửa diều khiển dương?Nguyên văn bởi tdm Xem bài viếtđã mô phỏng thử chưa mà biết nó tắt dần.
Comment
-
Mạch của bạn điều khiển dương mà sáng được cũng hay thật đấyNguyên văn bởi boychjpcoj Xem bài viếtmô phỏng rồi mà.không phải tắt dần mà là tắt dồn. điều khiển âm ah. thế làm sao sửa diều khiển dương?
Comment
-
thì nó sáng cả rùi tắt dồn lại màNguyên văn bởi ckd_speed Xem bài viếtMạch của bạn điều khiển dương mà sáng được cũng hay thật đấy
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Tìm bạn thân quen cũ.bởi mèomướpDạ cháu đọc 1 số bài viết của bác vi... thì nhớ đc bác là 1 cụ già gần 80 tuổi, sức khỏe yếu. Đam mê và làm vc về kỹ thuật điện. Thích thơ ca. Có nhìu bài chia sẻ quý báu cho thế hệ sau. Tuy nhiên già rồi nên khái tính, bảo thủ, nhưng vẫn đáng kính ạ... còn lão nhathung... thì kiểu bố đời
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 12:52 -
-
bởi lvhnHãng nào tùy thích thôi bác! bây giờ các hãng đều hỗ trợ xem qua máy tính hay điện thoại đều được. Gắn Trước tiên mua về cắm nguồn set ip hết xong hãy lắp lên, cam poe chỉ cần 4 lõi là hoạt động bình thường nên 1 dây kéo cho 2 cam vẫn ok
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 15:49 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnNhớ không nhầm thì lúc còn đi học có gặp chú 1 lần cf bãi xe Nguyễn Kim, giờ quán cf đó nghỉ bán rồi
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 15:44 -
-
Trả lời cho Thắc mắc pin 21v ?bởi lvhnCon số đấy biểu thị gần đúng thôi, cái đồng hồ đó có đảm bảo chính xác hay không? pin có cục lên 4v4 vẫn bình thường. Cái gì cũng có sai số trong phạm vi không quá lớn thì không ảnh hưởng gì đâu, bàn ngay ngón ngắn ngón dài mà
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 15:32 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnThay mấy con transisto nhỏ đầu vào, thường vi sai lỗi hay bị. Khám tổng quát chân các linh kiện xem có bị rỉ sét nhiều không?
-
Channel: Điện thanh
Hôm qua, 15:24 -
-
bởi dinhthuong92Mạch này hiệu suất ra led đạt khoảng 90.7% tại 12V in, 40W out.
-
Channel: Nguồn!
27-07-2026, 10:15 -
-
bởi dinhthuong92Có lẽ nguồn viết bài này chỉ mang tính định tính để nói rằng cần thay đổi tổng trở tải để có Pmax chứ trình bày chưa chi tiết và thấu đáo một cách định lượng. Công thức tổng quát phải có mặt L mới được, và nói là "tổng...
-
Channel: Nguồn!
27-07-2026, 10:09 -
-
Trả lời cho [Chia sẻ] Tổng hợp các công ty AI Việt Nam đang làm gì thật sự — Từ voicebot, computer vision đến AI agentsbởi nguyendinhvanCàng ngày, CNTT càng trở nên lôi thôi , rách việc.
Cái AI và Ge... trên trình duyệt chỉ tổ làm vướng mắt, mất thì gian.
Tôi toàm phải mất cộng tắt nó đi.-
Channel: Xu hướng, nhu cầu và thị trường
25-07-2026, 14:59 -
-
bởi trung30000Em có con amply 12 sò D 718 và e688 , biến áp 15A, 30v 0 30 v, một kênh thì hoạt động bình thường, kênh còn lại nổ bụp bụp, sột sột, đèn tín hiệu nhảy lên vạch max, khoảng 4 đến 5 giây, sau đó đèn tín hiệu trả về mức không, Em thấy như...
-
Channel: Điện thanh
24-07-2026, 13:50 -
-
Trả lời cho Tìm hiểu máy hàn lăn (Rolling Welding)bởi hoang_3ibác cần thì liên hệ Em: mayhanhaivuong.com (0903238399)...
-
Channel: Điện tử công nghiệp
24-07-2026, 10:58 -

Comment