atm 128x64 glcd ekran kayması

Başlatan kaybolanruh, 12 Ekim 2012, 16:38:38

kaybolanruh

merhabalar

atm 128x64 glcd ile otomatik kademeli voltmetre programı yazdım ama proteusta sorunsuz bir şekilde çalışıyorken yapmış olduğum devrede ekranın sağ tarafı ile sol tarafı durmadan aşağı yukarı yapıyor

yazmış olduğum kod aşağıdadır

' Read channel 0 of on-board ADC and display the results
          
          Device 18F452
          
        XTAL = 20
        TRISB=%00010000
        TRISA=%00000110
        TRISC=%00000000
        PORTD=0
        PORTE.0=0
        LCD_DTPORT = PORTD
      LCD_RSPIN = PORTC.7
      LCD_ENPIN = PORTE.0 
       LCD_INTERFACE  8
        LCD_CS1PIN = PORTE.1
      LCD_CS2PIN = PORTE.2
      LCD_COMMANDUS 1000
       LCD_TYPE = GRAPHIC
      INTERNAL_FONT = On
      FONT_ADDR = 0
        GLCD_EXTERNAL_PRINT = PPRINT
        Dim PP7HH As Byte SYSTEM
    Dim PP7HHH As Byte SYSTEM
    GLCD_EXTERNAL_PRINT = PPRINT

    ALL_DIGITAL = True
      WARNINGS = OFF       
      OPTIMISER_LEVEL = 20
       Declare GLCD_STROBE_DELAY 1000
        Declare GLCD_CS_INVERT On
        Declare STAMP_COMPATIBLE_SIN = On
         Declare REMINDERS = On







           
           ADIN_RES   10               ' Set the resolution to 10
        ADIN_TAD   FRC               ' Choose the RC osc for ADC samples
          ADIN_STIME   100                 ' Allow 100us for charge time
        Dim kont As Byte
        Dim adval       As Word         
      Dim oto       As Bit
          Dim Volt       As Word
          Dim voltt    As Word   
          Dim kay As Word
          Dim xpos As Word
          Dim ypos As Word
          Dim adrs  As Word
          Dim oku As Word
          Dim dijit As Byte
          adrs=3000
          oto=1
          kont=0
          kay=64
          ypos=0
          
          Cls
          DelayMS 1000
       

        Print Font ArialK____12
        Print At 16 , 0 , "Welcome"
        DelayMS 1000
        Cls
              ' Wait for PICmicro to stabilise
        Print Font ArialK____12
        Print At 8 , 0 , "Multi"
        Print At 32 , 0, "Metre"
        DelayMS 1000
       
         Cls
                             
      TRISA.0 = 1                  ' Setup bit-0 of PortA as an input
          ADCON1 = %10000010            ' Set PORTA analog and right justify result
Again:    adval = ADIn 0               ' Read the ADC
         

         If adval <220  Then
     kont=0
     
    If kay=8 Then
     Volt=adval/100
     voltt=adval//100
       
       
     Print Font Arial____8
     
     Print At 8, 15 ,"Kademe 0-2v       "
     Print Font ArialK____12
      Print At 33 , 30 ,"_____"
    Print At 33 , 30 ,Dec Volt,",",DEC2 voltt
     Print At 33 ,110,"V"
    EndIf
   
     If  kay=16 Then
     Volt=adval/10
     voltt=adval//10
     
     Print Font Arial____8 
     
     Print At 8 , 15 ,"Kademe 0-20v        "
     Print Font ArialK____12
      Print At 33 , 30 ,"_____"
    Print At 33 , 30 ,Dec Volt,",",DEC1 voltt
     Print At 33 ,110,"V"
     EndIf
     
     If kay=32 Then
     Volt=adval/1
     voltt=adval//1
       
   Print Font Arial____8 
     
     Print At 8 , 15 ,"Kademe 0-200v      "
    Print Font ArialK____12
      Print At 33 , 30 ,"_____"
    Print At 33 , 30 ,Dec Volt
     Print At 33 ,110,"V"
     EndIf
   
     Else
     kont=1
     EndIf
     
     
     If kay=64 Then
     Volt=adval
     
     Print Font Arial____8                                     
     
     Print At 8 , 15 ,"Kademe 0-1000v      "
  Print Font ArialK____12
      Print At 33 , 30 ,"_____"
    Print At 33 ,30,Dec Volt
    Print At 33 ,110,"V"
     EndIf
     
     If kont=1 And oto=1  Then
     kay=kay<<1
    If kay=128 Then
    kay=64
    EndIf
     PORTC=kay
     EndIf
     
     If kont=0 And oto=1 Then
   
     kay=kay>>1
   
    If kay=4 Then
    kay=8
    EndIf
     PORTC=kay
    EndIf
       
        DelayMS 100
   
          GoTo Again                  ' Do it forever
          Include "FONT.INC"
         Include "isos.INC"
             Include "Arialk12.txt"
             Include "Arial8.txt"
             Include "ravie16.txt"
             Include "brodway.txt"












kodlarım bunlar

yalnız birde
Declare GLCD_CS_INVERT On
komutunu yazınca devrede cs1 ile cs2 normal yerinde çıkıyor ama oynamalar devam ediyor
ama proteusta cs1 ile cs2 yerler değişiyor

ekrandaki aşağı yukarı oynamaları gidermem için yardım ederseniz çok sevinirim.. :(

Maxim

bu satırlar doğrumu ?

   OPTIMISER_LEVEL = 20
    Declare GLCD_STROBE_DELAY 1000


kaybolanruh


mustafacan

16f877de adc yaptırdığın pice 128x64 glcd yazımında sorn çıktığını duymuştum. test ettim ekran kayması sorununu yaşadım. belki tecrübe olur
Keşfedilecek çok teknoloji var. Boş Vaktim Yok!

muhittin_kaplan

Kodlarda hatalar mevcut. Koskoca Blok Döngü içerisinde. Aynı Kodlar Tekrarlanmış.
Ne Yapmak İstediği Yazarsan Doğru Yardım edebiliriz.

kaybolanruh

otomatik kademeli volt metre yapmak istiyorum kodlar proteusta güzel çalışıyor voltaj ölçümümde sorun yok yalnız yaptığım devrede  ekranında oynamalar oluyor kararlı bir şekilde durmuyor mesela welcome yazısının ilk yazım esnasında normal yerinde yazıyor milisaniyeler içinde welc normal yerinde kalıyor ome yazısı yukarı satır başına geliyor sonra analog ölçüme geçincede yine ekranın sağı ile solundakilen yazılar satır basın geliyor sonra satır sonuna geçiyor süreklü oynuyor

muhittin_kaplan

önce basit bir glcd print çalışması yap.

egokdua

sevgili dostum . Programında ne yapmış olursan ol  bir şekilde bir şeyler yapar . Dediğin sorun ise benim daha önce başıma gelmişti . Öncelikle şunu dene . kıristalini 6 mhz tak . Eğer ekranda kaymalar olmuyorsa daha iyi bir glcd alıp kıristal hızını artırabilirsin . Bunu bir dene programdan da hızı 6 mhz yap , proton 6 yı kabul etmez ise 8 yaz gitsin .