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 Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Dạ, cảm ơn bác đã nghe qua và có lời khích lệ cháu ạ.
Thật lòng cháu không dám nhận hai danh hiệu Kỹ sư và Nhạc sĩ đâu ạ, vì phải thật hiểu sâu nắm vững cơ, chứ thực lực cháu đây chỉ là biết chút ít thôi à. Về phần...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 11:58 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietĐơn giản thì có trải nghiệm này
http://www.dientuvietnam.net/forums/...ch%C3%AA%CC%81
Chỉ phần cứng,...-
Channel: Điện tử công suất
27-01-2026, 21:32 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pphức tạp quá, nếu mà có mạch làm sẵn thì ngon, e dùng 2 tấm pv loại 18v 55w thôi bác
-
Channel: Điện tử công suất
26-01-2026, 08:52 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pcảm ơn bác nhiều nha, để e nghiên cứu
-
Channel: Điện tử công suất
26-01-2026, 07:38 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamkỹ sư nhạc sĩ dinhthuong dạo này lên tay nghề khá quá.
-
Channel: Tâm tình dân kỹ thuật
25-01-2026, 21:29 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Hát Mừng Sinh Nhật, sáng tác: HĐT, hòa âm-thể hiện: AI
-
Channel: Tâm tình dân kỹ thuật
24-01-2026, 22:13 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Chào bác, gần Tết công việc bác bận lắm phải không?
Vâng mọi người đều thế cả.
Em mới trả phí cho nó 1 tháng, nhờ nó hát thử ấy ạ. Tiếc vì em đã dốt nhạc lí lại lười học nên sáng tác thì vụng về mà hát demo...-
Channel: Tâm tình dân kỹ thuật
24-01-2026, 21:53 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietCảm thấy cứng tay thì làm theo hướng dẫn khá chi tiết ở trang sau
https://www.instructables.com/DIY-1k...ge-Controller/-
Channel: Điện tử công suất
23-01-2026, 16:50 -
-
bởi Nexus 6PNhư tiêu đề, các bác giới thiệu e mạch sạc nlmt mppt có chức năng chỉnh dòng với, tấm PV của em 18V 55W, dùng để sạc cho khối pin sắt 3.2V 45A (sắp tới sẽ thay bằng ắc quy 12V)
e cảm ơn-
Channel: Điện tử công suất
23-01-2026, 11:23 -

Comment