avatar_efeworld

lcd ekranda harflerin kaydedilmesi ve tekrar gösterilmesi

Başlatan efeworld, 17 Nisan 2015, 16:28:48

efeworld

hocam ben lcd ekranda gösterdiğim harfleri sırasıyla kaydetmek sonrada lcd de görmek istiyorum fakat lcd de 8 tane sıfır okuyorum yardımcı olursanız çok sevinirim.iyi çalışmalar hocam

efeworld

doğru olan bu özür dilerim


symbol tusa=portc.2
symbol tusb=portc.3
TUS VAR byte
temp var byte [8]
sifre var byte[8]
i var byte
x var byte
y var byte
w var byte
y=0

sifre[y]=tus
basla:
   LCDOUT $FE,($C3+y),tus
   
   if tusa=1 then tus=tus+1
   if tusb=1 then y=y+1
   
   
    pause 50
  if y=>8 then yaz
  goto basla

   yaz:
   
      for i=0 to 7
          write i,SIFRE[i]
          pause 10     
     next i
     
     x=0
     for x=0 to 7
     read x ,temp[x]
     next x
     
     lcdout $fe,1,#temp[0],#temp[1],#temp[2],#temp[3],#temp[4]
lcdout $fe,$c0,#temp[5],#temp[6],#temp[7]
pause 50


ete

Yazdıklarını düzelterek code TAG içine aldım.
Oradanbakıp geri yükle ve dene bakalım.
Ancak programın tamamı burada değil anlaşılan. Ne bir sigorta ayarı nede register aayrlamaları özellikle TRIS register değerleri verilmemiş gözüküyor. Onları tamamlaman gerek.

Ete

ete

Kodları kod tag içine alın demekten dilimde tüy bitti. Ama şekilde görüldüğü gibi nafile.
Direk böyle mesajları silmek lazım bundan sonra.

TRISC de iki tane tuş kullanıyorsun ama PORTC ninhiç bir pini giriş olarak atanmamış .Nasıl çalışacak bu tuşlar?

Ete

efeworld

hocam haklısınız unutmusum trisc yi giriş yapmayı fakat proteusta hata vermedi yani çalıştı o yüzden bende görmedim.code tag nasıl yapılır bilmiyorum hocam fakat program sizin düzenlediğinizin aynısı fakat yine displayda 8 tane sıfır okuyorum.saygılar hocam

ete

aşağıdakini dene bakalım

Ete
@ __config _BODEN_OFF  & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _XT_OSC
DEFINE OSC 4
CMCON=7
ADCON1 = 7
TRISA=%00000000
TRISB=0
TRISC=%00001100
TRISD=%00000000
TRISE=%00000000
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
define LCD RWREG PORTB
define LCD_RWBIT 2
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
low portb.2
PORTA=0
PORTB=0
PORTC=0
PORTD=0
PORTE=0
symbol tusa=portc.2
symbol tusb=portc.3
TUS VAR byte
temp var byte [8]
sifre var byte[8]
i var byte
x var byte
y var byte
w var byte
y=0
lcdout $fe,1
lcdout $fe,$80," ete"
pause 200
tus=48
basla:
   LCDOUT $FE,($C0+y),tus
   
   if tusa=1 then
      tus=tus+1
      while tusa=1:wend
   endif
     
   if tusb=1 then
     sifre[y]=tus
     y=y+1:tus=48
     if y=>8 then yaz
     while tusb=1:wend
   endIF 
   
   
    pause 50
 
  goto basla

   yaz:   
      for i=0 to 7
          write i,SIFRE[i]
          pause 10     
     next i
     
     x=0
     for x=0 to 7
     read x ,temp[x]
     next x
     
     lcdout $fe,1,temp[0],temp[1],temp[2],temp[3],temp[4],temp[5],temp[6],temp[7]
lcdout $fe,$c0
pause 500
y=0
goto basla

efeworld

hocam iyiki varsınız çok teşekkür ederim çalıştı program.

Powered by EzPortal