Max/Min thermometer using Nokia 3310 LCD, DS1820 sensor and a 12F675
http://protoncompilers.com/index.php/topic,47.0.html
bende 3525 mevcut sanırım bu çok yeni derleyici..
elinde olan hex dosyası bırakırsa sevinirim..arabaya güzel gider..
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
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..
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
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..
simulasyon dosyasını gönerirseniz biz dedeneriz Hocam.
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
Afedersin hocam o hata benim, onceki derlediğimi gondermişim, üstteki editlendi.
sim'i deneyeceğim şimdi
wdt hatası gitmiş ama 3310 ekranında demo yazıyor
(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ı.
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..
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
İ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ımbirş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.
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)
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 ?
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
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
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...
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.
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..
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
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.
Projede kullanılan Nokia display piyasada halen bolca bulunan bir ürün müdür?
5510 nokia ekran olarak modüller var. 3310 ile aynı.
https://www.robotistan.com/nokia-5110-ekrani-84x48-grafik-lcd
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