em đang làm đề tài dùng cảm biến ds18b20 đo niệt độ hiẻn thị ra lcd,em làm xong rồi nhưng không biết sao chỉ đọc được nhiệt độ là 85,trong datasheet thì đây là nhiệt độ mặc định trong lần đọc đầu tiên,có ai giúp em với
Thông báo
Collapse
No announcement yet.
Sử dụng DS18B20 đo nhiệt độ
Collapse
X
-
Vậy có nghĩa là chưa đọc được bạn dùng chíp gì bạn hỏi mà không up code lên mọi người xem cho thì biết được sai chỗ nào.
Đây là chương trình mình làm bằng chíp 89 và hiển thị thông tin nhiệt độ lên máy tính + LCD
DS18S20.rarPhone No: 0989.437.312
Email:
Live in: Ha noi
-
em dùng chíp 89C52,hj phần đọc nhiệt độ em đã sửa được rồi anh ạ hj,em viết bằng ASM,do lúc đầu em để Tconvert có 200ms nên không được(trong mô phỏng thì được nhưng mạch thật thì tịt,trong datasheet của nó em cũng thấy 750ms cơ,hjx em thấy nhiều khi mô phỏng ảo thật),vì em dùng độ phân giải tận 12bit mà,Tconvert của nó tận 750ms,nó chưa convert xong em đã reset nên vận chỉ đọc được giá trị ban đầu,em đổi lại lên 800ms(thừa tí cho chắc hj) thì chạy ngon hj,giờ em đang làm phần giao tiếp máy tính,cũng dùng VB,,em cũng dùng max 232,em thấy trong datasheet có cỏng NOT giữa hai đầu,một số bài mô phỏng,như của anh có mắc qua một cổng NOT nữa,nhưng em hỏi một số đàn anh ở trường họ nói không cần,vậy trong phần mềm mình phải cho đảo lại dữ kiệu phải không anh hj,em đang chuẩn bị làm mạch thật mà hj(thử mạch thật cho thích hj) anh góp ý em với
Comment
-
hj em làm thử một bài truyền nhận thế này anh à,nhưng truyền nhận không đúng hj,anh xem em với(hj em chưa bít cách đính kèm file nên em gửi code thôi hj anh chỉ em cách gửi kèm file với ạ)
Code 89C52:
SEND EQU 50H ;BYTE TRUYEN
RECV EQU 51H ;BYTE NHAN
RS BIT P1.2 ;BIT GUI LENH HOAC DU LIEU
R_W BIT P1.1 ;BIT DOC HOAC GHI
E BIT P1.0 ;BIT CHO PHEP LCD
F_BUSY BIT P0.7 ;CO KIEM TRA LCD BAN
;=========================
ORG 0000H
LJMP MAIN
ORG 0023H
LJMP NHAN
;=========================
INIT_SERIAL: ;KHOI TAO TRUYEN THONG
MOV TMOD,#20H ;CHON TIMER 1 AUTORELOAD
MOV TH1,#(-3) ;TOC DO BAUD = 9600
MOV TL1,TH1
MOV SCON,#52H ;CHON CHE DO TRUYEN THONG 8 BIT DATA,1 BIT STOP,CHO PHEP NHAN DU LIEU
SETB EA ;CHO PHEP CAC NGAT
SETB IE.4 ;CHO PHEP NGAT TRUYEN THONG
SETB TR1 ;CHO PHEP TIMER 1
RET
;=========================
ORG 100
MAIN:
; MOV P1,#0FFH
LCALL INIT_SERIAL
LCALL INIT_LCD1
CLR TI
CLR RI
AGAIN: JB P1.7,AGAIN ;BAM NUT THI TRUYEN
; MOV A,#41H ;TRUYEN KI TU "A"
MOV A,#"A"
MOV SBUF,A
LAP: JNB TI,LAP ;CHO TRUYEN XONG KI TU
CLR TI ;XONG ROI THI XOA CO BAO TRUYEN
LOOP1: JNB P1.7,LOOP1 ;KIEM TRA NHA NUT BAM
LJMP AGAIN
;========================
NHAN:
JB TI,TRANS
CLR RI
MOV A,SBUF
LCALL DATA_DP
RETI
TRANS:
CLR TI
RETI
;========================================
BUSY: ;KIEM TRA CO BAN LCD
SETB F_BUSY
SETB R_W
CLR RS
LOOP:
CLR E
SETB E
JB F_BUSY,LOOP
RET
;========================================
COMMEND: ;GUI LENH DEN LCD
LCALL BUSY
MOV P0,A
CLR RS
CLR R_W
SETB E
CLR E
RET
;=======================================
DATA_DP: ;GUI DU LIEU HIEN THI LCD
LCALL BUSY
MOV P0,A
SETB RS
CLR R_W
SETB E
CLR E
RET
;======================================
INIT_LCD1: ;KHOI TAO LCD
MOV A,#38H
LCALL COMMEND
MOV A,#0EH
LCALL COMMEND
RET
;======================================
;========================
END
và code VB:
Dim TransBuf, RecvBuf As String
Dim TransByte, RecvByte As Byte
Dim t As Integer
Dim bien As Variant 'khai bao bien kieu Variant
Private Sub Command1_Click()
TransBuf = Text1.Text
MSComm1.Output = Trim(TransBuf)
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
If (MSComm1.PortOpen = False) Then
MSComm1.CommPort = 2
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
MSComm1.InputMode = comInputModeText
MSComm1.PortOpen = True
End If
End Sub
Private Sub MSComm1_OnComm()
RecvBuf = Trim(MSComm1.Input)
Text1.Text = RecvBuf
End Sub
Comment
-
Thạch anh bạn sử dụng là bao nhiêu M thường truyền thông thì người ta sử dụng thạch anh 11.0592. nếu là thạch anh 11.0592 thì giá trị của TH1 và TL1 là #F9H và bạn viết là MOV TL1,#LOW(-7). tốc độ Baud mà không đúng thì sẽ nhận sai ký tự.
Bạn post code lên cũng được nhưng bạn để vào viết như thế này "[Code]code của bạn viết ở đây["/Code]". nhớ bỏ 2 ngoặc kép đi nhé vì nếu mình không cho ngoặc kép vào thì nó sẽ ra kết quả.
Code:Kết quả là như này
Last edited by loveelectron; 11-04-2012, 23:11.Phone No: 0989.437.312
Email:
Live in: Ha noi
Comment
-
À anh ơi,em sử dụng DS18B20,nhưng em đọc 64 bit ROM xong em lưu lại,rồi em sửa lại trong code cho gửi theo code sau lệnh MATCH ROM hj,chứ em không biết dùng lệnh SEARCH ROM anh à,trong datasheet nó nói là lệnh SEARCH ROM biết được cả số con DS và cả mã ROM của từng con sau một chu trình dò tìm,hj em không hiểu chu trình này thực hiện kiểu gì,hjx anh chỉ em với,hj hiện giờ em đang dùng 2 con 89C52 hj,một con chuyên để đoc mã ROM hehe,đọc xong em ghi lại từng con một,rồi sửa trong code cho con 89 kia đọc nhiệt độ hj
Comment
-
Chính xác là dùng thạch anh 11.0592 và TH1=#0FDH. Mình test lại rồi Ok đó. tặng cho bạn phần mềm này.
Calc 8051.rarPhone No: 0989.437.312
Email:
Live in: Ha noi
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Hỏi về bơm màng bldcbởi nhathung1101Thì đây là 4r điên nặng điện mà, nên họ show phần điện thôi. Phần "cốt lõi" có cái tay biên chắc sang Văn Môn rồi....
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 18:54 -
-
Trả lời cho Chọn dây dẫn cho điện DC?bởi nhathung1101Điện DC đương nhiên là khác với AC rồi. Chỉ cần biết mặt chữ là thấy khác như gà trống với gà mái mà.
Còn về bản chất, AC là dòng điện hoạt động theo tần số. Tần số càng cao thì dây dẫn càng mỏng, nhẹ, vì hiệu ứng...-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 18:46 -
-
Trả lời cho Công thức điện tửbởi nhathung1101Ăn ít => Nói nhiều.
Nói nhiều => Làm ít.
Làm ít => Vợ mắng.
Vợ mắng => Cáu nhiều.
Cáu nhiều => Ngủ ít.
Ngủ ít => Râu nhiều.
Râu nhiều =>...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 18:39 -
-
Trả lời cho Chọn dây dẫn cho điện DC?bởi mèomướpDạ vài chục mét thì chú tính như vậy được ạ. Chứ chuẩn thì phải tính cả điện trở của toàn bộ chiều dài dây dẫn nhân với dòng điện xem sụt áp có trong khoảng chấp nhận đc hông ạ. Trong mạch điện tử khoảng cách ngắn và mạch...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 14:49 -
-
bởi vietroadTheo mình biết thì chọn dây dẫn dựa vào dòng tải. Thường thì tiết diện 1mm2 cho dòng 6A. Nhưng trong các mạch điện tử, như mạch nguồn tổ ong chẳng hạn, dòng đến vài chục Ampe mà đường mạch mỏng dính. Phải chăng điện DC nó khác với...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 14:19 -
-
Trả lời cho Hỏi về bơm màng bldcbởi vi van phamPhải xem cơ cấu bơm, chứ xem cơ cấu rotor, thì chỉ làm thầy bói xem voi.
-
Channel: Điện tử dành cho người mới bắt đầu
29-11-2024, 08:19 -
-
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
28-11-2024, 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
28-11-2024, 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
27-11-2024, 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
27-11-2024, 11:37 -
Comment