12F675 Nokia 3310 LCD büyük hata :)

Başlatan sencer76, 02 Ağustos 2015, 20:49:55

sencer76

Merhaba arkadaşlar gecenin bir saati dikkat etmeden can sıkıntısından 3310 lcd ile termometre yapayım dedim. Arkadaş yapmış devresini aynen bastım hex yükledim ekranda görünen şeyler belli :) sonra yazıyı okuyunca en başta 3310 ekranı değil diye uyarıyı gördüm. Bu devre şimdi çöpmü oldu yoksa ufak bi yazılımla kurtarabilirmiyiz? varsa hazırda olan arkadaşlar yollayabilirmi ? pic12F675

Est32 Arkadaşın paylaşımından yapılmıştır.

est32

Arkadaşım merhaba,
Forumu çoğu zaman off-line da olsa takip ederim. Ancak konuyu açtığın tarih şirketin İFA fuarı hazırlıkları zamanına denk geldiği için iş yoğunluğundan olsa gerek bu konu gözümden kaçmış ve tam da şimdi tesadüfen birşey ararken denk geldim. Kusura bakma çok geç kaldığım için. keşke konu açmadan önce bana mesaj atsaydın. 3310 LCD kullanan yoktur diye konuyu güncellemeye gerek görmemiştim.
Devren çöp olmadı, elimde o sırada farklı bir ekran vardı ve programı ona göre yapmıştım. Sonra o ekran yerine 3310 ekranı buldum ve yazılımı güncelledim. Umarım devreyi atmamışsındır, sana kısa süre içerisinde yeni yazılımı vereceğim.
aşağıdaki resim 3310 ekranlıdır. Küçük piller 2-3 ay ancak dayandığı için kalem pil ile yaptım ve bildim bileli daha pilleri değiştirmedim.

askin

Mümkünse projenin tamamını paylaşabilirmisiniz bir ara bende yapmayı düşünüyorum.

est32

Merhaba,
3310 LCD ye göre yenilenmiş yazılım ve tüm dosyalar ektedir, pil tasarrufu için ölçüm her 5 dakikada bir kez yapılır;
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [ESAT METİN ERDOĞAN]                              *
'*  Notice  : Copyright (c) 2013 [İZİNSİZ KULLANMAK HARAMDIR]   *
'*          : All Rights Reserved                               *
'*  Date    : 08.12.2013                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
Device = 12F675
@ CONFIG_REQ
@ __config MCLRE_OFF & CP_OFF & WDT_ON & INTRC_OSC_NOCLKOUT & CPD_OFF & BODEN_OFF & PWRTE_ON
Xtal=4
'OSCCAL=48
OPTION_REG=%11001111
CMCON=7
ANSEL=0

Symbol SCLK=GPIO.1
Symbol SDIN=GPIO.0
Symbol RST=GPIO.5
Symbol D_C=GPIO.4
Symbol DS=GPIO.2
TRISIO=0
GPIO=0

Dim I As Byte,ARA As Byte,DIG_1 As Byte,DIG_0 As Byte,KSR As Byte
Dim LCDDATA As Byte,POSX As Byte,POSY As Byte,SATIR As Byte,SUTUN As Byte
Dim MESGUL As Byte,HAM As Word,ISI As Word,KSRT As Word

Clrwdt
DelayMS 500
Clrwdt
GoSub DS_OKU
GoSub LCD_AC
GoSub LCD_SIL
Clrwdt
'************************************************************************************************
BASLA:
Clear
GoSub DS_OKU
Clrwdt
GoSub LCD_SIL


        ARA=ISI Dig 1:DIG_1=1:DIG_0=0:GoSub SEC
        ARA=ISI Dig 0:DIG_1=0:DIG_0=1:GoSub SEC
        ARA=KSRT:KSR=1:GoSub SEC
       
        POSX=54:POSY=5'NOKTA AYARLAMALARI
        For I=1 To 4
        GoSub LCD_XY_VER:D_C=1
        LCDDATA=63
        GoSub LCD_YAZ'NOKTA
        POSX=POSX+1
        Next
       
        GPIO=%00100100
        Sleep 300' 5 DK UYU

