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