Problēma ar DS1620 - temperatūra uz LCD

U

user0123

Guest
Mana 68HC11 projekts ir pabeigts, bet, kad rāda temperatūru uz LCD tas vienmēr rāda 28,5 ° C, vai BCD - 00111001.Es nezinu, kāpēc.Es izlasīju kodu pāris reizes, lai pārliecinātos, ka man nebija darīt kaut ko nepareizi.Var kāds man palīdzēt.

Šis kods Es iedzēru no šejienes: http://www.emicros.com/ds1620.htm un grozīt tā maz, jo tas rāda 0 oC temperatūrā

Tas ir fragmenti kodu:RSTTEMP equ% 00100000
I_O equ% 00001000
SCLK equ% 00010000
ReadTemperature:
ldx # REGBLK
bset DDRD, x% 00111000
bclr PortD, x SCLK
bset PortD, x RSTTEMP
ldaa # $ AA

ldab # 8
ZS:
bclr PortD, x I_O
lsra
Bcc NS
bset PortD, x I_O
NS:
bset PortD, x SCLK
nop
nop
nop
bclr PortD, x SCLK
decb
BNE ZS

CLR TempLSB
CLR TempMSB
bclr DDRD, x I_O
ldab # 8
JJ:
nop
nop
nop
bset PortD, x SCLK
CLC
brclr PortD, x I_O HJ
sek
HJ:
ROR TempLSB
bclr PortD, x SCLK
decb
BNE JJ

bset PortD, x SCLK
brclr PortD, x I_O AD
ldaa # 1
staa TempMSB

AD:
bclr PortD, x SCLK
bset DDRD, x I_O
bclr PortD, x RSTTEMP
ldab TempLSB
RTS
BCD2STR:
psha
Anda # $ 0F
oraa # $ 30
staa 1, x
Pula
asra
asra
asra
asra
Anda # $ 0F
oraa # $ 30
staa 0, x
RTS
ldaa Str2 1
cmpa LastSecond
beq NoNewTemp
staa LastSecond
JSR ReadTemperature
lsrb
Bcc Set00
ldaa # 5 "
bra Set05
Set00:
ldaa # 0 "
Set05:
staa Str2 12

clra
TBA
ldx # Str2 9
JSR BCD2STR
clrb
ldab TempMSB
cmpb # $ 1
BNE NoNewTemp
ldaa # '-'
staa Str2 8

 
Man šo kodu inicializācijas:

ldx # REGBLK
bset DDRD, x% 00111000
bclr PortD, x SCLK
bset PortD, x RSTTEMP
ldaa # $ EE

ldab # 8
ZS1:
bclr PortD, x I_O
lsra
Bcc NS1
bset PortD, x I_O
NS:
bset PortD, x SCLK
nop
nop
nop
bclr PortD, x SCLK
decb
BNE ZS1Kad es izdarījusi es sāku saņemt dažādus rādījumus, piemēram, 3 = 2> un tā tālāk.

Tāpēc man šis kods konversijas no BCD līdz grādiem, norādot uz LCD:

clra
ldx # 10
idiv
Orab # $ 30
stab str2 10
xgdx
ldx # 10
idiv
Orab # $ 30
stab str2 9Kad man tā es sāku saņemt no 40oC līdz 65-70oC, bet bez preču zīmēm vai nezināmiem simboliem.

Es esmu pārsteigts par šo lasīšanu, jo ierīce temperatūra kopumam ir ne vairāk kā 25-27oC, pat vēsāks.

Vai pastāv konversijas kļūdu kodu?
Vai kāds man pateikt, labāka metode?

 

Welcome to EDABoard.com

Sponsor

Back
Top