ds1621 i2cwrite ve i2cread

Başlatan kesmez, 21 Nisan 2003, 15:57:57

kesmez

DEFINE  LCD_DREG        PORTD
DEFINE  LCD_DBIT   4        
DEFINE  LCD_RSREG       PORTE
DEFINE  LCD_RSBIT       0
DEFINE  LCD_EREG        PORTE
DEFINE  LCD_EBIT        1
DEFINE   LCD_BITS      4
DEFINE   LCD_LINES      4
DEFINE   LCD_COMMANDUS   2000
DEFINE   LCD_DATAUS   50
DEFINE   I2C_HOLD      1

lo:
   TRISA=255
   ADCON1 = %0000111
   

scl VAR PORTC.3
sda   VAR   PORTC.4

adval var byte
pause 100


gosub getsic
LCDOut $fe,1
pause 5
LCDOut $fe, $80, SDEC adval, "C santigrad"   
Pause 500

GOTO lo
'-------------------------------

'bu rutin ds1621den ısıyı birer derece aralıklarla okuyor.
'tabi daha önceden lcd tanımlama
'larını (define) yapmış
'olmalısınız. Ben 4x16 lcd için yaptım pic16f877
'eğer ds1621 ile irtibat kuramazsa eksik etiketine atlıyor
've malzeme eksik diye yazıyor. (not denenmiştir.=
'-------------------------


getsic:
   I2CWrite sda, scl, $9e,[$ee]
   Pause 1
   I2CWrite sda, scl, $9e,[$22]
   Pause 1
   I2CWrite sda, scl, $9e,[$aa]
   Pause 1
   I2CRead sda, scl, $9f,[adval],eksik
   pause 1
   Return

eksik:
   LCDOut $fe,1             'lcd reset
   Pause 10
   High PORTC.2          'bizere 5 volt
   LCDOut $fe, $c0, "Eksik malzeme.."
   Pause 2000
   Low PORTC.2           'bizer sesini kes
   Clear                      'gerekmeyebilir. (ram ler sıfır)
   GoTo lo
"İnned dine indallahil İslam" (2-19)