Cái này hay quá, mà chưa hiểu nó hoạt động như thế nào, pro nào am hiểu có thể giải thích hộ e được ko, e đã nghiện cái này muốn làm một cái mà mới vào nghề nên thua.
Led 3d
Collapse
X
-
Muốn làm cái này chỉ cần kiến thức về vi điều khiển thôi. Dựa trên hiện tượng lưu ảnh của mắt người, tại các thời điểm làm cho dãy led sáng ( kiểu như led ma trận ấy) => hiênt hị được hình ảnh.Nguyên văn bởi led123 Xem bài viếtCái này hay quá, mà chưa hiểu nó hoạt động như thế nào, pro nào am hiểu có thể giải thích hộ e được ko, e đã nghiện cái này muốn làm một cái mà mới vào nghề nên thua.
http://www.youtube.com/watch?v=3dCvY...eature=related
-
Nguyên văn bởi kkkk Xem bài viếtMuốn làm cái này chỉ cần kiến thức về vi điều khiển thôi. Dựa trên hiện tượng lưu ảnh của mắt người, tại các thời điểm làm cho dãy led sáng ( kiểu như led ma trận ấy) => hiênt hị được hình ảnh.
cái này chả liên quan gì đến led ma trận cả. nó chỉ là lập trình led đơn thôi.
cái này ko khó phần điện tử vầ lập trình. khó phần cơ khí thôi
Comment
-
Nguyên văn bởi hoasua_2005 Xem bài viết
cái này chả liên quan gì đến led ma trận cả. nó chỉ là lập trình led đơn thôi.
cái này ko khó phần điện tử vầ lập trình. khó phần cơ khí thôi
phần cơ khí là sao hả bạn, có thể nói rõ hơn không. Minh đang lam 2 nè nhưng khi moto quay thi không ra chữ, po tay
Comment
-
Đây la đoạn code mà mình đã viết, nhưng nó không chạy theo ý mình, mấy bro xem thử nó bi trục trặc chổ nào giùm mình nhe'
Sơ đồ mạch thi mình sử dụng AT89S51, P0 xuất ra 8 led đơn (8led anot chung nối lên nguồn), động cơ 12VDC
ORG 0000H
MOV P0,#0FFH
MAIN:
H1: MOV DPTR,#MAHIENTHI
LCALL SCANLED
DJNZ R0,H1
LJMP MAIN
;---------------------------------------------------------------------------
;---------------------------------------------------------------------
SCANLED:
MOV R0,#00H
MOV A,R0
MOVC A,@A+DPTR
MOV P2,A
LCALL DELAY
INC R0
RET
;---------------------------------------------------------------------------
;-------------------------------------------------------------------------
DELAY:
MOV R1,#6
LOOP3: MOV R0,#100
DJNZ R0,$
DJNZ R1,LOOP3
RET
;-------------------------------------------------------------------------
MAHIENTHI:
DB 0FEH,0FEH,0H,0FEH,0FEH,0FFH,0H,0EFH,0EFH,0EFH,0H,0 FFH,80H,7FH,7FH,7FH,80H,0FFH,81H,7EH,7EH,7EH,81H,0 FFH
DB 0H,0F9H,0E7H,9FH,0H,0FFH,81H,7EH,6EH,6EH,8DH,0FFH
END
Comment
-
Không khác gì led matrix. Cái khác ở đây là led matrix quét từng cột thì cái này dùng motor để dịch cột. Thực ra nó có 1 cột led được dịch bởi motor nên xét về nguyên tắc thì chả khác gì led matrix. Để hiển thị dc thì vận tốc motor là một vấn đề.
Comment
-
sẽ k là vấn đề nếu ta dùng 1 cảm biến xác định mốc 12h . đo thời gian giữa 2 lần nhận đc thì ==> vận tốc motor .Nguyên văn bởi duong_act Xem bài viếtKhông khác gì led matrix. Cái khác ở đây là led matrix quét từng cột thì cái này dùng motor để dịch cột. Thực ra nó có 1 cột led được dịch bởi motor nên xét về nguyên tắc thì chả khác gì led matrix. Để hiển thị dc thì vận tốc motor là một vấn đề.
Comment
-
Vấn đề nó nằm ở đấy đấyNguyên văn bởi Zz_Bi_zZ Xem bài viếtsẽ k là vấn đề nếu ta dùng 1 cảm biến xác định mốc 12h . đo thời gian giữa 2 lần nhận đc thì ==> vận tốc motor .
Comment
-
Mình có đoạn code này bạn thử xem, nó dùng cho 8051 đó
PHP Code:$include(reg51.inc) ;T0 interrupt org 000h ajmp main org 000BH acall interr mov p3,#0ffH reti ;EXT0 interrupt org 0003H acall interr1 reti org 230h lookup: db 10000010b,01111100b,01111100b,01111100b,10000010b,11111110b,10111100b,00000000b,11111100b,11111110b,10111100b,01110010b,01110100b,01101100b,10011100b db 01111010b,01111100b,01011100b,00101100b,01110010b,11100110b,11010110b,10110110b,00000000b,11110110b,00001100b,01101100b,01101100b,01101100b,01110010b db 10000010b,01101100b,01101100b,01101100b,11110010b,00111100b,01111010b,01110110b,01101110b,00011110b,11100000b,00001100b,01101100b,00001100b,11100000b db 10011110b,01101100b,01101100b,01101100b,10000010b org 285h db 10000000b,01101110b,01101110b,01101110b,10000000b,00000000b,01101100b,01101100b,10001100b,11110010b,10000010b,01111100b,01111100b,01111100b,01111100b db 01111100b,00000000b,01111100b,01111100b,10000010b,00000000b,01101100b,01101100b,01111100b,01111100b,00000000b,01101110b,01101110b,01111110b,01111110b db 00000000b,01111100b,01101100b,01101100b,01100000b,00000000b,11101110b,11101110b,11101110b,00000000b,11111110b,01111100b,00000000b,01111100b,11111110b db 11111010b,01111100b,00000010b,01111110b,11111110b,00000000b,11101110b,11010110b,10111010b,01111100b,00000000b,11111100b,11111100b,11111100b,11111100b db 00000000b,01111110b,11001110b,01111110b,00000000b,00000000b,10011110b,11101110b,11110010b,00000000b,00000000b,01111100b,01111100b,01111100b,00000000b db 00000000b,01101110b,01101110b,01101110b,10011110b,10000010b,01111100b,01110100b,01111000b,10000000b,00000000b,01101110b,01100110b,01101010b,10011100b db 10011000b,01101100b,01101100b,01101100b,10110010b,01111110b,01111110b,00000000b,01111110b,01111110b,00000000b,11111100b,11111100b,11111100b,00000000b db 00000110b,11111010b,11111100b,11111010b,00000110b,00000010b,11111100b,11110010b,11111100b,00000010b,00111000b,11010110b,11101110b,11010110b,00111000b db 00111110b,11011110b,11100000b,11011110b,00111110b,01111000b,01110100b,01101100b,01011100b,00111100b,11111111b,11111111b,11111111b,11111111b,11111111b, ;Main Function org 0100h main: mov ie,#83H mov ip,01H mov tmod,#12H mov th0,#00h mov tl0,#00h setb it0 mov p3,#0FFh acall ramc mov th1,#00h mov tl1,#00h setb tr0 setb tr1 here: ajmp here interr: ;T0 interrupt cjne r6,#0ffh,sk mov r6,#00h acall disp sjmp sk1 sk: mov r6,#0ffh sk1: clr tf0 ret ; EXT0 interruupt interr1: clr tr1 clr tr0 mov a,th1 mov r1,a mov a,tl1 mov r0,a mov r3,#00h mov r2,#160 acall div16_16 mov a,r2 subb a,0ffh mov th0,a mov tl0,a mov th1,#00h mov tl1,#00h setb tr1 setb tr0 mov r0,#23h mov r5,#00h mov r6,#00h ret ramc: mov dptr,#600h mov r7,#30 mov r0,#40h loop1: mov a,r7 subb a,#01h movc a,@a+dptr mov @r0,a dec r0 djnz r7,loop1 ret disp: cjne r5,#5,continue mov a,@r0 cjne a,#'[',space mov p1,#11111111b sjmp cont space: mov p1,#11111110b cont: inc r0 mov r5,#00h ajmp neglect continue: mov a,@r0 ; moves ASCII from RAM to R0 clr c subb A,#30h ; mov b,#05 ; ASCII to Adress conversion mul AB ; mov dptr,#230h add a,r5 ; Memory offset movc A,@A+DPTR mov p1,a inc r5 neglect: ret org 600h msg: db 'PROPELLER[DISPLAY[[[[[[[[[[[[[[[[[[[[',0 div16_16: CLR C ;Clear carry initially MOV R4,#00h ;Clear R4 working variable initially MOV R5,#00h ;CLear R5 working variable initially MOV B,#00h ;Clear B since B will count the number of left-shifted bits div1: INC B ;Increment counter for each left shift MOV A,R2 ;Move the current divisor low byte into the accumulator RLC A ;Shift low-byte left, rotate through carry to apply highest bit to high-byte MOV R2,A ;Save the updated divisor low-byte MOV A,R3 ;Move the current divisor high byte into the accumulator RLC A ;Shift high-byte left high, rotating in carry from low-byte MOV R3,A ;Save the updated divisor high-byte JNC div1 ;Repeat until carry flag is set from high-byte div2: ;Shift right the divisor MOV A,R3 ;Move high-byte of divisor into accumulator RRC A ;Rotate high-byte of divisor right and into carry MOV R3,A ;Save updated value of high-byte of divisor MOV A,R2 ;Move low-byte of divisor into accumulator RRC A ;Rotate low-byte of divisor right, with carry from high-byte MOV R2,A ;Save updated value of low-byte of divisor CLR C ;Clear carry, we don't need it anymore MOV 07h,R1 ;Make a safe copy of the dividend high-byte MOV 06h,R0 ;Make a safe copy of the dividend low-byte MOV A,R0 ;Move low-byte of dividend into accumulator SUBB A,R2 ;Dividend - shifted divisor = result bit (no factor, only 0 or 1) MOV R0,A ;Save updated dividend MOV A,R1 ;Move high-byte of dividend into accumulator SUBB A,R3 ;Subtract high-byte of divisor (all together 16-bit substraction) MOV R1,A ;Save updated high-byte back in high-byte of divisor JNC div3 ;If carry flag is NOT set, result is 1 MOV R1,07h ;Otherwise result is 0, save copy of divisor to undo subtraction MOV R0,06h div3: CPL C ;Invert carry, so it can be directly copied into result MOV A,R4 RLC A ;Shift carry flag into temporary result MOV R4,A MOV A,R5 RLC A MOV R5,A DJNZ B,div2 ;Now count backwards and repeat until "B" is zero MOV R3,05h ;Move result to R3/R2 MOV R2,04h ;Move result to R3/R2 RET endHãy chia sẽ những gì mình biết
Comment
Bài viết mới nhất
Collapse
-
bởi mèomướp1. Tìm hiểu đc thì càng tốt, bận thì thôi. Ko cần quá quan trọng
2. Số tự động cho đơn giản, kiểu như đi xe ga ấy ạ
3. Học lý thuyết tử tế ok
4.ok
5.có. đủ số km, tgian cầm lái là đc
6.đi ăn tập thể,...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 16:34 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnE nhớ bác Vivanpham làm bên điện tử y sinh, có lần đó cái sơ đồ máy chụp x quang sao có mấy con thryristor làm gì mà ko ai trả lới đúng cả
...
-
Channel: Tâm tình dân kỹ thuật
07-08-2026, 09:17 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnBác kiểm tra lại đường mạch, mối hàn xem có bị hở hoặc dẫn không tốt không?
Thay cầu diode lớn hơn càng tốt không vấn đề gì cả....-
Channel: Điện thanh
07-08-2026, 09:12 -
-
bởi LantheChào bạn.
Trục đầu ra của hộp số hành tinh xoắn ốc được kết nối với mặt bích của khách hàng thông qua một trục răng trong. Sau chưa đầy sáu tháng hoạt động, nó phát ra tiếng kêu lách cách và độ rơ lớn đáng báo động.
Việc...-
Channel: Thiết bị điện tử cá nhân
06-08-2026, 13:05 -
-
bởi ittcChào các anh em nhé, mình dự định sắp tới sẽ đi học lái xe Ôtô, thi lấy bằng lái. Cụ thể mình sẽ học và thi lấy giấy phép lái xe hạng B. Thật sự mình là người chưa có kiến thức hiểu biết gì về Ôtô cả ? tất nhiên mình sẽ phải...-
Channel: Tâm tình dân kỹ thuật
-

Comment