karakter sırası???

Katılım
12 Mar 2008
Mesajlar
70
Puanları
1
Yaş
39
öncelikle merhaba ben bi uygulama yaptım fakat işin içinden çıkamadım.Sorum şu ben bir sayı veya harf seçicem fakat o seçtiğim karakter kaçıncı sırada olucağını nasıl belirlicem mesela ben bir menü yapıcam lcd de orada harfler olacak örnek o menüde ben "yılmaz" yazmak istediğim de ben y yi seçtiğimde ilk harf o olacak tamam ama arkasından "ı " yı sectiğimde "ı "nasıl "y " nin arkasına eklenicek lcd de??
 
programın yazıldığı dil o komutu içerir.
asm ile yazılıyorsa lcd nin kendi komutları içinde vardır.
örneğin picbasic de;
$FE,$14 komutu kursörü bir pozisyon sağa getirir.
"ı" harfini yaz komutu verilince "y" harfinin yanına yazılır
 
ama benim istediğim şu kol saatlerindeki sistem hani saat ayarlamak için sayıyı seçiyor ve bir tuşa basıyor bir yan tarafa geçiyor işte ben bunu sağlayamadım ben şu an sadece bir harf seçebiliom okadar
 
programını gönderebilirsen nereye ekleme yapacağını söylemeye çalışırım hangi dilde yazıyorsun
 
biraz uzun ama



Kod:
@ DEVICE pic16F877
@ DEVICE pic16F877, WDT_OFF
@ DEVICE pic16F877, PWRT_ON
@ DEVICE pic16F877, PROTECT_OFF
@ DEVICE pic16F877, XT_OSC


DEFINE LCD_DREG	    PORTC	   
DEFINE LCD_DBIT	    4	        
DEFINE LCD_EREG	    PORTC	   
DEFINE LCD_EBIT	    1	       
DEFINE LCD RWREG    PORTC   	
DEFINE LCD_RWBIT    2       
DEFINE LCD_RSREG	PORTC	    
DEFINE LCD_RSBIT	0	        
DEFINE LCD_BITS	    4	        
DEFINE LCD_LINES	2

i VAR BYTE
i1 VAR BYTE
p1 VAR BYTE
p2 VAR BYTE

pa1 VAR BYTE
pa2 VAR BYTE
pa3 VAR BYTE
pa4 VAR BYTE
pa5 VAR BYTE
pa6 VAR BYTE
pa7 VAR BYTE
pa8 VAR BYTE
pa9 VAR BYTE
pa10 VAR BYTE
pa11 VAR BYTE
pa12 VAR BYTE
pa13 VAR BYTE
pa14 VAR BYTE
pa15 VAR BYTE
pa16 VAR BYTE
pa17 VAR BYTE
pa18 VAR BYTE
pa19 VAR BYTE
pa20 VAR BYTE
pa21 VAR BYTE
pa22 VAR BYTE
pa23 VAR BYTE
pa24 VAR BYTE
pa25 VAR BYTE
pa26 VAR BYTE
pa27 VAR BYTE
pa28 VAR BYTE
pa29 VAR BYTE
pa30 VAR BYTE
pa31 VAR BYTE
pa32 VAR BYTE
pa33 VAR BYTE

d1 VAR BYTE
d2 VAR BYTE
d3 VAR BYTE
d4 VAR BYTE
d5 VAR BYTE
d6 VAR BYTE
d7 VAR BYTE
d8 VAR BYTE
d9 VAR BYTE
d10 VAR BYTE
d11 VAR BYTE
d12 VAR BYTE
d13 VAR BYTE
d14 VAR BYTE
d15 VAR BYTE
d16 VAR BYTE
d17 VAR BYTE
d18 VAR BYTE
d19 VAR BYTE
d20 VAR BYTE
d21 VAR BYTE
d22 VAR BYTE
d23 VAR BYTE
d24 VAR BYTE
d25 VAR BYTE
d26 VAR BYTE
d27 VAR BYTE
d28 VAR BYTE
d29 VAR BYTE
d30 VAR BYTE
d31 VAR BYTE
d32 VAR BYTE
d33 VAR BYTE




ENTER VAR PORTD.0
YUKARI VAR PORTD.1
ASAGI VAR PORTD.2
SEC1 VAR PORTD.3
SEC2 VAR PORTD.4

TRISA=%00000000 
TRISB=%00000000 
PORTB=0 
PORTA=1 


i=0 
i1=3 

p1=1 


d1=%00000000
d2=%11111111
d3=%10010000
d4=%10010000
d5=%01100000
d6=%00000000
d7=%00001111
d8=%10010000
d9=%10010000
d10=%01111111
d11=%00000000 
d12=%00000000
d13=%11111111
d14=%10011001
d15=%10011001
d16=%10011001
d17=%00000000
d18=%11111000
d19=%00000100
d20=%00001000
d21=%00000000
d22=%01110000
d23=%10001000
d24=%10001000
d25=%11111111
d26=%00000000
d27=%01100000
d28=%10010010
d29=%10010010
d30=%01111100
d31=%00000000
d32=%11111111
d33=%00000000



