DS18B20 ID okuma

Başlatan MC_Skywalker, 15 Haziran 2009, 21:28:10

MC_Skywalker

4x20 paralel LCD ve 16F877A kullanarak DS10B20 nin ROM kodunu okuyup LCD de gösterme. tek hat üstünde  birden fazla sensör kullanmak için ROM kodunu bilmek gerekiyor. bu kod sanırım iButton okumak içinde kullanılıyor

Renton un sitesinde ki kodları paralel LCD için uyarlayıp kullanmıştım. Proteus dosyasını kaydetmemişim. kodlar aşağıda.

'****************************************************************
'*  Name    : DS18B20id.pbp                                     *
'****************************************************************
@ DEVICE pic16F877A 'islemci 16F877A
@ DEVICE pic16F877A, WDT_OFF 'Watch Dog timer kapali
@ DEVICE pic16F877A, PWRT_ON 'Power on timer acik
@ DEVICE pic16F877A, PROTECT_OFF 'Kod koruma kapali
'***********LCD Tanımlamaları*************************************************** 
DEFINE LCD_DREG     PORTB 
DEFINE LCD_DBIT         4 
DEFINE LCD_EREG     PORTB 
DEFINE LCD_EBIT         1 
DEFINE LCD_RWREG    PORTB 
DEFINE LCD_RWBIT        2 
DEFINE LCD_RSREG    PORTB 
DEFINE LCD_RSBIT        3 
DEFINE LCD_BITS         4 
DEFINE LCD_LINES        2        

CMCON=7                      'CCP iptal hepsi giriş çıkış
OPTION_REG.7=0
TrisA=0 
TrisB=0 
PortA=0 
PortB=0    
DEFINE  OSC 4           ' 4 MHz oscillator
DQ      VAR PortA.0	    ' io pini "DS18B202nin "DQ" ucu" 
ID      VAR BYTE[8]     ' 64-bit ROM kodu

Basla:
    PAUSE 500           ' 0.5 saniye
'***********LCD yi Kullanıma Hazır Hale Getir***********************************
LOW PORTB.2 'RW bacağı ekrana yazmaya imkan vermek için LOW yapıldı. 
lcdout $FE,1 
PAUSE 200   ' LCD nin kullanıma hazır hale gelebilmesi için gerekli süre 
lcdout $FE,1  
    
cevrim
    OWOUT DQ, 1, [$33]  'ROM komutu

dongu:
    OWIN DQ, 0, [STR ID\8] '64-bit ROM bilgis 8-byte veri dizisi ile "ID"
    lcdout $FE,$80,"Aile Kodu = ",HEX2 ID[0],"h"
    lcdout $FE,$C0,HEX2 ID[1],HEX2 ID[2],HEX2 ID[3],HEX2 ID[4],HEX2 ID[5],HEX2 ID[6],"h"
    lcdout $FE,$94,"Ceksum = ",HEX2 ID[7],"h"

ID_Device:
    IF ID[0] = $5 THEN
        lcdout $FE,$D4, "Donanim = Sivic     "
    ENDIF
    IF (ID[0] = $28) OR (ID[0] = $22) THEN
       lcdout $FE,$D4, "Donanim = ISI Sensoru"
    ENDIF
   IF ID[0] = $01 THEN
       lcdout $FE,$D4, "Donanim = Seri No#   "
    ENDIF
   PAUSE 10000        
    GOTO cevrim 
    
    END

ipek

http://rapidshare.com/files/245122914/4xds.rar.html

Çalışmadı displey tamam ds'yi okumuyor yada ben çalıştıramadım...

ds 'yi edit ile oto id al'da dedim fayda yok.

MC_Skywalker

kontrol edip problemi çözmeye çalışacağım.

MC_Skywalker

Hata yapmışım bazı yerlerde kodu 8bit LCD olacak şekilde düzenledim. Proteus ta 00 okuduğu için tip görül müyor.



