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 Đấ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
Hôm qua, 17:17 -
-
Trả lời cho Xin hỏi về mạch thu FM/AM trong catsettebởi nguyendinhvanTheo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
-
Channel: Điện thanh
05-12-2025, 19:59 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi afrendlyCó vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
-
Channel: Thiết bị điện tử cá nhân
04-12-2025, 01:27 -
-
Trả lời cho Máy điện châm ?bởi nick22Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
-
Channel: Điện tử y sinh
01-12-2025, 13:23 -
-
Trả lời cho Làm thế nào để check IC LM358bởi thetungĐể check IC sống hay chết thì đơn giản : bạn lắp cái mạch ( khuếch đại hoặc dao động ) chạy bằng con IC đó ,nhưng vị trí IC thì lắp cái đế .... thế là cứ cắm rút thì biết . Còn không thì kiếm cái này : https://shopee.vn/Xu-M%C3%A1y-ki%E1%...di-%C4%91%E1%B...
-
Channel: Hướng dẫn tìm thông tin linh kiện
28-11-2025, 14:34 -
-
bởi ngochung90Tình hình là em có mua mạch 3s về để hàn vào khối pin 12v, hàn xong em đo tại các chân từ B-, B1, B2, B+ thì điện áp pin vẫn đủ 12,6v, nhưng tại 2 chân ra P- P+ thì đo chỉ được 6,3v là bị sao các bác, và chân P- P + này đồng thời là chân sạc xả thì mình cắm sạc xả cùng lúc được ko ạ
...-
Channel: Điện tử dành cho người mới bắt đầu
28-11-2025, 10:32 -

Comment