GoTo BASLA
'***********************************************************************************************
SEC:
        Select ARA
                Case 1:GoSub BIR
                Case 2:GoSub IKI
                Case 3:GoSub UC
                Case 4:GoSub DORT
                Case 5:GoSub BES
                Case 6:GoSub ALTI
                Case 7:GoSub YEDI
                Case 8:GoSub SEKIZ
                Case 9:GoSub DOKUZ
                Case 0:GoSub SIFIR
        End Select
Return               
'***********************************************************************************************
BIR:
                GoSub SOR
                SUTUN=SUTUN+8
        SATIR=0:GoSub YOLLA
        SATIR=1:GoSub YOLLA
        SATIR=2:GoSub YOLLA
        SATIR=3:GoSub YOLLA
        SATIR=4:GoSub YOLLA
                                   
Return
'***********************************************************************************************
IKI:
                GoSub SOR
        SATIR=0:GoSub TEKRAR_8
        SATIR=1:GoSub YOLLA
                GoSub SOR
        SATIR=2:GoSub TEKRAR_8
                GoSub SOR
        SATIR=3:GoSub YOLLA
                GoSub SOR
        SATIR=4:GoSub TEKRAR_8
           
Return
'***********************************************************************************************
UC:
                GoSub SOR
        SATIR=0:GoSub TEKRAR_8
        SATIR=1:GoSub YOLLA
                GoSub SOR
        SATIR=2:GoSub TEKRAR_8
        SATIR=3:GoSub YOLLA
                GoSub SOR
        SATIR=4:GoSub TEKRAR_8
               
Return
'***********************************************************************************************
DORT:
                GoSub SOR
        SATIR=0:GoSub TEKRAR_16
                GoSub SOR
        SATIR=1:GoSub TEKRAR_16
                GoSub SOR
        SATIR=2:GoSub TEKRAR_8
        SATIR=3:GoSub YOLLA
        SATIR=4:GoSub YOLLA
       
Return
'***********************************************************************************************
BES:
                GoSub SOR
        SATIR=0:GoSub TEKRAR_8
                GoSub SOR
        SATIR=1:GoSub YOLLA
                GoSub SOR
        SATIR=2:GoSub TEKRAR_8
        SATIR=3:GoSub YOLLA
                GoSub SOR
        SATIR=4:GoSub TEKRAR_8

Return
'***********************************************************************************************
ALTI:
                GoSub SOR
        SATIR=0:GoSub TEKRAR_8
                GoSub SOR
        SATIR=1:GoSub YOLLA
                GoSub SOR
        SATIR=2:GoSub TEKRAR_8
                GoSub SOR
        SATIR=3:GoSub TEKRAR_16
                GoSub SOR
        SATIR=4:GoSub TEKRAR_8

Return
'***********************************************************************************************
YEDI:
                GoSub SOR
        SATIR=0:GoSub TEKRAR_8
        SATIR=1:GoSub YOLLA
        SATIR=2:GoSub YOLLA
        SATIR=3:GoSub YOLLA
        SATIR=4:GoSub YOLLA
       
Return
'***********************************************************************************************
SEKIZ:
                GoSub SOR
        SATIR=0:GoSub TEKRAR_8
                GoSub SOR
        SATIR=1:GoSub TEKRAR_16
                GoSub SOR
        SATIR=2:GoSub TEKRAR_8
                GoSub SOR
        SATIR=3:GoSub TEKRAR_16
                GoSub SOR
        SATIR=4:GoSub TEKRAR_8
               
Return
'***********************************************************************************************
DOKUZ:
                GoSub SOR
        SATIR=0:GoSub TEKRAR_8
                GoSub SOR
        SATIR=1:GoSub TEKRAR_16
                GoSub SOR
        SATIR=2:GoSub TEKRAR_8
        SATIR=3:GoSub YOLLA
                GoSub SOR
        SATIR=4:GoSub TEKRAR_8

Return
'***********************************************************************************************
SIFIR:
                GoSub SOR
        SATIR=0:GoSub TEKRAR_8
                GoSub SOR
        SATIR=1:GoSub TEKRAR_16
                GoSub SOR
        SATIR=2:GoSub TEKRAR_16
                GoSub SOR
        SATIR=3:GoSub TEKRAR_16
                GoSub SOR
        SATIR=4:GoSub TEKRAR_8
               
Return
'***********************************************************************************************
TEKRAR_8:
        GoSub YOLLA:SUTUN=SUTUN+8:GoSub YOLLA:SUTUN=SUTUN+8:GoSub YOLLA