''****************************************************************
'*  Name    : DS18B20id.pbp                                     *
'****************************************************************
@ DEVICE pic16F877A 'islemci 16F877A
@ DEVICE pic16F877A, WDT_OFF 'Watch Dog timer kapali
@ DEVICE pic16F877A, PWRT_ON 'Power on timer acik
@ DEVICE pic16F877A, PROTECT_OFF 'Kod koruma kapali
'***********LCD Tanımlamaları***************************************************
DEFINE LCD_DREG     PORTB
DEFINE LCD_DBIT         0
DEFINE LCD_EREG     PORTC
DEFINE LCD_EBIT         1
DEFINE LCD_RWREG    PORTC
DEFINE LCD_RWBIT        2
DEFINE LCD_RSREG    PORTC
DEFINE LCD_RSBIT        3
DEFINE LCD_BITS         8
DEFINE LCD_LINES        4       

CMCON=7                      'CCP iptal hepsi giriş çıkış
OPTION_REG.7=0
TrisA=%0000001 
TrisB=0
TrisC=0
PortA=0
PortB=0
PortC=0   
DEFINE  OSC 4           ' 4 MHz oscillator
DQ      VAR PortA.0       ' io pini "DS18B202nin "DQ" ucu"
ID      VAR BYTE[8]     ' 64-bit ROM kodu

Basla:
    PAUSE 500           ' 0.5 saniye
'***********LCD yi Kullanıma Hazır Hale Getir***********************************
LOW PORTB.2 'RW bacağı ekrana yazmaya imkan vermek için LOW yapıldı.
lcdout $FE,1
PAUSE 200   ' LCD nin kullanıma hazır hale gelebilmesi için gerekli süre
lcdout $FE,1 
   
cevrim
    OWOUT DQ, 1, [$33]  'ROM komutu

dongu:
    OWIN DQ, 0, [STR ID\8] '64-bit ROM bilgis 8-byte veri dizisi ile "ID"
    lcdout $FE,$80,"Aile Kodu = ",HEX2 ID[0],"h"
    lcdout $FE,$C0,HEX2 ID[1],HEX2 ID[2],HEX2 ID[3],HEX2 ID[4],HEX2 ID[5],HEX2 ID[6],"h"
    lcdout $FE,$94,"Ceksum = ",HEX2 ID[7],"h"

ID_Device:
    IF ID[0] = $5 THEN
        lcdout $FE,$D4, "Donanim = Sivic     "
    ENDIF
    IF (ID[0] = $28) OR (ID[0] = $22) THEN
       lcdout $FE,$D4, "Donanim = ISI Sensoru"
    ENDIF
   IF ID[0] = $01 THEN
       lcdout $FE,$D4, "Donanim = Seri No#   "
    ENDIF
   PAUSE 10000       
    GOTO cevrim
   
    END


http://rapidshare.com/files/245149270/DS18B20id.rar.html

Buda HEX


