You are on page 1of 3

dq bit p2.

gnd bit p2.6


dem equ r2
;@@@@@@@@@@@@@@@@@@@@@
org 0000h
jmp CHUONG_TRINH_CHINH
write_time_slot:
clr dq
nop
nop
mov dq, c
mov r5, #30
lcall delay
setb dq
nop
nop
ret
read_time_slot:
clr dq
nop
nop
setb dq
nop
nop
nop
nop
nop
nop
nop
nop
mov c, dq
mov r5,#50
lcall delay
ret
reset_ds1820:
clr dq
mov r5,#255
lcall delay
setb dq
mov r5,#255
lcall delay
ret
write_byte:
mov dem,#8
write_lai:
rrc a
lcall write_time_slot
djnz dem, write_lai
setb dq
mov r5,#50
lcall delay
ret
read_byte:
mov dem,#8
read_lai:
lcall read_time_slot
rrc a
djnz dem, read_lai
mov r5,#50
lcall delay
ret
delay:
djnz r5,$
ret
delay_long:
mov r6,#0ffh
delay_lai:
lcall delay
djnz r6, delay_lai
ret
CHUONG_TRINH_CHINH:
setb dq
clr gnd
again:
l call reset_ds1820
mov a,#0cch ; SKIP ROM (CCh) nhập thẳng đến các lệnh bộ nhớ của DS1820
lcall write_byte
mov a,#44h ; CONVERT T khởi động một quá trình đo và chuyển đổi giá trị nhiệt độ
lcall write_byte
lcall reset_ds1820
mov a,#0cch ; SKIP ROM (CCh) nhập thẳng đến các lệnh bộ nhớ của DS1820
lcall write_byte
mov a,#0beh ; READ SCRATCHPAD cho phép thiết bị chủ đọc nội dung bộ nhớ nháp
lcall write_byte
lcall read_byte
mov p0,a
lcall reset_ds1820
lcall delay_long
j mp again
end

You might also like