下載手機汽配人

溫度傳感器DS18B20

用AVR怎么讀和寫? 最好有示例的程序
提問者:網(wǎng)友 2018-08-27
最佳回答
正好我以前寫過DS18B20的程序,現(xiàn)在共享給你。 我的單片機頻率是8M,如果你的頻率不同,請自己計算后把延時參數(shù)修改一下就可以了。 DS1820溫度傳感器單線總線讀時間片 read: push r24 in r24,SREG push r24 ldi r22,$FF clr r23 out PORTB,r22 ;升高單線總線 out DDRB,r22 ;B口為輸出口 out PORTB,r23 ;拉低單線總線 ldi r24,$05 read1: dec r24 brne read1 ;延遲10個時鐘周期(大約1.25微秒) out DDRB,r23 ;B口為輸入口 ldi r24,$30 read2: dec r24 brne read2 ;延遲96個時鐘周期(大約12微秒) in r21,PINB ;讀單線總線 ldi r24,$C8 read3: dec r24 brne read3 ;延遲400個時鐘周期(大約50微秒) pop r24 out SREG,r24 pop r24 ret DS1820溫度傳感器單線總線寫0時間片 write0: push r24 in r24,SREG push r24 ldi r22,$FF clr r23 out PORTB,r22 ;升高單線總線 out DDRB,r22 ;B口為輸出口 out PORTB,r23 ;拉低單線總線 clr r24 wr0j1: dec r24 dec r24 nop nop brne wr0j1 ;延遲640個時鐘周期(大約80微秒) out PORTB,r22 ;升高單線總線 ldi r24,$07 wr0j2: dec r24 brne wr0j2 ;延遲14個時鐘周期(大約1.75微秒) out DDRB,r23 ;B口為輸入口 pop r24 out SREG,r24 pop r24 ret DS1820溫度傳感器單線總線寫1時間片 write1: push r24 in r24,SREG push r24 ldi r22,$FF clr r23 out PORTB,r22 ;升高單線總線 out DDRB,r22 ;B口為輸出口 out PORTB,r23 ;拉低單線總線 ldi r24,$07 wr1j1: dec r24 brne wr1j1 ;延遲14個時鐘周期(大約1.75微秒) out PORTB,r22 ;升高
回答者:網(wǎng)友
產(chǎn)品精選
在移動端查看: 溫度傳感器DS18B20
搜索問答
還沒有汽配人賬號?立即注冊

我要提問

汽配限時折扣

本頁是網(wǎng)友提供的關(guān)于“溫度傳感器DS18B20”的解答,僅供您參考,汽配人網(wǎng)不保證該解答的準確性。