全球旧事资料 分类
的数据
btColum

列数加一


延时16us子函数voidDelay16us
u
sig
edchara
fora0a4a
延时60us子函数voidDelay60us
u
sig
edchara
fora0a18a
延时480us子函数voidDelay480us
u
sig
edchara
fora0a158a
延时240us子函数voidDelay240us
u
sig
edchara
fora0a78a
延时500ms子函数
fvoidDelay500ms
u
sig
edcharabc
fora0a250aforb0b3bforc0c220c
芯片初始化voidI
itializatio
while1
DQ0Delay480usDQ1Delay60usifDQ
DQ1Delay240usbreak
延时480us延时60us收到ds18b20的应答信号
延时240us
写一个字节从低位开始写voidWriteByteu
sig
edcharbtData
u
sig
edcharibtBuffer
fori0i8i
btBufferbtDataiifbtBuffer1
DQ0_
op__
op_DQ1Delay60uselse
fDQ0Delay60usDQ1
读一个字节从低位开始读u
sig
edcharReadByte
u
sig
edcharibtDest
fori0i8i
btDest1DQ0_
op__
op_DQ1Delay16usifDQbtDest0x80Delay60us
retur
btDest
序列号匹配voidMatchROMco
stu
sig
edcharpMatchData
u
sig
edchari
I
itializatio
WriteByteMATCH_ROMfori0i8iWriteBytepMatchDatai
得到64位ROM序列在P1口显示必须与Proteus联调且在单步调试下才能得到voidGetROMSeque
ce
u
sig
edchari
I
itializatio

fWriteByteREAD_ROMfori0i8iP1ReadByte
读取温度值TEMPDATAReadTemperature
TEMPDATATempDatau
sig
edi
tiTempDataHu
sig
edcharbtDotiTempDataLstaticu
sig
edchari0
TempDatabtNegative0iifi9i1I
itializatio
WriteByteSKIP_ROMWriteByteTEMP_SWITCHDelay500msDelay500msI
itializatio

为0温度为正
跳过ROM匹配启动转换调用一次就行
多个芯片的时候用MatchROMROMData换掉WriteByteSKIP_ROM
switchi

case1MatchROMROMData1break
匹配1
case2MatchROMROMData2break
匹配2
case3MatchROMROMData3break
匹配3
case4MatchROMROMData4break
匹配4
case5MatchROMROMData5break
匹配5
case6MatchROMROMData6break
匹配6
case7MatchROMROMData7break
匹配7
case8MatchROMROMData8break
匹配8

WriteByteSKIP_ROM
跳过ROM匹配单个芯片时用
这句换掉上面的switch
WriteByteREAD_MEMORY
读数据
iTempDataLReadByte
iTempDataHReadByte
iTempDataH8
iTempDataHiTempDataL
ifiTempDataH0x8000
fTempDatabtNegative1iTempDataHiTempDataH1

负数求补
为了省去浮点运算带来的开销,而采用整数和小数部分分开处理的方法没r
好听全球资料 返回顶部