?? 一款高精度測(cè)溫電路設(shè)計(jì)程序.txt
字號(hào):
18B20的復(fù)位時(shí)序及子程序:
init_1820:
clr dq1820
mov r7,#40
acall Delay15us ;(1)復(fù)位:低電平至少480 us,用15*40=600us可靠
setb dq1820 ;(2)釋放,為了在15-60 us后接收存在脈沖
mov r7,#1
acall Delay15us;20us
mov r2,#90 ;(3);最多等待(1+2)*90=270us
wait:
mov c,dq1820
jnc wait1
djnz r2,wait ;(4)在15-60 us后回發(fā)芯片一個(gè)存在脈沖,為了可靠,我們采用等到回發(fā)脈沖后在做下一步工作,存在脈沖是一個(gè)60-240us的低電平信號(hào)
wait1:
mov DS18b20Status,c
mov r7,#40
acall Delay15us;15*40=600 us ;(5)得到存在脈沖并且穩(wěn)定至少480 us,用600 us
setb dq1820
ret
5、數(shù)據(jù)處理子程序
TempToLedBuf:
mov a,tempH
jb acc.7,negtiv ;(1)tempH中的最高位若是1,說明是負(fù)數(shù),為0,是正數(shù)
;----------------------------------------------
;正數(shù)的處理過程
;------------------------------------------------
mov templ4,templ ;(2)templ中的低4位是小數(shù)部分
mov a,templ
swap a
anl a,#0fh
mov templ,a
mov a,temph
swap a
anl a,#0f0h
orl a,templ ;(3)取temph中的低4位和templ中的高4位合一起,是溫度的整數(shù)部分
mov b,#10
div ab ;(4)16進(jìn)制的整數(shù)除10即變?yōu)?0進(jìn)制,用于顯示
mov Ledbuf1,b ;(5)顯示個(gè)位
mov b,#10
div ab
mov Ledbuf2,b ;(6)顯示十位
mov Ledbuf3,a ;(7)顯示百位
;-------------------------------------------------------------------------
;正數(shù)小數(shù)部分的處理過程
;-------------------------------------------------------------------------
mov a,templ4
anl a,#0fh ;(8)屏蔽高4位
mov b,#10
mul ab
mov b,#16
div ab ;(9)16進(jìn)制的小數(shù)部分除16,也就是乘以0.0625便是用于顯示的溫度值
mov templ4,a
jnb b.3,dy5 ;(10)4舍5入嗎?
inc templ4 ;(11)5入
dy5:
mov Ledbuf0,templ4
ret
;------------------------------------------
;負(fù)數(shù)的處理過程
;-----------------------------------------
negtiv:
mov a,temph
cpl a
mov temph,a
mov a,templ
cpl a
add a,#1 ;(1)取補(bǔ)加1,得到小數(shù)點(diǎn)部分的真值
mov templ,a
mov a,temph
addc a,#0
mov templ4,templ
mov a,templ ;(2)以下的處理同正數(shù)的處理
swap a
anl a,#0fh
mov templ,a
mov a,temph
swap a
anl a,#0f0h
orl a,templ
mov b,#10
div ab
mov Ledbuf1,b
mov b,#10
div ab
mov Ledbuf2,b
mov Ledbuf3,#10 ;(3)顯示負(fù)號(hào) —
mov a,templ4
anl a,#0fh
mov b,#10
mul ab
mov b,#16
div ab
mov templ4,a
jnb b.3,dy5_ ; (4)4舍5入
inc templ4
dy5_:
mov Ledbuf0,templ4
ret
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -