Picproje Elektronik Sitesi

DERLEYİCİLER => Proton+ => Konuyu başlatan: OG - 07 Şubat 2021, 11:03:14

Başlık: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: OG - 07 Şubat 2021, 11:03:14
Max/Min thermometer using Nokia 3310 LCD, DS1820 sensor and a 12F675
http://protoncompilers.com/index.php/topic,47.0.html
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: ipek - 07 Şubat 2021, 11:23:21
bende 3525 mevcut sanırım bu çok yeni derleyici..

elinde olan hex dosyası bırakırsa sevinirim..arabaya güzel gider..
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: OG - 07 Şubat 2021, 11:32:44
3.7.3.9 ile derledim, eski bir vers.


:10000000000000000000B728A800083023190130C4
:10001000A900A80C200884002208FF3A8005841754
:10002000800522080318800437305E2022088004EF
:10003000A90B09280314AF28083023190130A9009F
:10004000A801200884002208FF3A80058417800553
:100050002208800484130005FF3E231DA80C2319E9
:10006000A80D32305E20A90B232828080314AF28DE
:10007000A300231CAF28200884002208FF3A800533
:10008000841780050130A700F4305F202208800427
:100090000130A700F4305F2883169B0083169C0173
:1000A0001C141A089B0AAF288316F83881050F39EB
:1000B0008104640063000F308104AF28A701E83E8B
:1000C000A600A709FC30031C6828A60703186528AA
:1000D000A6070000A70F652826186E28A61C722800
:1000E000000072280800013EAD000A30A800A901F6
:1000F0007D20AD0B78282A080800AB01AA0110303A
:10010000AC00270DAA0DAB0D2808AA022908031C74
:10011000290FAB02031893282808AA0729080318F7
:10012000290FAB070310A60DA70DAC0B81282608DD
:1001300008001030AE00A701A601AD0CAC0C031CEA
:10014000A7282808A60729080318290FA707A70C1E
:10015000A60CAB0CAA0CAE0B9D282A080800831332
:1001600083120313080030088A002F0882008312CC
:10017000031383169F0183120730990083168501AC
:10018000831285010730990083169F018312EB29A2
:1001900085128510C8013B0D03180514031C0510BA
:1001A0000310BB0D85148510C80A08304802031CD3
:1001B000CB2885160800C70147083F3E8400000889
:1001C000A400AD012408AC00A9011430A8009920B6
:1001D000BD002B08BE00BE08031DF228A0303D0262
:1001E000031CF828A03083120313BD02031CBE03B6
:1001F0004130BB00C820BB01C920C9200230C5075F
:10020000112180304507BB00C8204230BB00C82008
:1002100011210A30C507C70A06304702031CDC2833
:1002200008000130C60047083F3E84000008A400D3
:100230000830240203182B290230A500D330A40073
:1002400024083D07AF0025080318013E3E07B00013
:10025000B320BB002E293D084C20BB00BD0A03196A
:10026000BE0AC920C60A0B304602031C1329080027
:100270003610B31F47293209A4003309A500013005
:100280002407B20025080318013EB3003614330CCE
:10029000A700320CA600A70CA60CA70CA60CA70C56
:1002A000260CB4000F303205B500AD013508AC00A6
:1002B0000230A9007130A8009920B2002B08B300C9
:1002C00064303402031C67290130BF006D290A30F5
:1002D000BF00361C6D290B30BF00A7013408A600F3
:1002E00001307320A4002408C000A7013408A60030
:1002F00000307320A4002408C1000C30C200320872
:10030000A6003308A70003307320A4002408C3000C
:100310000D30C40008004530BB00C820C7014708A5
:100320003F3E84000008A400AD012408AC00A901F0
:100330000530A8009920BD002B08BE00C60103307F
:10034000A5007330A40024083D07AF00250803185A
:10035000013E3E07B000B320BB00BB09C920BD0A67
:100360000319BE0AC60A05304602031C9F29FF3046
:10037000BB00C920C70A06304702031C8F290800AA
:100380000530A0000430A2000130A3003820CC309A
:10039000042044300420063054200530A0000430EE
:1003A000A2000130A3003820CC300420BE3004204D
:1003B0000530A0000430A2000030A3001C20B200D1
:1003C0001C20B3000630A10021080319EA291C20D3
:1003D000A103E429080083160512831205162130B3
:1003E000BB00C820D830BB00C8200630BB00C820E6
:1003F0001330BB00C8202030BB00C8200C30BB002D
:10040000C820C70140304707BB00C8208030BB0070
:10041000C820C601BB01C708031D102A0330BB005A
:1004200004304702031C162AFF30BB00023046028C
:1004300003181C2AFF30BB0052304602031C222A3C
:10044000FF30BB00C920C60A55304602031C0A2AE9
:10045000C70A06304702031C022A4430BB00C820EA
:100460008430BB00C8200B30BF000E30C0000F30FE
:10047000C1001030C2000B30C3001330C4008E2105
:10048000B330BB00C8201130C1001230C2008E2131
:10049000C0213208B7003308B8003208B900330869
:1004A000BA000C30BB008519572A0D30BB00C8209C
:1004B0000301B31B013EB81B013C03190130031DAE
:1004C0000030B10033083802031C6E2A031D6C2A69
:1004D00032083702031C6E2A0301031D0130831208
:1004E0000313B1050319782A3208B7003308B8009E
:1004F0000130B31B0030B100B81B802A0301031D7B
:100500000130B1050319882A3208B7003308B80052
:100510000301B31B013EBA1B013C03190130031D4B
:100520000030B1003A083302031C9E2A031D9C2AA6
:1005300039083202031C9E2A0301031D0130831275
:100540000313B1050319A82A3208B9003308BA0009
:10055000B31BAC2A0301031D0130B1000130BA1BEB
:100560000030B1050319B82A3208B9003308BA00BF
:100570008530BB00C82038210530C500DB20813024
:10058000BB00C8203708B2003808B30038218B21DF
:10059000B030BB00C8203908B2003A08B300382197
:1005A0008B21C021512AF834FC3406340634063439
:1005B0008634C6346634FC34F8343F347F34CC346B
:1005C000C634C334C134C034C0347F343F34003403
:1005D000103418341C34FE34FE340034003400343B
:1005E000003400348034C034C034FF34FF34C034AD
:1005F000C0340034003418341C3406340634063455
:10060000063406340634FC34F834F034F834C83494
:10061000CC34C634C634C334C134C134C0340634D7
:100620000634063406348634C634663436341E3412
:100630000E346034E034C034C034C034C134C33408
:10064000C6347E343C3400348034E03478341E3494
:100650000634FE34FE34003400340E340F340D34CE
:100660000C340C340C34FF34FF340C340C34FC34B4
:10067000FE34863486348634863486348634863432
:1006800006347034F134C134C134C134C134C1349E
:10069000C1347F343F34FC34FE340634063406342F
:1006A000063406340634063404347F34FF34C3344D
:1006B000C334C334C334C334C334FF347E3404344A
:1006C00006340634063406348634C63466343E3482
:1006D0001C34003400340034FE34FF340134003460
:1006E0000034003400343E345134493445343E340F
:1006F000003442347F344034003442346134513465
:10070000493446342134413445344B34313418347F
:10071000143412347F34103427344534453445348E
:1007200039343C344A344934493430340134713436
:1007300009340534033436344934493449343634C1
:1007400006344934493429341E34083408343E34DC
:1007500008340834083408340834083408340034C1
:100760006034603400340034033403347834483463
:1007700048347E340434083404347E3478341434F9
:100780001234143478344234243418342434423447
:10079000003442347E34423400347E34043418341D
:1007A00020347E3400340034003400340034D72B3D
:02400E008C3FE5
:104200007800FC0086008600860086008600860016
:10421000FC0078003E007F00C100C100C100C10069
:10422000C100C1007F003E00FC00FE000600060049
:104230000600060006000600FE00FC004100C30068
:10424000C300C300C300C300C300C300FF007F005E
:104250008000800080008000F800F800800080006E
:104260008000800001000100010001001F001F000C
:10427000010001000100010080008000800080003A
:10428000800080008000800080008000010001002C
:104290000100010001000100010001000100010016
:1042A000000000000000000000000000000000000E
:1042B000000000000000000000006000F000F000BE
:1042C00060000000000000000E00CA00EE00600068
:1042D000600060006000E000C000000000007F009F
:1042E000FF00C000C000C000C000E000600000008F
:00000001FF
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: ipek - 07 Şubat 2021, 13:05:36
simulasyonda DS1822 ile çalışıyor gibi ekran sürekli refresh ediyor,hata raporunda Watchdog timer'i uyumsuz diyor. WDT off olarak tekrar denemek isterim,ilginize teşekkürler..
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: OG - 07 Şubat 2021, 13:08:24
WDT OFF haliyle (editlendi)

:10000000000000000000B728A800083023190130C4
:10001000A900A80C200884002208FF3A8005841754
:10002000800522080318800437305E2022088004EF
:10003000A90B09280314AF28083023190130A9009F
:10004000A801200884002208FF3A80058417800553
:100050002208800484130005FF3E231DA80C2319E9
:10006000A80D32305E20A90B232828080314AF28DE
:10007000A300231CAF28200884002208FF3A800533
:10008000841780050130A700F4305F202208800427
:100090000130A700F4305F2883169B0083169C0173
:1000A0001C141A089B0AAF288316F83881050F39EB
:1000B0008104640063000F308104AF28A701E83E8B
:1000C000A600A709FC30031C6828A60703186528AA
:1000D000A6070000A70F652826186E28A61C722800
:1000E000000072280800013EAD000A30A800A901F6
:1000F0007D20AD0B78282A080800AB01AA0110303A
:10010000AC00270DAA0DAB0D2808AA022908031C74
:10011000290FAB02031893282808AA0729080318F7
:10012000290FAB070310A60DA70DAC0B81282608DD
:1001300008001030AE00A701A601AD0CAC0C031CEA
:10014000A7282808A60729080318290FA707A70C1E
:10015000A60CAB0CAA0CAE0B9D282A080800831332
:1001600083120313080030088A002F0882008312CC
:10017000031383169F0183120730990083168501AC
:10018000831285010730990083169F018312EB29A2
:1001900085128510C8013B0D03180514031C0510BA
:1001A0000310BB0D85148510C80A08304802031CD3
:1001B000CB2885160800C70147083F3E8400000889
:1001C000A400AD012408AC00A9011430A8009920B6
:1001D000BD002B08BE00BE08031DF228A0303D0262
:1001E000031CF828A03083120313BD02031CBE03B6
:1001F0004130BB00C820BB01C920C9200230C5075F
:10020000112180304507BB00C8204230BB00C82008
:1002100011210A30C507C70A06304702031CDC2833
:1002200008000130C60047083F3E84000008A400D3
:100230000830240203182B290230A500D330A40073
:1002400024083D07AF0025080318013E3E07B00013
:10025000B320BB002E293D084C20BB00BD0A03196A
:10026000BE0AC920C60A0B304602031C1329080027
:100270003610B31F47293209A4003309A500013005
:100280002407B20025080318013EB3003614330CCE
:10029000A700320CA600A70CA60CA70CA60CA70C56
:1002A000260CB4000F303205B500AD013508AC00A6
:1002B0000230A9007130A8009920B2002B08B300C9
:1002C00064303402031C67290130BF006D290A30F5
:1002D000BF00361C6D290B30BF00A7013408A600F3
:1002E00001307320A4002408C000A7013408A60030
:1002F00000307320A4002408C1000C30C200320872
:10030000A6003308A70003307320A4002408C3000C
:100310000D30C40008004530BB00C820C7014708A5
:100320003F3E84000008A400AD012408AC00A901F0
:100330000530A8009920BD002B08BE00C60103307F
:10034000A5007330A40024083D07AF00250803185A
:10035000013E3E07B000B320BB00BB09C920BD0A67
:100360000319BE0AC60A05304602031C9F29FF3046
:10037000BB00C920C70A06304702031C8F290800AA
:100380000530A0000430A2000130A3003820CC309A
:10039000042044300420063054200530A0000430EE
:1003A000A2000130A3003820CC300420BE3004204D
:1003B0000530A0000430A2000030A3001C20B200D1
:1003C0001C20B3000630A10021080319EA291C20D3
:1003D000A103E429080083160512831205162130B3
:1003E000BB00C820D830BB00C8200630BB00C820E6
:1003F0001330BB00C8202030BB00C8200C30BB002D
:10040000C820C70140304707BB00C8208030BB0070
:10041000C820C601BB01C708031D102A0330BB005A
:1004200004304702031C162AFF30BB00023046028C
:1004300003181C2AFF30BB0052304602031C222A3C
:10044000FF30BB00C920C60A55304602031C0A2AE9
:10045000C70A06304702031C022A4430BB00C820EA
:100460008430BB00C8200B30BF000E30C0000F30FE
:10047000C1001030C2000B30C3001330C4008E2105
:10048000B330BB00C8201130C1001230C2008E2131
:10049000C0213208B7003308B8003208B900330869
:1004A000BA000C30BB008519572A0D30BB00C8209C
:1004B0000301B31B013EB81B013C03190130031DAE
:1004C0000030B10033083802031C6E2A031D6C2A69
:1004D00032083702031C6E2A0301031D0130831208
:1004E0000313B1050319782A3208B7003308B8009E
:1004F0000130B31B0030B100B81B802A0301031D7B
:100500000130B1050319882A3208B7003308B80052
:100510000301B31B013EBA1B013C03190130031D4B
:100520000030B1003A083302031C9E2A031D9C2AA6
:1005300039083202031C9E2A0301031D0130831275
:100540000313B1050319A82A3208B9003308BA0009
:10055000B31BAC2A0301031D0130B1000130BA1BEB
:100560000030B1050319B82A3208B9003308BA00BF
:100570008530BB00C82038210530C500DB20813024
:10058000BB00C8203708B2003808B30038218B21DF
:10059000B030BB00C8203908B2003A08B300382197
:1005A0008B21C021512AF834FC3406340634063439
:1005B0008634C6346634FC34F8343F347F34CC346B
:1005C000C634C334C134C034C0347F343F34003403
:1005D000103418341C34FE34FE340034003400343B
:1005E000003400348034C034C034FF34FF34C034AD
:1005F000C0340034003418341C3406340634063455
:10060000063406340634FC34F834F034F834C83494
:10061000CC34C634C634C334C134C134C0340634D7
:100620000634063406348634C634663436341E3412
:100630000E346034E034C034C034C034C134C33408
:10064000C6347E343C3400348034E03478341E3494
:100650000634FE34FE34003400340E340F340D34CE
:100660000C340C340C34FF34FF340C340C34FC34B4
:10067000FE34863486348634863486348634863432
:1006800006347034F134C134C134C134C134C1349E
:10069000C1347F343F34FC34FE340634063406342F
:1006A000063406340634063404347F34FF34C3344D
:1006B000C334C334C334C334C334FF347E3404344A
:1006C00006340634063406348634C63466343E3482
:1006D0001C34003400340034FE34FF340134003460
:1006E0000034003400343E345134493445343E340F
:1006F000003442347F344034003442346134513465
:10070000493446342134413445344B34313418347F
:10071000143412347F34103427344534453445348E
:1007200039343C344A344934493430340134713436
:1007300009340534033436344934493449343634C1
:1007400006344934493429341E34083408343E34DC
:1007500008340834083408340834083408340034C1
:100760006034603400340034033403347834483463
:1007700048347E340434083404347E3478341434F9
:100780001234143478344234243418342434423447
:10079000003442347E34423400347E34043418341D
:1007A00020347E3400340034003400340034D72B3D
:02400E00843FED
:104200007800FC0086008600860086008600860016
:10421000FC0078003E007F00C100C100C100C10069
:10422000C100C1007F003E00FC00FE000600060049
:104230000600060006000600FE00FC004100C30068
:10424000C300C300C300C300C300C300FF007F005E
:104250008000800080008000F800F800800080006E
:104260008000800001000100010001001F001F000C
:10427000010001000100010080008000800080003A
:10428000800080008000800080008000010001002C
:104290000100010001000100010001000100010016
:1042A000000000000000000000000000000000000E
:1042B000000000000000000000006000F000F000BE
:1042C00060000000000000000E00CA00EE00600068
:1042D000600060006000E000C000000000007F009F
:1042E000FF00C000C000C000C000E000600000008F
:00000001FF

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2021 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 07.02.2021                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
'****************************************************************
;**** Added by Fuse Configurator ****
; Use the Fuse Configurator plug-in to change these settings

    Device = 12F675

    Config FOSC_INTRCIO, WDTE_OFF, PWRTE_ON, MCLRE_OFF, BOREN_OFF, CP_OFF, CPD_OFF

;**** End of Fuse Configurator Settings ****
'****************************************************************

    Xtal = 4

    'All_Digital = true   ' Set all proc pins to I/O

    TRISIO  = 0
    GPIO    = 0
    CMCON   = 7
    ANSEL   = 0
  
    Symbol SDIN     =     GPIO.0
    Symbol SCK      =     GPIO.1  
    Symbol DQ       =     GPIO.2
    Symbol Mode     =     GPIO.3
    Symbol RST      =     GPIO.4
    Symbol D_C      =     GPIO.5


  
    Symbol RdOffSet  =    5
    Symbol X_Origin  =    %10000000
    Symbol Y_Origin  =    %01000000
    Symbol NormVid   =    %00001100
    Symbol InvVid    =    %00001101
  
    Dim Temperature     As Word
    Dim TempHigh        As  Temperature.HighByte
    Dim TempH           As  Byte
    Dim TempL           As  Byte
    Dim sign            As  Bit
    Dim MaxTemp         As  Word
    Dim MinTemp         As  Word

    Dim LcdReg          As  Byte
    Dim DispLine        As  Byte
    Dim Offset          As  Word
    Dim Char[6]         As  Byte

    Dim CharPtr         As  Byte
    Dim Loop1           As  Byte
    Dim Loop2           As  Byte
    Dim LoopOut         As  Byte
  
    GoTo Main

'****************************************************************

SndLcdCmd:
    D_C = 0
SndLcdData:
    SCK = 0
    LoopOut = 0
    Repeat
        SDIN = LcdReg.7
        LcdReg = LcdReg << 1
        SCK = 1
        SCK = 0
        Inc LoopOut
    Until LoopOut > 7
    D_C = 1
Return

'****************************************************************
DisplayTemp:
  
    Loop2 = 0
    Repeat

        Offset = Char[Loop2] * 20
        If Offset > 159 Then  Offset = Offset - 160

        LcdReg  =  Y_Origin + 1            ' cursor  Y DispLine number(0-5)
        GoSub    SndLcdCmd

        LcdReg = 0
        GoSub  SndLcdData
        GoSub  SndLcdData
        CharPtr = CharPtr + 2
                    
        GoSub PrintChar            
        LcdReg  =  X_Origin + CharPtr
        GoSub    SndLcdCmd
      
        LcdReg  =  Y_Origin + 2            ' cursor  Y DispLine number(0-5)
        GoSub    SndLcdCmd

        GoSub PrintChar
        CharPtr = CharPtr + 10
        Inc Loop2
             
    Until Loop2 > 5

Return
'****************************************************************
PrintChar:      
        Loop1 = 1
        Repeat
            If Char[Loop2] < 8 Then '***** Numbers 0- 7 inclusive ******
                LcdReg = CRead font+Offset
            Else
            '****** Characters 8 - 13 (+,-,.,centigrade) ********
                LcdReg = ERead Offset
            EndIf
            Inc Offset
            GoSub  SndLcdData
            Inc Loop1
        Until Loop1 > 10
Return
'****************************************************************
Temp2Dec:

    sign = 0

    If  TempHigh.7 = 1 Then
        Temperature  =  ~Temperature + 1
        sign = 1
    EndIf

    TempH = Temperature >> 4
    TempL = Temperature.LowByte & $0F
    Temperature = TempL * 625

    If TempH > 99 Then             ' if the temp higher than 99'C , instead of the plus signs " 1 "
        Char[0] = 1                   ' hundreds
    Else
        Char[0] = 10                  ' + plus
        If sign = 1 Then Char[0] = 11
    EndIf

    Char[1] = Dig TempH,1            ' Tens
    Char[2] = Dig TempH,0            ' Units
    Char[3] = 12                     ' Decimal point
    Char[4] = Dig Temperature,3      ' first decimal
    Char[5] = 13                     ' Degrees Centigrade

Return
'****************************************************************
DisplayMaxMin:

    LcdReg  =  Y_Origin + 5            ' cursor  Y DispLine number(0-5)
    GoSub    SndLcdCmd
  
DisplayLabel:
  
    Loop2 = 0
    Repeat
        Offset = Char[Loop2] * 5
        Loop1 = 0
        Repeat
            LcdReg = CRead SmallFont+Offset
            LcdReg = ~LcdReg
            GoSub  SndLcdData
            Inc Offset
            Inc Loop1
        Until Loop1 > 4
        LcdReg = $ff
        GoSub  SndLcdData
        Inc Loop2
    Until Loop2 > 5
Return
'****************************************************************
GetTemp:

    OWrite DQ, 1, [$CC, $44]      ' Start temperature conversion
    Snooze 6
    OWrite DQ, 1, [$CC, $BE]
    ORead DQ, 0, [Temperature.LowByte, Temperature.HighByte, Skip 6]

Return
'****************************************************************
Main:
'****************** GLCD Initialisation ***********************

    High RST

    LcdReg  =  $21 '%00100001       'LCD Extended Commands.
    GoSub    SndLcdCmd
    LcdReg  =  $d8'C0 '%10101001       'Set LCD Vop (Contrast).
    GoSub    SndLcdCmd
    LcdReg  =  $06 '%00000110       'Set Temp coefficent.
    GoSub    SndLcdCmd
    LcdReg  =  $13 '%00010011       'LCD bias mode 1:48.
    GoSub    SndLcdCmd
    LcdReg  =  $20 '%00100000       'LCD Standard Commands, Horizontal addressing mode.
    GoSub    SndLcdCmd
    LcdReg  =  NormVid
    GoSub    SndLcdCmd
   
'********** Draw screen frame. ***********
    Loop2 = 0
    Repeat
        LcdReg  =  Y_Origin + Loop2
        GoSub    SndLcdCmd
        LcdReg  =  X_Origin        ' X pos left
        GoSub    SndLcdCmd
        Loop1 = 0
        Repeat
            LcdReg = $00
            If Loop2 = 0  Then LcdReg = $03
            If Loop2 > 3  Then LcdReg = $FF
            If Loop1 < 2  Then LcdReg = $FF
            If Loop1 > 81 Then LcdReg = $FF
            GoSub   SndLcdData
            Inc Loop1
        Until Loop1 > 84
        Inc Loop2
    Until Loop2 > 5
  
    LcdReg  =  Y_Origin + 4
    GoSub    SndLcdCmd
    LcdReg  =  X_Origin + 4        ' X pos left
    GoSub    SndLcdCmd
  
    Char[0] = 11
    Char[1] = 14
    Char[2] = 15
    Char[3] = 16
    Char[4] = 11
    Char[5] = 19
  
    GoSub DisplayLabel  
  
    LcdReg  =  X_Origin + 51        ' X pos left
    GoSub    SndLcdCmd

    Char[2] = 17
    Char[3] = 18
          
    GoSub DisplayLabel
  
    GoSub GetTemp
    MaxTemp = Temperature
    MinTemp = Temperature
  
 ' *********** Main program Loop1 ***********
    While
  
        LcdReg  =  NormVid                       'LCD in normal mode.
        If Mode = 0 Then LcdReg  = InvVid
        GoSub    SndLcdCmd
      
        If Temperature.15 = MaxTemp.15 And Temperature > MaxTemp Then MaxTemp = Temperature
        If Temperature.15 = 0 And MaxTemp.15 > 0 Then MaxTemp = Temperature

        If Temperature.15 = MinTemp.15 And Temperature < MinTemp Then MinTemp = Temperature
        If Temperature.15 > 0 And MinTemp.15 = 0 Then MinTemp = Temperature
      
        LcdReg  =  X_Origin + RdOffSet  ' cursor  X  (0-83)
        GoSub    SndLcdCmd
        GoSub Temp2Dec
        CharPtr = RdOffSet
        GoSub DisplayTemp
      
        LcdReg  =  X_Origin + 1             ' cursor  X  (0-83)
        GoSub    SndLcdCmd
        Temperature = MaxTemp
        GoSub Temp2Dec
        GoSub DisplayMaxMin

        LcdReg  =  X_Origin + 48       ' cursor  X  (0-83)
        GoSub  SndLcdCmd
        Temperature = MinTemp
        GoSub Temp2Dec
        GoSub DisplayMaxMin
      
        GoSub GetTemp
    Wend
  
'***** Numbers 0-7 inclusive ******
Font:

    CData   $F8,$FC,$06,$06,$06,$86,$C6,$66,$FC,$F8,_   ' 0
            $3F,$7F,$CC,$C6,$C3,$C1,$C0,$C0,$7F,$3F,_
      
            $00,$10,$18,$1C,$FE,$FE,$00,$00,$00,$00,_   ' 1
            $00,$80,$C0,$C0,$FF,$FF,$C0,$C0,$00,$00,_
      
            $18,$1C,$06,$06,$06,$06,$06,$06,$FC,$F8,_   ' 2
            $F0,$F8,$C8,$CC,$C6,$C6,$C3,$C1,$C1,$C0,_
      
            $06,$06,$06,$06,$86,$C6,$66,$36,$1E,$0E,_   ' 3
            $60,$E0,$C0,$C0,$C0,$C1,$C3,$C6,$7E,$3C,_ 

            $00,$80,$E0,$78,$1E,$06,$FE,$FE,$00,$00,_   ' 4
            $0E,$0F,$0D,$0C,$0C,$0C,$FF,$FF,$0C,$0C,_
     
            $FC,$FE,$86,$86,$86,$86,$86,$86,$86,$06,_   ' 5
            $70,$F1,$C1,$C1,$C1,$C1,$C1,$C1,$7F,$3F,_
      
            $FC,$FE,$06,$06,$06,$06,$06,$06,$06,$04,_   ' 6
            $7F,$FF,$C3,$C3,$C3,$C3,$C3,$C3,$FF,$7E,_
      
            $04,$06,$06,$06,$06,$86,$C6,$66,$3E,$1C,_   ' 7
            $00,$00,$00,$FE,$FF,$01,$00,$00,$00,$00
          
          
 '******  Characters 8 - 13 (8,9,+,-,.,Centigrade) ********


    EData   $78,$FC,$86,$86,$86,$86,$86,$86,$FC,$78,_   ' 8
            $3E,$7F,$C1,$C1,$C1,$C1,$C1,$C1,$7F,$3E,_
          
            $FC,$FE,$06,$06,$06,$06,$06,$06,$FE,$FC,_   ' 9
            $41,$C3,$C3,$C3,$C3,$C3,$C3,$C3,$FF,$7F,_
          
            $80,$80,$80,$80,$F8,$F8,$80,$80,$80,$80,_   ' +
            $01,$01,$01,$01,$1F,$1F,$01,$01,$01,$01,_
          
            $80,$80,$80,$80,$80,$80,$80,$80,$80,$80,_   ' -
            $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,_
          
            $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_   ' .
            $00,$00,$00,$60,$F0,$F0,$60,$00,$00,$00,_
          
            $0E,$CA,$EE,$60,$60,$60,$60,$E0,$C0,$00,_   ' Degrees C
            $00,$7F,$FF,$C0,$C0,$C0,$C0,$E0,$60,$00         
          

SmallFont:

    CData   $3E,$51,$49,$45,$3E,_       ' 0
            $00,$42,$7F,$40,$00,_       ' 1
            $42,$61,$51,$49,$46,_       ' 2
            $21,$41,$45,$4B,$31,_       ' 3
            $18,$14,$12,$7F,$10,_       ' 4
            $27,$45,$45,$45,$39,_       ' 5
            $3C,$4A,$49,$49,$30,_       ' 6
            $01,$71,$09,$05,$03,_       ' 7
            $36,$49,$49,$49,$36,_       ' 8
            $06,$49,$49,$29,$1E,_       ' 9
            $08,$08,$3E,$08,$08,_       ' +
            $08,$08,$08,$08,$08,_       ' -
            $00,$60,$60,$00,$00,_       ' .
            $03,$03,$78,$48,$48,_       ' Degrees C
            $7E,$04,$08,$04,$7E,_       ' M char 14
            $78,$14,$12,$14,$78,_       ' A char 15
            $42,$24,$18,$24,$42,_       ' X char 16
            $00,$42,$7E,$42,$00,_       ' I char 17
            $7E,$04,$18,$20,$7E,_       ' N char 18
            $00,$00,$00,$00,$00         ' Space - char 19

 
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: ipek - 07 Şubat 2021, 16:34:03
emeğinize sağlık,wdt kapalı olmasına rağmen ,wdt uyumsuz raporu veriyor,simulasyon azizliğide olabilir,gerçek devrede denemek lazım..
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: OG - 07 Şubat 2021, 16:35:02
simulasyon dosyasını gönerirseniz biz dedeneriz Hocam.
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: ipek - 07 Şubat 2021, 17:03:29
tabiiki yollamaya çalışacağım, picstart ile atayım dedim baktım her iki dosyada Fuse Config'de WDT enable gözüküyor ,yani son yolladığınız dosyada kalkmamış..

https://s2.dosya.tc/server15/rfkisj/12F675_Nokia_Temp.rar.html
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: OG - 07 Şubat 2021, 17:15:31
Afedersin hocam o hata benim, onceki derlediğimi gondermişim, üstteki editlendi.
sim'i deneyeceğim şimdi
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: OG - 07 Şubat 2021, 17:17:22
wdt hatası gitmiş ama 3310 ekranında demo yazıyor
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: OG - 07 Şubat 2021, 17:33:13
(https://i.ibb.co/wBmjXHx/3310.jpg) (https://ibb.co/rFrNSP1)

Bu da ver8 denemesi, v8 de bulunan başka bir 3310 display ile.
rakamları göremedim

dosyalar ekte

edit,
DS1822 kullanmışsın hocam, bakmadım, bilmiyorum DS1820 ile aynı mı.
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: ipek - 07 Şubat 2021, 18:23:03
hocam ilk yayınladığınız versiyon ekranda hoş bir görüntü ile DS1822 ve DS18B20'yle wdt hatası vererek çalışıyor,tabi DS1820 Model dosyası olmadığı için deneyemiyorum,ısı parametrelerini simulasyondan değiştirseniz bile sadece bir kere okuyabiliyor, buda model dosyasından kaynaklanıyor,Görüntüyü negatif hale getirecek Inverse butonuda tepki vermiyor.
edit ederek düzelttiğniz ve enson paylaştığınız dosyalarda ise WTD hata bildirimi kalkmış ,dediğiniz gibi demo yazıp kalıyor,alt kısımda proteus sistem kaynakları raporuna göz attığımda ise %8 görüyorum buda son dosyaların işlemciyi koşturmadığı anlamına geliyor..

edit=yıllar evvel aynı devreninin max min olmayanını simulasyonda son derece düzgün çalıştırabilmiştim,fakat malzemeleri alıp montaj yaptığımda çalışmamıştı,bu nokia display'lar kontrast bilgisini softtware olarak alıyorlar,ve birbirlrinden toleranslı olarak üretilmişler,3 değişik satıcıdan temin ettiğim ekranların sadece biri çalışmıştı,kısaca devre tıkır,tıkır çalışsada ekranı göremiyoruz..tabi bu simulasyonda gözardı edildiği için,görebiliyoruz..
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: Hattusa - 07 Şubat 2021, 19:10:31
https://drive.google.com/file/d/1_ntTGwu2vqrstMhH8nHIX-UrVkNpn4kE/view (https://drive.google.com/file/d/1_ntTGwu2vqrstMhH8nHIX-UrVkNpn4kE/view)

proton 3.7.5.5 en son sürümü bu, ilgilenlere
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: OG - 07 Şubat 2021, 19:20:45
İsis'in DS1822'yi DS1820 komtlarıyla okumadığı kesinleşti, yani sorun orada
(kodu DS1822'ye göre değiştirmek gerek)

şöyle;

programda GetTemp etiketi altında sensör okunuyor
içeriği şöyle;

GetTemp:

    OWrite DQ, 1, [$CC, $44]      ' Start temperature conversion
    Snooze 6
    OWrite DQ, 1, [$CC, $BE]
    ORead DQ, 0, [Temperature.LowByte, Temperature.HighByte, Skip 6]
Return

okuma işlemini kapatalım
birşeyler dönüyor gibi kodu değiştirelim

GetTemp:
    Temperature.LowByte = 30  '' değeri rastgele attım
    Temperature.HighByte = 50 '' değeri rastgele attım
Return

(https://i.ibb.co/5WS1YZm/3310.jpg) (https://ibb.co/mC2Rvpk)


EKRAN INVERT deneyelim

(https://i.ibb.co/4Tn6gwq/3310.jpg) (https://ibb.co/xjtp8Kk)


Bu şekli ile hex (GetTemp etiketindeki değişiklik ile)

:10000000000000000000502883169B0083169C010E
:100010001C141A089B0A4828013EA9000A30A400B3
:10002000A5011620A90B112826080800A701A60182
:100030001030A800230DA60DA70D2408A602250840
:10004000031C250FA70203182C282408A60725083F
:100050000318250FA7070310A20DA30DA80B1A283C
:10006000220808001030AA00A301A201A90CA80CC4
:10007000031C40282408A20725080318250FA307FE
:10008000A30CA20CA70CA60CAA0B36282608080065
:1000900083138312031308002C088A002B088200A4
:1000A0008312031383169F0183120730990083166E
:1000B0008501831285010730990083169F01831201
:1000C0005E2985128510C401370D03180514031C21
:1000D00005100310B70D85148510C40A08304402BA
:1000E000031C642885160800C30143083B3E8400B6
:1000F0000008A000A9012008A800A5011430A40050
:100100003220B9002708BA00BA08031D8B28A03096
:100110003902031C9128A03083120313B902031C77
:10012000BA034130B7006120B7016220622002307B
:10013000C107AA2080304107B70061204230B700D4
:100140006120AA200A30C107C30A06304302031CFB
:10015000752808000130C20043083B3E84000008B7
:10016000A000083020020318C4280230A100463045
:10017000A00020083907AB0021080318013E3A0708
:10018000AC004C20B700C72839080420B700B90AD2
:100190000319BA0A6220C20A0B304202031CAC28BF
:1001A00008003210AF1FE0282E09A0002F09A1007F
:1001B00001302007AE0021080318013EAF003214C1
:1001C0002F0CA3002E0CA200A30CA20CA30CA20CBB
:1001D000A30C220CB0000F302E05B100A90131088C
:1001E000A8000230A5007130A4003220AE0027081C
:1001F000AF0064303002031C00290130BB00062927
:100200000A30BB00321C06290B30BB00A3013008AA
:10021000A20001300C20A0002008BC00A30130087F
:10022000A20000300C20A0002008BD000C30BE0051
:100230002E08A2002F08A30003300C20A0002008E5
:10024000BF000D30C00008004530B7006120C30179
:1002500043083B3E84000008A000A9012008A80034
:10026000A5010530A4003220B9002708BA00C20158
:100270000230A100E630A00020083907AB002108B9
:100280000318013E3A07AC004C20B700B7096220C2
:10029000B90A0319BA0AC20A05304202031C3829F6
:1002A000FF30B7006220C30A06304302031C28292E
:1002B00008001E30AE003230AF0008008316051271
:1002C000831205162130B7006120D830B7006120B5
:1002D0000630B70061201330B70061202030B7002E
:1002E00061200C30B7006120C30140304307B700E4
:1002F00061208030B7006120C201B701C308031D2F
:1003000083290330B70004304302031C8929FF30DE
:10031000B7000230420203188F29FF30B700523075
:100320004202031C9529FF30B7006220C20A5530F3
:100330004202031C7D29C30A06304302031C7529AF
:100340004430B70061208430B70061200B30BB001F
:100350000E30BC000F30BD001030BE000B30BF00AF
:100360001330C0002721B330B70061201130BD0029
:100370001230BE00272159212E08B3002F08B400E7
:100380002E08B5002F08B6000C30B7008519CA2911
:100390000D30B70061200301AF1B013EB41B013CCF
:1003A00003190130031D0030AD002F083402031C77
:1003B000E129031DDF292E083302031CE129030173
:1003C000031D013083120313AD050319EB292E0819
:1003D000B3002F08B4000130AF1B0030AD00B41BD8
:1003E000F3290301031D0130AD050319FB292E0874
:1003F000B3002F08B4000301AF1B013EB61B013C44
:1004000003190130031D0030AD0036082F02031C14
:10041000112A031D0F2A35082E02031C112A03017D
:10042000031D013083120313AD0503191B2A2E0887
:10043000B5002F08B600AF1B1F2A0301031D0130B2
:10044000AD000130B61B0030AD0503192B2A2E0874
:10045000B5002F08B6008530B7006120D1200530E7
:10046000C10074208130B70061203308AE00340829
:10047000AF00D1202421B030B70061203508AE0094
:100480003608AF00D12024215921C429F834FC3486
:100490000634063406348634C6346634FC34F83404
:1004A0003F347F34CC34C634C334C134C034C03458
:1004B0007F343F340034103418341C34FE34FE349E
:1004C000003400340034003400348034C034C0348C
:1004D000FF34FF34C034C0340034003418341C34CA
:1004E000063406340634063406340634FC34F83454
:1004F000F034F834C834CC34C634C634C334C134D0
:10050000C134C03406340634063406348634C63466
:10051000663436341E340E346034E034C034C034B3
:10052000C034C134C334C6347E343C3400348034E7
:10053000E03478341E340634FE34FE3400340034A3
:100540000E340F340D340C340C340C34FF34FF34BF
:100550000C340C34FC34FE348634863486348634D1
:1005600086348634863406347034F134C134C13470
:10057000C134C134C134C1347F343F34FC34FE341F
:10058000063406340634063406340634063404349D
:100590007F34FF34C334C334C334C334C334C334AB
:1005A000FF347E340434063406340634063486348C
:1005B000C63466343E341C34003400340034FE3417
:1005C000FF34013400340034003400343E345134FC
:1005D000493445343E34003442347F3440340034AE
:1005E0004234613451344934463421344134453441
:1005F0004B3431341834143412347F3410342734EB
:1006000045344534453439343C344A34493449342A
:100610003034013471340934053403343634493408
:1006200049344934363406344934493429341E3483
:10063000083408343E3408340834083408340834A4
:100640000834083400346034603400340034033437
:1006500003347834483448347E3404340834043461
:100660007E347834143412341434783442342434DC
:10067000183424344234003442347E34423400345A
:100680007E340434183420347E3400340034003492
:06069000003400344A2B87
:02400E00843FED
:104200007800FC0086008600860086008600860016
:10421000FC0078003E007F00C100C100C100C10069
:10422000C100C1007F003E00FC00FE000600060049
:104230000600060006000600FE00FC004100C30068
:10424000C300C300C300C300C300C300FF007F005E
:104250008000800080008000F800F800800080006E
:104260008000800001000100010001001F001F000C
:10427000010001000100010080008000800080003A
:10428000800080008000800080008000010001002C
:104290000100010001000100010001000100010016
:1042A000000000000000000000000000000000000E
:1042B000000000000000000000006000F000F000BE
:1042C00060000000000000000E00CA00EE00600068
:1042D000600060006000E000C000000000007F009F
:1042E000FF00C000C000C000C000E000600000008F
:00000001FF

- - -

Alıntı Yaphttps://drive.google.com/file/d/1_ntTGwu2vqrstMhH8nHIX-UrVkNpn4kE/view

proton 3.7.5.5 en son sürümü bu, ilgilenlere
12F675 için ücretsizdi sanırım, bu programda denenebilir.
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: OG - 07 Şubat 2021, 19:39:21
WDT on probleminin yaşanma sebebi de
GetTemp etiketi içinde
Snooze komutu varmış

ayrıca isis 7 deki 3310 demo da hep invert gösteriyor (üstteki GetTemp değişikliği)

(https://i.ibb.co/S6sZZq0/3310.jpg) (https://ibb.co/D1Vjj3k)
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: ipek - 07 Şubat 2021, 20:36:46
hocam ilk derlediğiniz dosya 320volt sitesinden bulduğum DS1820 model dosyaları ile kusursuz çalıştı.

invers olarak açıldı ,acaba ben yanlışmı yorumluyorum..
Symbol Mode     =     GPIO.3 buraya bir buton koydum ama işlevsiz,

sizin örneklerde revers etmeyi başarmışsınız,buton yokta yazılımdanmı hallettiniz ?
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: OG - 07 Şubat 2021, 20:50:00
buton programda aktif ve çalışıyor,

ancak,
isis v7 deki 3310 ile simule ederseniz butonu algıladığını görmüyorsunuz ve ekran hep inverse
resimde paylaştığım gibi

isis v8 de ise her şey normal,

yani,
okuma etiketi kapatılmamış olan
wdtoff olarak derlenen hexi DS1820 sensör ile direk kullanabilirsiniz

wdton için ise yalnız snooze komutu engel, pic uykuya geciyor wdt da tekme atıyor,
onu kaldırıp
1152ms gibi delay verilebilir (snooze 6 karşılığı süre)
1152ms riskli derseniz (wdt reset sınırına yakın) 2 ye bölünebilir
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: OG - 07 Şubat 2021, 21:04:54
Buyur hocam her şey tıkır tıkır çalıştı
WDTE_ON
snooze kaldırdım delayms ekledim
reset atmasın diye gerekli yerlere Clrwdt ekledim
enteresan şekilde DS1822 de çalıştı, demek ki komutları DS1820 ile uyumlu imiş


(https://i.ibb.co/6yffRYb/3310.jpg) (https://ibb.co/D1SSD4k)


(https://i.ibb.co/DRxKGCD/3310.jpg) (https://ibb.co/x7p5mjS)


(https://i.ibb.co/rtky0SV/3310.jpg) (https://ibb.co/hMs89jS)




:10000000000000000000BA28A800083023190130C1
:10001000A900A80C200884002208FF3A8005841754
:1000200080052208031880043730612022088004EC
:10003000A90B09280314B228083023190130A9009C
:10004000A801200884002208FF3A80058417800553
:100050002208800484130005FF3E231DA80C2319E9
:10006000A80D32306120A90B232828080314B228D8
:10007000A300231CB228200884002208FF3A800530
:10008000841780050130A700F43062202208800424
:100090000130A700F430622883169B0083169C0170
:1000A0001C141A089B0AB228A901A800FF30A8074F
:1000B000031CA907031CB2280330A700DF3062200D
:1000C0005628A701E83EA600A709FC30031C6B28B0
:1000D000A60703186828A6070000A70F6828261897
:1000E0007128A61C7528000075280800013EAD0087
:1000F0000A30A800A9018020AD0B7B282A0808003F
:10010000AB01AA011030AC00270DAA0DAB0D2808D9
:10011000AA022908031C290FAB02031896282808F5
:10012000AA0729080318290FAB070310A60DA70D6E
:10013000AC0B8428260808001030AE00A701A601E9
:10014000AD0CAC0C031CAA282808A6072908031824
:10015000290FA707A70CA60CAB0CAA0CAE0BA02866
:100160002A080800831383120313080030088A004A
:100170002F0882008312031383169F018312073016
:100180009900831685018312850107309900831633
:100190009F018312012A851264008510C8013B0D5E
:1001A00003180514031C05100310BB0D85148510DE
:1001B000C80A08304802031CCF2885160800C7016A
:1001C000640047083F3E84000008A400AD012408F5
:1001D000AC00A9011430A8009C20BD002B08BE0073
:1001E000BE08031DF728A0303D02031CFD28A030E7
:1001F00083120313BD02031CBE034130BB00CB209E
:10020000BB01CC20CC200230C50716218030450729
:10021000BB00CB204230BB00CB2016210A30C507E3
:10022000C70A06304702031CE02808000130C60058
:10023000640047083F3E84000008A4000830240200
:10024000031831290230A500EC30A40024083D0732
:10025000AF0025080318013E3E07B000B620BB00E2
:1002600034293D084C20BB00BD0A0319BE0ACC202E
:10027000C60A0B304602031C182908006400361019
:10028000B31F4E293209A4003309A5000130240709
:10029000B20025080318013EB3003614330CA70042
:1002A000320CA600A70CA60CA70CA60CA70C260CBB
:1002B000B4000F303205B500AD013508AC00023096
:1002C000A9007130A8009C20B2002B08B300643054
:1002D0003402031C6E290130BF0074290A30BF00AC
:1002E000361C74290B30BF00A7013408A60001306A
:1002F0007620A4002408C000A7013408A60000301E
:100300007620A4002408C1000C30C2003208A600E8
:100310003308A70003307620A4002408C3000D3062
:10032000C400080064004530BB00CB206400C70156
:1003300047083F3E84000008A400AD012408AC003B
:10034000A9010530A8009C20BD002B08BE00C601F5
:1003500064000330A5008C30A40024083D07AF00E2
:1003600025080318013E3E07B000B620BB00BB09BC
:10037000CC20BD0A0319BE0AC60A05304602031C7A
:10038000A829FF30BB00CC20C70A06304702031C57
:100390009829080064000530A0000430A200013054
:1003A000A3003820CC300420443004206400023004
:1003B000A900EE30552064000230A900EE3055202F
:1003C00064000530A0000430A2000130A3003820F2
:1003D000CC300420BE30042064000530A00004307E
:1003E000A2000030A3001C20B2001C20B300063085
:1003F000A10021080319FF291C20A103F929640089
:100400000800640083160512831205162130BB0014
:10041000CB20D830BB00CB200630BB00CB20133024
:10042000BB00CB202030BB00CB200C30BB00CB204E
:10043000C70140304707BB00CB208030BB00CB203A
:10044000C6016400BB01C708031D282A0330BB0096
:1004500004304702031C2E2AFF30BB000230460244
:100460000318342AFF30BB0052304602031C3A2ADC
:10047000FF30BB00CC20C60A55304602031C212A9F
:10048000C70A06304702031C192A4430BB00CB20A0
:100490008430BB00CB200B30BF000E30C0000F30CB
:1004A000C1001030C2000B30C3001330C4009621CD
:1004B000B330BB00CB201130C1001230C2009621F6
:1004C000CA213208B7003308B8003208B90033082F
:1004D000BA0064000C30BB008519702A0D30BB00D7
:1004E000CB200301B31B013EB81B013C03190130B3
:1004F000031D0030B10033083802031C872A031D96
:10050000852A32083702031C872A0301031D0130A4
:1005100083120313B1050319912A3208B700330877
:10052000B8000130B31B0030B100B81B992A030199
:10053000031D0130B1050319A12A3208B7003308A1
:10054000B8000301B31B013EBA1B013C0319013083
:10055000031D0030B1003A083302031CB72A031D03
:10056000B52A39083202031CB72A0301031D0130E2
:1005700083120313B1050319C12A3208B9003308E5
:10058000BA00B31BC52A0301031D0130B1000130BD
:10059000BA1B0030B1050319D12A3208B90033085B
:1005A000BA008530BB00CB203E210530C500DF20DE
:1005B0008130BB00CB203708B2003808B3003E21A1
:1005C0009221B030BB00CB203908B2003A08B3000A
:1005D0003E219221CA21692AF834FC3406340634BB
:1005E00006348634C6346634FC34F8343F347F3401
:1005F000CC34C634C334C134C034C0347F343F3407
:100600000034103418341C34FE34FE34003400340A
:100610000034003400348034C034C034FF34FF343C
:10062000C034C0340034003418341C34063406346A
:100630000634063406340634FC34F834F034F83426
:10064000C834CC34C634C634C334C134C134C034E5
:1006500006340634063406348634C63466343634FA
:100660001E340E346034E034C034C034C034C1347D
:10067000C334C6347E343C3400348034E0347834BF
:100680001E340634FE34FE34003400340E340F348D
:100690000D340C340C340C34FF34FF340C340C3473
:1006A000FC34FE348634863486348634863486348C
:1006B000863406347034F134C134C134C134C134A9
:1006C000C134C1347F343F34FC34FE340634063444
:1006D0000634063406340634063404347F34FF34DA
:1006E000C334C334C334C334C334C334FF347E345B
:1006F000043406340634063406348634C63466348C
:100700003E341C34003400340034FE34FF340134F1
:1007100000340034003400343E345134493445341C
:100720003E34003442347F34403400344234613447
:100730005134493446342134413445344B34313416
:100740001834143412347F3410342734453445348B
:10075000453439343C344A34493449343034013432
:100760007134093405340334363449344934493456
:10077000363406344934493429341E3408340834B4
:100780003E34083408340834083408340834083453
:10079000003460346034003400340334033478347B
:1007A000483448347E340434083404347E34783495
:1007B0001434123414347834423424341834243445
:1007C0004234003442347E34423400347E340434C3
:1007D000183420347E3400340034003400340034C3
:0207E000F02BFC
:02400E008C3FE5
:104200007800FC0086008600860086008600860016
:10421000FC0078003E007F00C100C100C100C10069
:10422000C100C1007F003E00FC00FE000600060049
:104230000600060006000600FE00FC004100C30068
:10424000C300C300C300C300C300C300FF007F005E
:104250008000800080008000F800F800800080006E
:104260008000800001000100010001001F001F000C
:10427000010001000100010080008000800080003A
:10428000800080008000800080008000010001002C
:104290000100010001000100010001000100010016
:1042A000000000000000000000000000000000000E
:1042B000000000000000000000006000F000F000BE
:1042C00060000000000000000E00CA00EE00600068
:1042D000600060006000E000C000000000007F009F
:1042E000FF00C000C000C000C000E000600000008F
:00000001FF


'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2021 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 07.02.2021                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
'****************************************************************
;**** Added by Fuse Configurator ****
; Use the Fuse Configurator plug-in to change these settings

    Device = 12F675

    Config FOSC_INTRCIO, WDTE_ON, PWRTE_ON, MCLRE_OFF, BOREN_OFF, CP_OFF, CPD_OFF

;**** End of Fuse Configurator Settings ****
'****************************************************************

    Xtal = 4

    'All_Digital = true   ' Set all proc pins to I/O

    TRISIO  = 0
    GPIO    = 0
    CMCON   = 7
    ANSEL   = 0
  
    Symbol SDIN     =     GPIO.0
    Symbol SCK      =     GPIO.1  
    Symbol DQ       =     GPIO.2
    Symbol Mode     =     GPIO.3
    Symbol RST      =     GPIO.4
    Symbol D_C      =     GPIO.5


  
    Symbol RdOffSet  =    5
    Symbol X_Origin  =    %10000000
    Symbol Y_Origin  =    %01000000
    Symbol NormVid   =    %00001100
    Symbol InvVid    =    %00001101
  
    Dim Temperature     As Word
    Dim TempHigh        As  Temperature.HighByte
    Dim TempH           As  Byte
    Dim TempL           As  Byte
    Dim sign            As  Bit
    Dim MaxTemp         As  Word
    Dim MinTemp         As  Word

    Dim LcdReg          As  Byte
    Dim DispLine        As  Byte
    Dim Offset          As  Word
    Dim Chars[6]         As  Byte

    Dim CharPtr         As  Byte
    Dim Loop1           As  Byte
    Dim Loop2           As  Byte
    Dim LoopOut         As  Byte
  
    GoTo Main

'****************************************************************

SndLcdCmd:
    D_C = 0
SndLcdData:
    Clrwdt
    SCK = 0
    LoopOut = 0
    Repeat
        SDIN = LcdReg.7
        LcdReg = LcdReg << 1
        SCK = 1
        SCK = 0
        Inc LoopOut
    Until LoopOut > 7
    D_C = 1
Return

'****************************************************************
DisplayTemp:
  
    Loop2 = 0
    Repeat
        Clrwdt

        Offset = Chars[Loop2] * 20
        If Offset > 159 Then  Offset = Offset - 160

        LcdReg  =  Y_Origin + 1            ' cursor  Y DispLine number(0-5)
        GoSub    SndLcdCmd

        LcdReg = 0
        GoSub  SndLcdData
        GoSub  SndLcdData
        CharPtr = CharPtr + 2
                    
        GoSub PrintChar            
        LcdReg  =  X_Origin + CharPtr
        GoSub    SndLcdCmd
      
        LcdReg  =  Y_Origin + 2            ' cursor  Y DispLine number(0-5)
        GoSub    SndLcdCmd

        GoSub PrintChar
        CharPtr = CharPtr + 10
        Inc Loop2
             
    Until Loop2 > 5

Return
'****************************************************************
PrintChar:      
        Loop1 = 1
        Repeat
            Clrwdt
            If Chars[Loop2] < 8 Then '***** Numbers 0- 7 inclusive ******
                LcdReg = CRead font+Offset
            Else
            '****** Characters 8 - 13 (+,-,.,centigrade) ********
                LcdReg = ERead Offset
            EndIf
            Inc Offset
            GoSub  SndLcdData
            Inc Loop1
        Until Loop1 > 10
Return
'****************************************************************
Temp2Dec:
    Clrwdt

    sign = 0

    If  TempHigh.7 = 1 Then
        Temperature  =  ~Temperature + 1
        sign = 1
    EndIf

    TempH = Temperature >> 4
    TempL = Temperature.LowByte & $0F
    Temperature = TempL * 625

    If TempH > 99 Then             ' if the temp higher than 99'C , instead of the plus signs " 1 "
        Chars[0] = 1                   ' hundreds
    Else
        Chars[0] = 10                  ' + plus
        If sign = 1 Then Chars[0] = 11
    EndIf

    Chars[1] = Dig TempH,1            ' Tens
    Chars[2] = Dig TempH,0            ' Units
    Chars[3] = 12                     ' Decimal point
    Chars[4] = Dig Temperature,3      ' first decimal
    Chars[5] = 13                     ' Degrees Centigrade

Return
'****************************************************************
DisplayMaxMin:
    Clrwdt

    LcdReg  =  Y_Origin + 5            ' cursor  Y DispLine number(0-5)
    GoSub    SndLcdCmd
  
DisplayLabel:
    Clrwdt
  
    Loop2 = 0
    Repeat
        Offset = Chars[Loop2] * 5
        Loop1 = 0
        Repeat
            Clrwdt
            LcdReg = CRead SmallFont+Offset
            LcdReg = ~LcdReg
            GoSub  SndLcdData
            Inc Offset
            Inc Loop1
        Until Loop1 > 4
        LcdReg = $ff
        GoSub  SndLcdData
        Inc Loop2
    Until Loop2 > 5
Return
'****************************************************************
GetTemp:
    Clrwdt
    OWrite DQ, 1, [$CC, $44]      ' Start temperature conversion
    Clrwdt
    DelayMS 750
    Clrwdt
    DelayMS 750
    Clrwdt
    OWrite DQ, 1, [$CC, $BE]
    Clrwdt
    ORead DQ, 0, [Temperature.LowByte, Temperature.HighByte, Skip 6]
    Clrwdt
'    Temperature.LowByte = 30
'    Temperature.HighByte = 50
Return
'****************************************************************
Main:
'****************** GLCD Initialisation ***********************
    Clrwdt
    High RST

    LcdReg  =  $21 '%00100001       'LCD Extended Commands.
    GoSub    SndLcdCmd
    LcdReg  =  $d8'C0 '%10101001       'Set LCD Vop (Contrast).
    GoSub    SndLcdCmd
    LcdReg  =  $06 '%00000110       'Set Temp coefficent.
    GoSub    SndLcdCmd
    LcdReg  =  $13 '%00010011       'LCD bias mode 1:48.
    GoSub    SndLcdCmd
    LcdReg  =  $20 '%00100000       'LCD Standard Commands, Horizontal addressing mode.
    GoSub    SndLcdCmd
    LcdReg  =  NormVid
    GoSub    SndLcdCmd
   
'********** Draw screen frame. ***********
    Loop2 = 0
    Repeat
        LcdReg  =  Y_Origin + Loop2
        GoSub    SndLcdCmd
        LcdReg  =  X_Origin        ' X pos left
        GoSub    SndLcdCmd
        Loop1 = 0
        Repeat
            Clrwdt
            LcdReg = $00
            If Loop2 = 0  Then LcdReg = $03
            If Loop2 > 3  Then LcdReg = $FF
            If Loop1 < 2  Then LcdReg = $FF
            If Loop1 > 81 Then LcdReg = $FF
            GoSub   SndLcdData
            Inc Loop1
        Until Loop1 > 84
        Inc Loop2
    Until Loop2 > 5
  
    LcdReg  =  Y_Origin + 4
    GoSub    SndLcdCmd
    LcdReg  =  X_Origin + 4        ' X pos left
    GoSub    SndLcdCmd
  
    Chars[0] = 11
    Chars[1] = 14
    Chars[2] = 15
    Chars[3] = 16
    Chars[4] = 11
    Chars[5] = 19
  
    GoSub DisplayLabel  
  
    LcdReg  =  X_Origin + 51        ' X pos left
    GoSub    SndLcdCmd

    Chars[2] = 17
    Chars[3] = 18
          
    GoSub DisplayLabel
  
    GoSub GetTemp
    MaxTemp = Temperature
    MinTemp = Temperature
  
 ' *********** Main program Loop1 ***********
    While
        Clrwdt
  
        LcdReg  =  NormVid                       'LCD in normal mode.
        If Mode = 0 Then LcdReg  = InvVid
        GoSub    SndLcdCmd
      
        If Temperature.15 = MaxTemp.15 And Temperature > MaxTemp Then MaxTemp = Temperature
        If Temperature.15 = 0 And MaxTemp.15 > 0 Then MaxTemp = Temperature

        If Temperature.15 = MinTemp.15 And Temperature < MinTemp Then MinTemp = Temperature
        If Temperature.15 > 0 And MinTemp.15 = 0 Then MinTemp = Temperature
      
        LcdReg  =  X_Origin + RdOffSet  ' cursor  X  (0-83)
        GoSub    SndLcdCmd
'        Temperature = MaxTemp   ''' eklendi
        GoSub Temp2Dec
        CharPtr = RdOffSet
        GoSub DisplayTemp
      
        LcdReg  =  X_Origin + 1             ' cursor  X  (0-83)
        GoSub    SndLcdCmd
        Temperature = MaxTemp
        GoSub Temp2Dec
        GoSub DisplayMaxMin

        LcdReg  =  X_Origin + 48       ' cursor  X  (0-83)
        GoSub  SndLcdCmd
        Temperature = MinTemp
        GoSub Temp2Dec
        GoSub DisplayMaxMin
      
        GoSub GetTemp
    Wend
  
'***** Numbers 0-7 inclusive ******
Font:

    CData   $F8,$FC,$06,$06,$06,$86,$C6,$66,$FC,$F8,_   ' 0
            $3F,$7F,$CC,$C6,$C3,$C1,$C0,$C0,$7F,$3F,_
      
            $00,$10,$18,$1C,$FE,$FE,$00,$00,$00,$00,_   ' 1
            $00,$80,$C0,$C0,$FF,$FF,$C0,$C0,$00,$00,_
      
            $18,$1C,$06,$06,$06,$06,$06,$06,$FC,$F8,_   ' 2
            $F0,$F8,$C8,$CC,$C6,$C6,$C3,$C1,$C1,$C0,_
      
            $06,$06,$06,$06,$86,$C6,$66,$36,$1E,$0E,_   ' 3
            $60,$E0,$C0,$C0,$C0,$C1,$C3,$C6,$7E,$3C,_ 

            $00,$80,$E0,$78,$1E,$06,$FE,$FE,$00,$00,_   ' 4
            $0E,$0F,$0D,$0C,$0C,$0C,$FF,$FF,$0C,$0C,_
     
            $FC,$FE,$86,$86,$86,$86,$86,$86,$86,$06,_   ' 5
            $70,$F1,$C1,$C1,$C1,$C1,$C1,$C1,$7F,$3F,_
      
            $FC,$FE,$06,$06,$06,$06,$06,$06,$06,$04,_   ' 6
            $7F,$FF,$C3,$C3,$C3,$C3,$C3,$C3,$FF,$7E,_
      
            $04,$06,$06,$06,$06,$86,$C6,$66,$3E,$1C,_   ' 7
            $00,$00,$00,$FE,$FF,$01,$00,$00,$00,$00
          
          
 '******  Characters 8 - 13 (8,9,+,-,.,Centigrade) ********


    EData   $78,$FC,$86,$86,$86,$86,$86,$86,$FC,$78,_   ' 8
            $3E,$7F,$C1,$C1,$C1,$C1,$C1,$C1,$7F,$3E,_
          
            $FC,$FE,$06,$06,$06,$06,$06,$06,$FE,$FC,_   ' 9
            $41,$C3,$C3,$C3,$C3,$C3,$C3,$C3,$FF,$7F,_
          
            $80,$80,$80,$80,$F8,$F8,$80,$80,$80,$80,_   ' +
            $01,$01,$01,$01,$1F,$1F,$01,$01,$01,$01,_
          
            $80,$80,$80,$80,$80,$80,$80,$80,$80,$80,_   ' -
            $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,_
          
            $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_   ' .
            $00,$00,$00,$60,$F0,$F0,$60,$00,$00,$00,_
          
            $0E,$CA,$EE,$60,$60,$60,$60,$E0,$C0,$00,_   ' Degrees C
            $00,$7F,$FF,$C0,$C0,$C0,$C0,$E0,$60,$00         
          

SmallFont:

    CData   $3E,$51,$49,$45,$3E,_       ' 0
            $00,$42,$7F,$40,$00,_       ' 1
            $42,$61,$51,$49,$46,_       ' 2
            $21,$41,$45,$4B,$31,_       ' 3
            $18,$14,$12,$7F,$10,_       ' 4
            $27,$45,$45,$45,$39,_       ' 5
            $3C,$4A,$49,$49,$30,_       ' 6
            $01,$71,$09,$05,$03,_       ' 7
            $36,$49,$49,$49,$36,_       ' 8
            $06,$49,$49,$29,$1E,_       ' 9
            $08,$08,$3E,$08,$08,_       ' +
            $08,$08,$08,$08,$08,_       ' -
            $00,$60,$60,$00,$00,_       ' .
            $03,$03,$78,$48,$48,_       ' Degrees C
            $7E,$04,$08,$04,$7E,_       ' M char 14
            $78,$14,$12,$14,$78,_       ' A char 15
            $42,$24,$18,$24,$42,_       ' X char 16
            $00,$42,$7E,$42,$00,_       ' I char 17
            $7E,$04,$18,$20,$7E,_       ' N char 18
            $00,$00,$00,$00,$00         ' Space - char 19

 
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: ipek - 08 Şubat 2021, 00:12:15
hocam klavye'nize sağlık, yorduk sizi tatil gününüzde..

@ proTR ilginize teşekkür ederim,indirdim derleme yapmadı 12F675 için verilen bonus süresi doldu,parayla almanız gerekiyor mesajı verdi,eski derleyiciye takıldı galiba diye onu kaldırdım,o zaman daha ilginç hale geldi,bir mail adresi verip bizimle irtibata geçin mesajı geldi,

sağolsun OG hocam yıllardır kahrımızı çeker proton krizimizi hep atlatır...
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: OG - 08 Şubat 2021, 00:45:04
Yanlız program algoritmasında eksikler var
bu prg max ve min sıcaklık göstertiği için şöyle bir sorun yaşanıyor

herhalde ilk okumada sensorden veri gelmiyor,
veri gelmediğinde dönen data +85 derece olarak değerleniyor.

bu değer de okunmuş en yüksek değer olduğu için max değeri hep +85 görünüyor

bu basitçe düzeltilir ama 12F675 full'e çok yakın, program ekini almaz
12F685 e geçilirse bu eksiklik rahatlıkla hallolur.
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: ipek - 08 Şubat 2021, 01:47:37
hocam onu bende fark ettim, bu gün ilk derlediğiniz programa Gevv'in sitesinden DS1820 model dosyasını adapte ettim onda hepsi 25 dereceden yani model dosyasının set edilmiş halinden başlıyor,
zamanında ETE hocanın söylevini hatırlıyor gibiyim 750ms okuma için harcanan zaman demişti,onun devreside abuk sabuk okuyordu fakat ilk düzgün okumada yeni değer oturuyordu,bu galiba Eprom'ada bir şeyler yazıyor Debug modunda Eprom'a baktım baya kalabalık.. elimde birkaç DS1822 var eskilerden fakat ben bunları Dallas'ın kendi programlayacısı ile termostat yada Standalone moduna sokmuştum,inşAllah kurtarabilirim..
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: ete - 08 Şubat 2021, 10:05:28
BU tür sensörlerde direk sensör okunmuyor. Sensör okuduğunu scratchpad hafıza denilen yere yazıyor sizde oradan okuyorsunuz sıcaklığı. İlk açılışta sensöre basla satırından önce okuma yaptırmazsanız veya 85 okursan git yeniden oku demezseniz ilk çıkan rakam o hafızanın ilk halidir. DS18B22 data sheet de şöyle diyor, *The power-on reset value of the temperature register is +85°C
Bundan kaçınmanın yolu ana programa geçmeden önce en az bir kere okuma yaptırmak lazım. Bunun için okuma emrini verip 750 ms beklemek işi çözüyor.

Ete
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: OG - 08 Şubat 2021, 14:14:05
Alıntı YapThe power-on reset value of the temperature register is +85°C
Evet hocam, datalara hala bakmadım, gerek de görmedim, 2 okuyuşla düzeliyor.
max konusu böyle basitçe düzeliyor

min konusu nu halletmek gerek, 00.0 yazdırmak yerine --.-  gibi veya başka karakterler
- karekterleri programda hazır
akşam fazla bakamadım.
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: power20 - 08 Şubat 2021, 15:13:10
Projede kullanılan Nokia display piyasada halen bolca bulunan bir ürün müdür?
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: ferit06 - 08 Şubat 2021, 16:48:44
5510 nokia ekran olarak modüller var. 3310 ile aynı.

https://www.robotistan.com/nokia-5110-ekrani-84x48-grafik-lcd
Başlık: Ynt: 12F675 ile 3310 ekran, DS1820 sensor. At binenin.
Gönderen: ferit06 - 08 Şubat 2021, 16:51:12
Alıntı yapılan: Kılıç - 08 Şubat 2021, 15:13:10Projede kullanılan Nokia display piyasada halen bolca bulunan bir ürün müdür?

5510 nokia modüller var 3310 ekran ile aynı.
https://www.robotistan.com/nokia-5110-ekrani-84x48-grafik-lcd