Thông báo
Collapse
No announcement yet.
32ledTRÁI TIM dùng ic89c51 cho dân điện tử
Collapse
X
-
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.
good luck
Email:
Gmail:
Comment
-
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
-
Nguyê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
-
Nguyê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
-
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
-
Nguyê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
-
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 Mạch tự động bật nguồnbởi davidcopyChỉ cần dùng R C mắc vô phím power là ok....
-
Channel: Điện tử gia dụng
Hôm qua, 20:47 -
-
Trả lời cho Hỏi cách điều chế xungbởi davidcopydùng mach khuếch opamp...
-
Channel: Kỹ thuật điện tử tương tự
Hôm qua, 20:42 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi davidcopy
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 18:56 -
-
bởi bqvietĐấy gọi là cái "điểm gãy" trong đồ thị điện áp - dung lượng còn lại. Dùng điện áp hở cực để xác định sắp hết hoặc gần đầy thì vẫn tạm ổn. Dùng để đo SOC/DOD thì đừng. Ngay cả số km đã đi cũng chả xác định được...
-
Channel: Điện tử dành cho người mới bắt đầu
17-01-2025, 21:36 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80Vâng, em cũng nghĩ thế khi search được hãng ấy là SRNE, nên em test luôn những cái còn lại, và kết quả đều như nhau.
Nhận thấy kết quả khó chấp nhận, em cũng phân vân có nên mail cho họ để họ thử kiểm tra mã đó không; giữa...-
Channel: Điện tử công suất
17-01-2025, 11:33 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80Xin cảm ơn bác bqviet luônnhiệt tình cho biết nhiều thông tin quí báu, cảm ơn bạn mèomướp có ví dụ đơn giản và dễ hiểu, cảm ơn tất cả đã bớt chút thời gian quí báu vào đây đọc bài.
Cảm ơn bác nhathung1101 cho thông tin và chúc mừng bác mua được những tấm pin NLMT cực tốt theo...-
Channel: Điện tử công suất
17-01-2025, 11:22 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi mèomướpDạ chú nhat... cứ coi pin mặt trời như 1 cái ắc qui nhìu ngăn mắc nối tiếp ấy ạ. Khi 1 ngăn yếu thì cả cái ắc qui yếu luôn ạ. Nó có nhìu bộ nối tiếp mắc song song nên bị che 1 khoảng nhỏ ảnh hưởng nhìu nhưng chắc ko đến nỗi mất 50% đâu ạ...
-
Channel: Điện tử công suất
17-01-2025, 06:36 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Nếu nói bị cái lá che sáng mà giảm 50% thì tôi càng không tin, bởi trên vườn tôi mặc kệ ông trời làm vệ sinh.
Tức là lá tự rụng, gió tự dọn. Ai hơi đâu mà leo lên dọn. Nếu phải như thế thì tôi dek thèm lắp làm gì.-
Channel: Điện tử công suất
16-01-2025, 21:44 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Chả hiểu ý cậu nói gì. Cái diode bypass quan trọng thế ư???
Cái giàn của tôi chả thấy cái diode nào mà vẫn hoạt động hơn 3 năm rồi.
Nhưng nó không có kiểu nối dây với bấm cốt như của cậu.
Tóm lại là tiền nào của nấy, đừng hoang tưởng kỹ thuật hóa. Kẻo ô tô điện đua nhau lắp diode.-
Channel: Điện tử công suất
16-01-2025, 21:31 -
-
Trả lời cho Dùng biến áp tự ngẫu 110V có tốn điện không?bởi nhathung1101Tôi dùng 4 cái điều hòa Fujitsu hàng bãi Nhật, nên phải dùng 4 cục đổi nguồn 220 xuống 100V. Để bật quanh năm, chả thấy bằng bữa bia. Chứ tắt đi là mất mấy bữa luôn.
-
Channel: Điện tử gia dụng
16-01-2025, 21:24 -
Comment