Bác nào có thể post hướng dẫn về giao tiếp 1-dây được ko??? cụ thể là giao tiếp với ds1820. Mình cần 1 đoạn code mẫu (bằng asm) về giao tiếp này, thanks nhiều. Mình search nhiều trên net nhưng chỉ thấy nói ko à chứ ko có bài hướng dẫn cụ thể về loại giao tiếp này.
Thông báo
Collapse
No announcement yet.
Hướng dẫn giúp mình về giao tiếp one-wire (với ds1820)
Collapse
X
-
Nguyên văn bởi vodangks Xem bài viếtBác nào có thể post hướng dẫn về giao tiếp 1-dây được ko??? cụ thể là giao tiếp với ds1820. Mình cần 1 đoạn code mẫu (bằng asm) về giao tiếp này, thanks nhiều. Mình search nhiều trên net nhưng chỉ thấy nói ko à chứ ko có bài hướng dẫn cụ thể về loại giao tiếp này.Attached Files
-
-
Mấy bạn nói rõ hơn 1 chút về giao tiếp 1 dây này dc ko, mình xem toàn tiếng Anh, chả hiểu mù gì
À mà mình tìm dc 1 project dùng ds1820 nhưng code của nó lại có đuôi .a51 nên ko biết mở thế nào
http://www.8051projects.info/proj.asp?ID=75
Comment
-
Nguyên văn bởi tranpic Xem bài viếtmình chỉ có source C thôi
Comment
-
tui lượm được trên mạng đoạn code này các bạn tham khảo nhé. Không chắc đúng đâu. Tui nghiên cứu lại rồi post sau.
;; Dallas DS1820 multidrop routines using timer 0 in mode 3 for MCS51
;; External power for DS1820 assumed
;; Clock is 11.0592 MHz -> one cycle is 1.0850694 us
;; Copyright 1999, Leon Kos, University of Ljubljana
;; TODO: Initial check routines for external power on each device
;; $Id: ds1820.asm,v 1.2 2003/09/13 15:31:57 leon Exp $
NAME DS1820
APD BIT 0F8h ; P5.0 driving gate of the DMOS for
READ BIT 0EFh ; P4.7 reading response from slaves
ds1820_routines SEGMENT CODE
T1_interrupt SEGMENT CODE
ds1820rom SEGMENT CODE
dowcrc SEGMENT CODE
ds1820data SEGMENT DATA
bitvar SEGMENT BIT
public ds1820_init
public _ds1820_start
public touch_byte
public convert_time
public ds1820error
public scratchpad
public ds1820crc_ok
public errornum
public ds1820device
CSEG AT 0001BH
jmp timer1
RSEG T1_interrupt
timer1:
push acc ; 2
push psw ; 2
push dpl ; 2
push dph ; 2
jnb bit_state, matchROM_loop
bit_loop: ; bit writing/reading loop
clr APD
setb bit_state ; enable this state
mov c, read_slot
mov a, touch_byte
rrc a
mov touch_byte, a
djnz bitcnt, touch_bit
mov bitcnt, #9
clr bit_state
jmp exit_t1
touch_bit:
setb APD ; 1T
nop ; 1T
nop
nop
nop ; 1T
cpl c ; 1T
mov APD, c ; 1T
nop
nop
nop
nop
nop
nop
nop
mov c, READ
mov read_slot, c
mov TH0, #(0FFh - 30)
pop dph ; 2
pop dpl ; 2
pop psw ; 2
pop acc ; 2
reti
matchROM_loop:
jnb matchROM_state, reset_state_loop
mov a, loop ; test the loop counter
clr C ; clear for one byte substraction
subb a, #8 ; loop couner in incrementing
jz _rom_end ; substract to match zero at end
mov dptr, #rom_table; point to in CODE device table
mov a, ds1820device ; which device
rl a ; address
rl a ; is multiple of
rl a ; 8 offset
add a, loop ; select byte from table
movc a, @a+dptr
mov touch_byte, a
inc loop
jmp bit_loop
_rom_end:
clr matchROM_state
inc state
jmp state_loop
reset_state_loop:
jnb reset_state, state_loop
mov a, loop
dec a
jz _reset_end
mov loop, a
add a, #254
jnz _rst0
clr APD
_rst0: jmp exit_t1
_reset_end:
clr reset_state
inc state
state_loop: ; Main state machine loop
mov a, state ; must be in the middle
mov dptr, #jump_table; of the code
movc a, @a+dptr
jmp @a+dptr
jump_table:
db reset0 - jump_table
db match_rom0 - jump_table
db convertT - jump_table
db readbusy - jump_table
db reset1 - jump_table
db match_rom1 - jump_table
db read_scratchpad - jump_table
db temp_lsb - jump_table
db temp_msb - jump_table
db user_byte1 - jump_table
db user_byte2 - jump_table
db reserved1 - jump_table
db reserved2 - jump_table
db count_remain - jump_table
db count_per_c - jump_table
db crc - jump_table
db stop - jump_table
reset0:
mov loop, #4
setb reset_state
mov TH0, #(255-200) ; first half of the reset time
setb APD
jmp exit_t1
match_rom0:
mov touch_byte, #55h
mov loop, #0
setb matchROM_state
jmp bit_loop
convertT:
mov touch_byte, #44h
inc state
mov convert_time, #00h
mov convert_time + 1, #00h
jmp bit_loop
readbusy: ; check every 280us
inc convert_time + 1;
mov a, convert_time + 1
jnz _noinc
inc convert_time
mov a, #12h ; 12*72ms=860ms overrun
anl a, convert_time
jz _noinc
setb ds1820error ; short circuit
mov errornum, #1 ; to long zero resonse
jmp end_t1
_noinc: mov a, touch_byte
mov touch_byte, #0FFh
inc a
jz converted
jmp bit_loop
converted:
clr C
inc state
reset1:
mov loop, #4
setb reset_state
mov TH0, #(255-200) ; first half of the reset time
setb APD
jmp exit_t1
match_rom1:
mov touch_byte, #55h
mov loop, #0
setb matchROM_state
jmp bit_loop
read_scratchpad:
mov touch_byte, #0BEh
inc state
jmp bit_loop
temp_lsb: ; larger but easy to fetch bytes
mov touch_byte, #0FFh
inc state
jmp bit_loop
temp_msb:
mov scratchpad, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
user_byte1:
mov scratchpad + 1, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
user_byte2:
mov scratchpad + 2, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
reserved1:
mov scratchpad + 3, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
reserved2:
mov scratchpad + 4, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
count_remain:
mov scratchpad + 5, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
count_per_c:
mov scratchpad + 6, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
crc:
mov scratchpad + 7, touch_byte
mov touch_byte, #0FFh
inc state
jmp bit_loop
stop:
mov scratchpad + 8, touch_byte
end_t1:
clr ET1 ; disable interrupt
clr TR1 ; stop the timer
mov state, #0 ; reset the machine state
clr APD ; power the line
exit_t1: ; exit from interrupt
pop dph ; 2
pop dpl ; 2
pop psw ; 2
pop acc ; 2
reti
RSEG ds1820_routines
ds1820_init: ; initialize the variables
mov bitcnt, #9 ; bit counter
clr APD ; power the devices on line
setb READ ; enable reading
clr matchROM_state ; not sending match ROM to ds1820
clr bit_state ; not in the bit delay state
clr reset_state ; not in the reset state
mov state, #0 ; clear machine state
mov ds1820device,#0 ; default is reading device0
anl TMOD, #0f0h ; timer 0
orl TMOD, #03h ; in mode 3
setb EA ; Enable interrupts
ret
_ds1820_start: ; R7 has the device number to read
mov ds1820device,R7
mov TH0,#0FAh
clr ds1820error ; no error at beginning
mov errornum, #0
setb ET1
setb TR1
ret
RSEG dowcrc
ds1820crc_ok: ; extern bit ds1820crc_ok(void);
mov loop, #9 ; 8+1 byte CRC
mov ds1820crc, #0 ; clear CRC register
mov dptr, #dowcrc_table
mov r0, #scratchpad
_crc:
mov a, @r0 ; scratchad value
xrl a, ds1820crc
movc a, @a+dptr
mov ds1820crc, a
inc r0
djnz loop, _crc
jz _ok
clr CY
ret
_ok: setb CY
ret
dowcrc_table: DB 0, 94, 188, 226, 97, 63, 221, 131
DB 194, 156, 126, 32, 163, 253, 31, 65
DB 157, 195, 33, 127, 252, 162, 64, 30
DB 95, 1, 227, 189, 62, 96, 130, 220
DB 35, 125, 159, 193, 66, 28, 254, 160
DB 225, 191, 93, 3, 128, 222, 60, 98
DB 190, 224, 2, 92, 223, 129, 99, 61
DB 124, 34, 192, 158, 29, 67, 161, 255
DB 70, 24, 250, 164, 39, 121, 155, 197
DB 132, 218, 56, 102, 229, 187, 89, 7
DB 219, 133, 103, 57, 186, 228, 6, 88
DB 25, 71, 165, 251, 120, 38, 196, 154
DB 101, 59, 217, 135, 4, 90, 184, 230
DB 167, 249, 27, 69, 198, 152, 122, 36
DB 248, 166, 68, 26, 153, 199, 37, 123
DB 58, 100, 134, 216, 91, 5, 231, 185
DB 140, 210, 48, 110, 237, 179, 81, 15
DB 78, 16, 242, 172, 47, 113, 147, 205
DB 17, 79, 173, 243, 112, 46, 204, 146
DB 211, 141, 111, 49, 178, 236, 14, 80
DB 175, 241, 19, 77, 206, 144, 114, 44
DB 109, 51, 209, 143, 12, 82, 176, 238
DB 50, 108, 142, 208, 83, 13, 239, 177
DB 240, 174, 76, 18, 145, 207, 45, 115
DB 202, 148, 118, 40, 171, 245, 23, 73
DB 8, 86, 180, 234, 105, 55, 213, 139
DB 87, 9, 235, 181, 54, 104, 138, 212
DB 149, 203, 41, 119, 244, 170, 72, 22
DB 233, 183, 85, 11, 136, 214, 52, 106
DB 43, 117, 151, 201, 74, 20, 246, 168
DB 116, 42, 200, 150, 21, 75, 169, 247
DB 182, 232, 10, 84, 215, 137, 107, 53
alternate_dowcrc: ; slower and thus not used
mov ds1820crc, #0
mov loop, #8 ; 8 bytes
mov r0, #scratchpad
_dcrc: mov a, @r0
call do_crc
inc r0
djnz loop, _dcrc
ret
do_crc: push acc
push b
push acc
mov b, #8
crc_loop:
xrl a, ds1820crc
rrc a
mov a, ds1820crc
jnc zero
xrl a, #18h
zero: rrc a
mov ds1820crc, a
pop acc
rr a
push acc
djnz b, crc_loop
pop acc
pop b
pop acc
ret
RSEG ds1820data
bitcnt: ds 1 ; bit couter
touch_byte: ds 1 ; touch byte
scratchpad: ds 9 ; DS1820 scratchpad
convert_time: ds 2 ; time required for conversion
state: ds 1 ; machine state
loop: ds 1 ; shared byte for loops
errornum: ds 1 ; error number
ds1820device: ds 1 ; which device number 0,1,...
ds1820crc: ds 1 ; DOW 8 bit CRC value
RSEG bitvar
read_slot: DBIT 1 ; read bit from ds1820
bit_state: DBIT 1 ; delaying one bit state
matchROM_state: DBIT 1 ; sending MATCH ROM state
reset_state: DBIT 1 ; resetting the bus state
ds1820error: DBIT 1 ; error getting temperature
RSEG ds1820rom
rom_table: ; avalable devices on the 1-wire net
device0: DB 10h, 09Ah, 4Bh, 09h, 00h, 00h, 00h, 08Fh
device1: DB 10h, 088h, 3Dh, 0Ch, 00h, 00h, 00h, 0CAh
device2: DB 10h, 05Bh, 49h, 09h, 00h, 00h, 00h, 0A4h
device3: DB 10h, 022h, 49h, 09h, 00h, 00h, 00h, 0AAh
device4: DB 10h, 0DAh, 4Ah, 09h, 00h, 00h, 00h, 037h
device5: DB 10h, 099h, 48h, 09h, 00h, 00h, 00h, 098h
device6: DB 10h, 021h, 47h, 09h, 00h, 00h, 00h, 051h
device7: DB 10h, 0EEh, 47h, 09h, 00h, 00h, 00h, 0EAh
device8: DB 10h, 06Eh, 47h, 09h, 00h, 00h, 00h, 000h
device9: DB 10h, 0D3h, 49h, 09h, 00h, 00h, 00h, 0EFh
device10: DB 10h, 09Ah, 47h, 09h, 00h, 00h, 00h, 0AEh
device11: DB 10h, 0B1h, 4Ah, 09h, 00h, 00h, 00h, 00Ch
device12: DB 10h, 08Bh, 4Ah, 09h, 00h, 00h, 00h, 02Eh
device13: DB 10h, 03Ch, 4Bh, 09h, 00h, 00h, 00h, 061h
device14: DB 10h, 074h, 49h, 09h, 00h, 00h, 00h, 036h
device15: DB 10h, 024h, 48h, 09h, 00h, 00h, 00h, 0D5h
device16: DB 10h, 057h, 49h, 09h, 00h, 00h, 00h, 0D9h
device17: DB 10h, 050h, 04h, 0B0h,90h, 00h, 00h, 0DFh
END
Comment
-
Nguyên văn bởi thangdt2 Xem bài viếtko có code của C à bạn ơi, mình xem code asm chả hiểu gì cả
Comment
-
Cách giao tiếp với DS1820 có thể tóm tắt và hiểu nôm na như sau:
Việc đo nhiệt độ của DS1820 theo tôi được thực hiện theo từng phiên làm việc và mỗi phiên được ngăn cách với phiên làm việc trước bởi 1 tín hiệu reset và 1 presence pulse. Reset được xem như quá trình ngăn cách và khởi động lại quá trình đo nhiệt độ mới, presence pulse giống như tín hiệu báo hiệu cho 8051 biết là DS1820 đang có mặt và đã sẵn sàng. Ở đây mình thực hiện đo nhiệt độ và hiển thị đơn giản nhất với 1 con DS1820 thôi. Do đó có thể bỏ qua các phần : match ROM, search Rom, alarm search, hay read ROM… (các bạn có thể đọc thêm phần này trong datasheet và thực hiện nhưng với mạch chỉ đo nhiệt độ thôi thì không cần thiết…)
Reset: đặt chân data xuống mức thấp trong khoảng 480-960us (dùng 500us là ok)
Đặt chân data lên mức cao trong khoảng 15-60us
Presence pulse: sau khi cho chân đó lên mức cao tiếp tục chờ 60-240us để bắt tín hiệu mức thấp do DS1820 kéo xuống trong khoảng thời gian trên. Bắt được tín hiệu này tức là DS1820 sẵn sàng.
Skip ROM: skip ROM để khỏi mất thời gian match ROM … vì chỉ có 1 con thôi khi nào xài nhiều con trên 1 đường dây mới cần match, thực hiện bằng cách nhảy tới chương trình con write và ghi mã skip ROM (CCh) vào data line.
Write: clear dataline và delay trong 15us rồi mới đặt bit cần ghi lên và delay 15us nữa, giữa 2 bit cần ghi liên tiếp phải đặt data line lên mức cao trong 1us và tiếp tục ghi bit tiếp theo.
Gửi lệnh read scratchpad và đọc dữ liệu về 2 lần, lần đầu lấy byte thấp (chứa giá trị nhiệt độ lưu lại trong thanh ghi R3 lát nữa xử lý sau) lần sau lấy byte cao(chứa dấu của nhiệt độ nếu chỉ đo trong khoảng 0-125 độ thì không cần đọc byte này), sau đó đọc tiếp 7 lần nữa để địa chỉ đọc trở về ban đầu.
Read: clear data line trong 1us và đọc dữ liệu về trong vòng 15us giữa 2 lần đọc phải cách nhau <1us (lấy 2us là được) rồi lại đọc tiếp.
Convert T: trước khi conv phải reset trước, chờ presence rồi skip ROM, sau đó gửi convert command (44h).
Giờ là lúc xử lý thanh ghi R3 đã lưu giá trị nhiệt độ. Có nhiều cách xử lý các bạn hãy nghiên cứu khung dữ liệu của nó và xử lý theo cách riêng để tách giá trị ra. Sau đó chuyển giá trị thành mã BCD rồi xuất ra led hay LCD tùy ý.
Đó là toàn bộ các bước thực hiện giao tiếp với DS1820. Chúc các bạn thành công.
Comment
-
bác nào làm DS1820 rồi thì xem hộ em doạn code này em sai ở đâu mà không chay!
#include <sfr51.inc>
org 0000H
ljmp main
org 0040H
main:
lcall donhietdo
mov p3,r3
sjmp main
reset:
setb p3.0
mov R1,#4
loop1:mov R2,#40
loop2:
clr p3.0
djnz R2,loop2
djnz R1,loop1
lcall delay60us
;doi presence pulse
lcall delay60us
lcall delay60us
lcall delay60us
lcall delay60us
ret
delay60us:
mov R1,#30
lop:djnz r1,lop
ret
delay15us:
mov R1,#7
lop2:djnz r1,lop2
ret
delay45us:
mov R1,#22
lop3:djnz r1,lop3
ret
ghi1:
setb p3.0
clr p3.0
; ghi 1
lcall delay60us
ret
ghi0:
setb p3.0 ;
mov R1,#20
lop1:
clr p3.0 ; ghi 0
djnz r1,lop1
ret
skiprom:
lcall ghi1
lcall ghi1
lcall ghi0
lcall ghi0
lcall ghi1
lcall ghi1
lcall ghi0
lcall ghi0
ret
convertT:
lcall ghi0
lcall ghi1
lcall ghi0
lcall ghi0
lcall ghi0
lcall ghi1
lcall ghi0
lcall ghi0
ret
readscratchpad:
lcall ghi1
lcall ghi0
lcall ghi1
lcall ghi0
lcall ghi1
lcall ghi1
lcall ghi1
lcall ghi0
ret
readbit:
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g1
clr B.0
sjmp gb1
g1: setb B.0
gb1:
lcall delay45us
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g2
clr B.1
sjmp gb2
g2: setb B.1
gb2:
lcall delay45us
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g3
clr B.2
sjmp gb3
g3: setb B.2
gb3:
lcall delay45us
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g4
clr B.3
sjmp gb4
g4: setb B.3
gb4:
lcall delay45us
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g5
clr B.4
sjmp gb5
g5: setb B.4
gb5:
lcall delay45us
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g6
clr B.5
sjmp gb6
g6: setb B.5
gb6:
lcall delay45us
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g7
clr B.6
sjmp gb7
g7: setb B.6
gb7:
lcall delay45us
setb p3.0
clr p3.0
lcall delay15us
jb p3.0,g8
clr B.7
sjmp gb8
g8: setb B.7
gb8:
lcall delay45us
ret
donhietdo:
lcall reset
aa: jnb p3.0,aa
lcall skiprom
lcall convertT
lcall readbit
lcall reset
bb: jb p3.0,bb
lcall skiprom
lcall readbit
mov r3,B
mov r7,#8
doc8byte:
lcall readbit
djnz r7,doc8byte
lcall reset
aaa: jb p3.0,aaa
ret
end
Comment
-
donhietdo:
lcall reset
aa: jnb p3.0,aa
lcall skiprom
lcall convertT
lcall readbit
lcall reset
bb: jb p3.0,bb
lcall skiprom
lcall readbit
mov r3,B
mov r7,#8
doc8byte:
lcall readbit
djnz r7,doc8byte
lcall reset
aaa: jb p3.0,aaa
ret
sau lệnh mov r3,B em thêm lệnh mov p2,r3 để test xem co dọc dc gì không nhưng chả thấy đọc được cái gì cả!
Comment
-
Nguyên văn bởi vt04 Xem bài viếtCách giao tiếp với DS1820 có thể tóm tắt và hiểu nôm na như sau:
Việc đo nhiệt độ của DS1820 theo tôi được thực hiện theo từng phiên làm việc và mỗi phiên được ngăn cách với phiên làm việc trước bởi 1 tín hiệu reset và 1 presence pulse. Reset được xem như quá trình ngăn cách và khởi động lại quá trình đo nhiệt độ mới, presence pulse giống như tín hiệu báo hiệu cho 8051 biết là DS1820 đang có mặt và đã sẵn sàng. Ở đây mình thực hiện đo nhiệt độ và hiển thị đơn giản nhất với 1 con DS1820 thôi. Do đó có thể bỏ qua các phần : match ROM, search Rom, alarm search, hay read ROM… (các bạn có thể đọc thêm phần này trong datasheet và thực hiện nhưng với mạch chỉ đo nhiệt độ thôi thì không cần thiết…)
Reset: đặt chân data xuống mức thấp trong khoảng 480-960us (dùng 500us là ok)
Đặt chân data lên mức cao trong khoảng 15-60us
Presence pulse: sau khi cho chân đó lên mức cao tiếp tục chờ 60-240us để bắt tín hiệu mức thấp do DS1820 kéo xuống trong khoảng thời gian trên. Bắt được tín hiệu này tức là DS1820 sẵn sàng.
Skip ROM: skip ROM để khỏi mất thời gian match ROM … vì chỉ có 1 con thôi khi nào xài nhiều con trên 1 đường dây mới cần match, thực hiện bằng cách nhảy tới chương trình con write và ghi mã skip ROM (CCh) vào data line.
Write: clear dataline và delay trong 15us rồi mới đặt bit cần ghi lên và delay 15us nữa, giữa 2 bit cần ghi liên tiếp phải đặt data line lên mức cao trong 1us và tiếp tục ghi bit tiếp theo.
Gửi lệnh read scratchpad và đọc dữ liệu về 2 lần, lần đầu lấy byte thấp (chứa giá trị nhiệt độ lưu lại trong thanh ghi R3 lát nữa xử lý sau) lần sau lấy byte cao(chứa dấu của nhiệt độ nếu chỉ đo trong khoảng 0-125 độ thì không cần đọc byte này), sau đó đọc tiếp 7 lần nữa để địa chỉ đọc trở về ban đầu.
Read: clear data line trong 1us và đọc dữ liệu về trong vòng 15us giữa 2 lần đọc phải cách nhau <1us (lấy 2us là được) rồi lại đọc tiếp.
Convert T: trước khi conv phải reset trước, chờ presence rồi skip ROM, sau đó gửi convert command (44h).
Giờ là lúc xử lý thanh ghi R3 đã lưu giá trị nhiệt độ. Có nhiều cách xử lý các bạn hãy nghiên cứu khung dữ liệu của nó và xử lý theo cách riêng để tách giá trị ra. Sau đó chuyển giá trị thành mã BCD rồi xuất ra led hay LCD tùy ý.
Đó là toàn bộ các bước thực hiện giao tiếp với DS1820. Chúc các bạn thành công.Last edited by vodangks; 02-02-2009, 22:15.
Comment
-
Nguyên văn bởi vodangks Xem bài viếtBạn có thể minh họa bằng code asm được ko (dùng 8051), thanks nhiều!!!
Comment
-
Nguyên văn bởi phamthaihoa Xem bài viếtBạn google đi, có rất nhiều sample code giao tiếp one-wire với 8051. Nếu viết bằng PIC dùng C thì tớ có, cái one-wire này chỉ chuối mỗi cái là phải là viết hàm relay thật chuẩn, không đúng timing là chạy bằng vành ngay
Comment
Bài viết mới nhất
Collapse
-
bởi bpsvietnamNguyên lý hoạt động ngưng tụ lạnh của máy hút ẩm
Không khí ẩm sẽ được hút vào trong máy thông qua cửa hút gió, không khí vào trong tiếp tục đi qua giàn lạnh. Tại hệ thống làm lạnh, không khí ẩm sẽ ngưng tụ tạo thành nước. Nước...-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 15:18 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11vg, cám ơn bác...........
-
Channel: Thiết bị điện tử cá nhân
hôm nay, 14:37 -
-
bởi khoine9899
Em chào các anh và mọi người.
Hiện em đang có 1 con bơm màng trong thiết bị y tế đang gặp tình trạng yếu dần hoặc ngừng hoạt động sau thời gian sử dụng
Sau khi tìm hiểu về thông tin của bơm trên mạng thì em được biết...-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 11:22 -
-
Trả lời cho Cần mọi người giúp mạch tạo sóng siêu âm máy rửabởi bqviet
-
Channel: Điện tử công suất
Hôm qua, 20:26 -
-
bởi Minhdai95Em chào mọi người, e đang sửa mạch tạo sóng siêu âm cho máy rửa mà chưa có tài liệu để tham khảo sửa, mọi người cho e xin tài liệu ạ...
-
Channel: Điện tử công suất
Hôm qua, 11:37 -
-
bởi pia2k1Cùng câu hỏi và cần được giải đáp thêm ạ...
-
Channel: Hướng dẫn sử dụng diễn đàn
Hôm qua, 11:28 -
-
Trả lời cho Công thức điện tửbởi mèomướpDạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
-
Channel: Tâm tình dân kỹ thuật
26-11-2024, 21:21 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi mèomướpDạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
-
Channel: Thiết bị điện tử cá nhân
26-11-2024, 20:31 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11Ok , thanks bác đã chỉ...
-
Channel: Thiết bị điện tử cá nhân
26-11-2024, 15:06 -
-
bởi nguyendinhvanSau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !
Chập thì thay. Cháy thì tháo
Làm thì láo. Báo thì hay
May thì khoe. Rủi thì bỏ
Thành tích nhỏ. Báo thành to
Làm cho có. Báo chi li
Sai cả li. Báo...-
Channel: Tâm tình dân kỹ thuật
26-11-2024, 00:35 -
Comment