Return
'***********************************************************************************************
TEKRAR_16:
        GoSub YOLLA:SUTUN=SUTUN+16:GoSub YOLLA
Return
'***********************************************************************************************
SOR:
        SUTUN=0
        If DIG_0=1 Then SUTUN=SUTUN+28
        If KSR=1 Then SUTUN=SUTUN+32     
Return
'***********************************************************************************************
DS_OKU:
        OWrite   DS, 1, [$CC, $44]
        DelayMS 750
OYALAN:
        ORead    DS, 4, [MESGUL]
        If MESGUL = 0 Then OYALAN
        OWrite   DS, 1, [$CC, $BE]
        ORead    DS, 2, [HAM.LowByte, HAM.HighByte]

        ISI=HAM/16           
        KSRT=ISI*16
        KSRT=((HAM-KSRT)*10)/16
        Return
'***********************************************************************************************
YOLLA:
        POSX=SUTUN:POSY=SATIR:GoSub LCD_XY_VER:D_C=1
        SHOut SDIN,SCLK,1,[255,255,255,255,255,255,255,255]
        Return
'***********************************************************************************************
LCD_YAZ:
        SHOut SDIN,SCLK,1,[LCDDATA]
        Return
'************************************************************************************************
LCD_SIL:
        POSX=0:POSY=0:GoSub LCD_XY_VER
        D_C=1
        For I=1 To 252'EKRANINIZ 96*64 İSE BURAYI 500 YAP//84*48 İSE 252
        LCDDATA=0:GoSub LCD_YAZ '1. yarı siliniyor
        LCDDATA=0:GoSub LCD_YAZ '2. yarı siliniyor   
        Next
        Return
'************************************************************************************************
LCD_XY_VER:
        D_C=0
        LCDDATA=%01000000 | POSY
        GoSub LCD_YAZ
        LCDDATA=%10000000 | POSX
        GoSub LCD_YAZ
        D_C=1
        Return
'************************************************************************************************
LCD_AC:
        RST=0
        DelayMS 10 
        RST=1 
        D_C=0  ' RESET LCD   
        LCDDATA= $21: GoSub LCD_YAZ        ' LCD EXTENDED COMMANDS
        LCDDATA= $b0: GoSub LCD_YAZ        ' SET LCD Vop (CONTRAST)
        LCDDATA= $06: GoSub LCD_YAZ        ' SET TEMP COEFFICENT
        LCDDATA= %00010101: GoSub LCD_YAZ  ' LCD BIAS MODE
        LCDDATA= $20: GoSub LCD_YAZ        ' LCD STANDARD COMMANDS
        LCDDATA= $0c: GoSub LCD_YAZ        ' LCD IN NORMAL MODE
        Return
'************************************************************************************************
End     

F®T

Hocam ellerinize sağlık güzel bir çalışma olmuş.Fakat 5 dk bir ölçüm olayı pil tasarrufuna nasıl etki ediyor onu anlayamadım.Sürekli ölçüm yapınca pili çokmu harcıyor?
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

est32

#5
teşekkür ederim,
evet, çok sık ölçüm yapıldığında fazla enerji tüketiliyor. Bu şebekeden beslenen bir cihaz için neredeyse hiç birşey ama pilli bir cihazda her saniye 2mA fazla bir tüketim olurdu. Bu nedenle ve bir odanın ısı değişimi her saniye değişmeyeceğinden 5 dakikada bir ölçüm yaptım.
DS18B20 akım ölçümünü yapmışım ve her ısı ölçümü sırasında yaklaşık 2mA akım çektiğine(3v beslemede) şahit olmuşum. Ekran çalışırken ve pic uykuda iken çekilen akım  400 mikro amper ölçmüşüm. Yani işlemci her 5 dakikada bir uyanıyor, ısı ölçümünü alıp ekrana veriyor ve tekrar uyuyor. Ana konu aşağıdaki linkte;
http://etepic.com/index.php/topic,1427.msg14830.html#msg14830

F®T

Okudum hocam güzel çalışma.Elinize sağlık.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

sencer76

Emeğine sağlık est32 hocam en kısa zamanda deneyip sonuçları paylaşırım. Selamlar....

umitco

Konuyla alakalı olduğu için sormak istiyorum , 3310 ışıklandırmasını nasıl çalıştırıyoruz ? (varsa tabi)

Powered by EzPortal