:10000000B201F5280408A70087108711071183168D
:10001000871087110711860183122708B2182B2831
:100020003A30A100FC30D3203330A6003E201030FF
:10003000A1006830D3203E206430D2203E203830EA
:100040002A200C302A2001302A2006302A20B2141F
:1000500027082B283214A600321C39288711033CAC
:10006000031C3E283E200530A100DC30D3200314C1
:1000700008003214FE3C0319F0288715871426085F
:100080008600321087102C30D2200314080008306C
:1000900033190130A300A201360884003408BF20C0
:1000A00034088004F420542884130005FF3E331DD7
:1000B000A20C3319A20D3230D220A30B4E282208F5
:1000C0000314F028A200083033190130A300A20C59
:1000D000360884003408BF20340803188004373001
:1000E000D22034088004A30B67280314F028B31C23
:1000F000F0287D28B300331CF0283608840034082B
:10010000BF200130A100E030D3203408800401304A
:10011000A100E030D328A40029080319F028EB201F
:10012000A00025188317240884002008800083136A
:10013000A40AA9038C28B31329080319B3170430A0
:10014000A800250EA8202508A820240EA8202408F1
:100150000F39F63E0318073E0A3EAE28A000A8035A
:100160000319B31329080319B82828020318080033
:100170002008031DB313B31B0800303EEB28FF3AE1
:100180008005C22884178005F028A301A200FF3053
:10019000A207031CA307031CF0280330A100DF30D3
:1001A000D320C728A101E83EA000A109FC30031C10
:1001B000DC28A0070318D928A0076400A10FD928BC
:1001C0002018E228A01CE6280000E6280800040405
:1001D000031DFF30F028840031088A0030088200B7
:1001E00083130313831264000800831607309C00F6
:1001F0008113013085008601870183128501860104
:1002000087010130A300F4308A01C620061183164D
:100210000611FE3083128A01032001308A01032077
:10022000C8308A01C520FE308A01032001308A01CE
:1002300003200530B6000130B40001308A017A2075
:1002400033308A0162208A0177200530B600013000
:10025000B40000308A017A200830A9004730B0008D
:10026000B101A50138308A018B208A017720FE3048
:100270008A01032080308A01032041308A01032053
:1002800069308A0103206C308A01032065308A01BD
:10029000032020308A0103204B308A0103206F3075
:1002A0008A01032064308A01032075308A0103200B
:1002B00020308A0103203D308A01032020308A014A
:1002C00003200230A9003808A400A5010230B000C4
:1002D000B1018A019B2068308A010320FE308A0127
:1002E0000320C0308A0103200230A9003908A4008D
:1002F000A5010230B000B1018A019B200230A900A3
:100300003A08A400A5010230B000B1018A019B2087
:100310000230A9003B08A400A5010230B000B101E1
:100320008A019B200230A9003C08A400A5010230EC
:10033000B000B1018A019B200230A9003D08A40051
:10034000A5010230B000B1018A019B200230A90052
:100350003E08A400A5010230B000B1018A019B2033
:1003600068308A010320FE308A01032094308A011C
:10037000032043308A01032065308A0103206B305B
:100380008A01032073308A01032075308A0103201B
:100390006D308A01032020308A0103203D308A011C
:1003A000032020308A0103200230A9003F08A40066
:1003B000A5010230B000B1018A019B2068308A019A
:1003C000032064003808053C8A110A12031D2A2AFA
:1003D000FE308A010320D4308A01032044308A0190
:1003E00003206F308A0103206E308A0103206130C0
:1003F0008A0103206E308A01032069308A010320BC
:100400006D308A01032020308A0103203D308A01AB
:10041000032020308A01032053308A0103206930F1
:100420008A01032076308A01032069308A01032083
:1004300063308A01032020308A01032020308A01A2
:10044000032020308A01032020308A01032020303D
:100450008A0103203808283C031DFF30FF3AC00002
:100460003808223C031DFF30FF3AC20040088400D8
:1004700042088A01E720C200C30064004208430426
:100480008A110A120319892AFE308A010320D43006
:100490008A01032044308A0103206F308A0103203F
:1004A0006E308A01032061308A0103206E308A0198
:1004B000032069308A0103206D308A010320203037
:1004C0008A0103203D308A01032020308A01032065
:1004D00049308A01032053308A01032049308A01C0
:1004E000032020308A01032053308A010320653025
:1004F0008A0103206E308A01032073308A010320B1
:100500006F308A01032072308A01032075308A011E
:10051000032064003808013C8A110A12031DD52A01
:10052000FE308A010320D4308A01032044308A013E
:1005300003206F308A0103206E308A01032061306E
:100540008A0103206E308A01032069308A0103206A
:100550006D308A01032020308A0103203D308A015A
:10056000032020308A01032053308A0103206530A4
:100570008A01032072308A01032069308A01032036
:1005800020308A0103204E308A0103206F308A0117
:10059000032023308A01032020308A0103202030E9
:1005A0008A01032020308A0103202730A300103065
:0E05B0008A01C6208A01192963008A01DC2A0B
:02400E00713F00
:00000001FF