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 Vấn đề về tốc độ quaybởi nguyendinhvanSử dụng động cơ servor, hoặc lắp thêm một cái encoder vào động cơ bước. Encoder sẽ kiểm soát động cơ có quay hoặc đứng im.
-
Channel: Điện tử truyền hình
Hôm qua, 19:50 -
-
bởi Andrea14Chào mọi người,
Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...-
Channel: Điện tử truyền hình
12-12-2025, 12:42 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi bqvietBqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
-
Channel: Thiết bị điện tử cá nhân
06-12-2025, 17:17 -

Comment