pa1=0
pa2=1
pa3=2
pa4=3
pa5=4
pa6=5
pa7=6
pa8=7
pa9=8
pa10=9
pa11=10
pa12=11
pa13=12
pa14=13
pa15=14
pa16=15
pa17=16
pa18=17
pa19=18
pa20=19
pa21=20
pa22=21
pa23=22
pa24=23
pa25=24
pa26=25
pa27=26
pa28=27
pa29=28
pa30=29
pa31=30
pa32=31
pa33=32
LCDOUT $FE,1

PAUSE 100
basla:
IF ENTER=0 THEN menu1
 

i=i+1
IF i=i1 Then kaydir 
PORTA=pa1 
PORTB=d1 
Pause p1 
PORTA=pa2 
PORTB=d2
Pause p1
PORTA=pa3
PORTB=d3
Pause p1
PORTA=pa4
PORTB=d4
Pause p1
PORTA=pa5
PORTB=d5
Pause p1
PORTA=pa6
PORTB=d6
Pause p1
PORTA=pa7
PORTB=d7
Pause p1
PORTA=pa8
PORTB=d8
Pause p1
PORTA=pa9
PORTB=d9
Pause p1
PORTA=pa10 
PORTB=d10 
Pause p1
PORTA=pa11 
PORTB=d11 
Pause p1
PORTA=pa12 
PORTB=d12 
Pause p1
PORTA=pa13 
PORTB=d13 
Pause p1
PORTA=pa14 
PORTB=d14 
Pause p1
PORTA=pa15 
PORTB=d15 
Pause p1
PORTA=pa16 
PORTB=d16 
Pause p1
PORTA=pa17
PORTB=d17
Pause p1
PORTA=pa18
PORTB=d18
Pause p1
PORTA=pa19
PORTB=d19
Pause p1
PORTA=pa20 
PORTB=d20 
Pause p1
PORTA=pa21 
PORTB=d21 
Pause p1
PORTA=pa22 
PORTB=d22 
Pause p1
PORTA=pa23 
PORTB=d23 
Pause p1
PORTA=pa24 
PORTB=d24 
Pause p1
PORTA=pa25 
PORTB=d25 
Pause p1
PORTA=pa26 
PORTB=d26 
Pause p1
PORTA=pa27
PORTB=d27
Pause p1
PORTA=pa28
PORTB=d28
Pause p1
PORTA=pa29
PORTB=d29
Pause p1
PORTA=pa30 
PORTB=d30 
Pause p1
PORTA=pa31
PORTB=d31
Pause p1
PORTA=pa32
PORTB=d32
Pause p1
PORTA=pa33 
PORTB=d33 
Pause p1
GoTo basla 

menu1:
LCDOUT $FE,$0F
IF YUKARI=0 THEN
LCDOUT $FE,$14
ENDIF

IF ASAGI=0 THEN
LCDOUT $FE,$10
ENDIF
IF SEC1=0  THEN MENU2 

 
pause 40
GOTO menu1

kaydir:
PORTA=1
PORTB=0
i=0

pa1=pa1-1
pa2=pa2-1
pa3=pa3-1
pa4=pa4-1
pa5=pa5-1
pa6=pa6-1
pa7=pa7-1
pa8=pa8-1
pa9=pa9-1
pa10=pa10-1
pa11=pa11-1
pa12=pa12-1
pa13=pa13-1
pa14=pa14-1
pa15=pa15-1
pa16=pa16-1
pa17=pa17-1
pa18=pa18-1
pa19=pa19-1
pa20=pa20-1
pa21=pa21-1
pa22=pa22-1
pa23=pa23-1
pa24=pa24-1
pa25=pa25-1
pa26=pa26-1
pa27=pa27-1
pa28=pa28-1
pa29=pa29-1
pa30=pa30-1
pa31=pa31-1
pa32=pa32-1
pa33=pa33-1

GoTo basla
 
Moderatör tarafında düzenlendi:
Basic i pek bilmediğim için c den bir örnek vereyim sana;
char dizi[3]; // char türünden 3 adet değişken oluştur.
dizi[0]=0; // bu saatin olsun
dizi[1]=0; // bu dakikan olsun
dizi[2]=0; // buda saniyen

lcd de değişken gösterirken bunları arka arkaya göster
mesela LCDOUT "SAAT",#dizi[0],#dizi[1],#dizi[2] //yarısı basic yarısı c oldu :)
sonra mesela saat i artıracaksın
if buton1==1 then
dizi = dizi+1 // bu dizi değişkeninin içeriğini bir artırır( i'nin hangi kaç işe o değişkeni artırır. burada inin değeri 0 varsayıyorum.)
end if
if buton2==1 then
i=i+1 // saatten dakikaya geçmek için i'yi bir arttır.( burada i'nin değeri 1 olur.)
end if
 

Forum istatistikleri

Konular
128,179
Mesajlar
915,654
Kullanıcılar
449,940
Son üye
yavuzturan

Yeni konular

Geri
Üst