Elektrotekno.com Ana Sayfa || Programlanabilir Cihaz ve Elemanlar || Microchip Pic Serisi


16F877 ile LCD zar pbp problemi

Açıklama:
Elektrik, Elektronik, Haberleşme ve Otomasyon konularının ağırlıklı olarak konuşulduğu, tartışıldığı ve bilgi paylaşımı yapıldığı forumumuza hoşgeldiniz.
Şu an Kod Paylaşım ve Soru Cevap Alanı kategorisi içerisindeki Microchip Pic Serisi forumunda bulunuyorsunuz.
Bu sayfada üyelerimizin "16F877 ile LCD zar pbp problemi" konusundaki problem, görüş ve önerileri okuyabilir ayrıca konu hakkındaki doküman, resim, proje, devre ve programlara ücretsiz olarak ulaşabilirsiniz. Üye olduktan sonra sizler de konu hakkında sorular sorabilir ya da yorum ve paylaşım yaparak birikimlerinizi aktarabilirsiniz.
Forumdan tam olarak yararlanabilmek için üye olmayı unutmayınız!
Kayıt: 11 Mar 2006
Mesajlar: 117

Offline
melih
Tarih: 26 11 2007 18:00

merhaba arkadaşlar pbp da 16f877 ile lcd li zar projesi üzerinde çalışıyorum.kodu random komutu kullanarak yazdım ancak butona 6 defa bastığımda lcd de gördüğüm ilk değeri tekrar görüyorum.Butona her bastığımda sürekli farklı bir değer göstermesi için ne yapmalıyım???

trısb=1
trısd=0
define osc 4
define lcd_dreg portd
define lcd_dbıt 4
define lcd_rsreg porte
define lcd_rsbıt 0
define lcd_ereg porte
define lcd_ebıt 1

portb=1
portd=0
sayı var byte
sayı1 var byte
adcon1 = 7
low porte.2


pause 100
lcdout $fe, $80,"zar degerı "

buton:
ıf portb.0=0 then goto basla
goto buton

basla:
bas1:
random sayı
sayı= sayı & %00000111
ıf sayı=0 or sayı=7 then goto bas1
pause 100
lcdout $fe,$80,"zar1 = ",#sayı
bas2:
random sayı1

sayı1= sayı1 & %00000111
ıf sayı1=0 or sayı1=7 or sayı= sayı1 then goto bas2
lcdout $fe,$c0,"zar2 = " ,dec sayı1
pause 500

goto buton
end

En son melih tarafından 27.11.2007, 14:53 tarihinde değiştirildi, toplam 1 kere değiştirildi
Kayıt: 28 Ksm 2006
Mesajlar: 274

Offline
ta2mc
Tarih: 26 11 2007 18:15

Random komutu ile kullanacağınız değişkenin BYTE değil, WORD olarak tanımlanması gerekiyor.

Programın tamamını incelemedim. Ancak değiştirdiğiniz taktirde sanırım (umarım) çalışacaktır.

Kolay gelsin.
Başa dön
Kayıt: 22 Nis 2006
Mesajlar: 409

Offline
ete
Tarih: 26 11 2007 20:37

random komutu word tipi değişkenle çalışır ve 0-65535 arası rastgele sayı üretir. istediğin aralıkta saıyı üretmek için aşağıdaki satırları kullan.

sayi var word
zar var sayi.byte0

basla:

random sayi
if zar=0 or zar>6 then basla

lcdout $fe,2,"zar=", dec zar
pause 200
goto basla

ete
Başa dön
Kayıt: 28 Ksm 2006
Mesajlar: 274

Offline
ta2mc
Tarih: 26 11 2007 23:20

"zar var sayi.byte0 " yerine;

"zar = sayi DIG 0" tanımlamasının kullanılması daha uygun olur.

(sayi var word şeklinde önceden tanımlanmak şartıyla)


Zira byte olarak tanımlanan değişken 0-255 arası değer alacak ve "if zar=0 or zar>6 then.." şartını sağlayan değeri bulması çok uzun zaman alabilecektir. Oysa sıfırıncı digit alınırsa, kritere uyan değere rastlama ihtimali misli misli yüksek olacaktır. (0-9 arası)

Veya, daha da kolayı; en soldaki (4.) digit dikkate alındığı taktirde zaten 0-6 arası bir sayı olacağından, altıdan büyük olup-olmadığının kontrolüne de gerek kalmayacak, dolayısı ile sıfırın haricindeki tüm değerler, şartı sağlamış olacaktır.
Başa dön
Kayıt: 11 Mar 2006
Mesajlar: 117

Offline
melih
Tarih: 27 11 2007 16:43

merhaba projeyi tamamladım.ekranda 2 zar değerini de görebilmek için aynı komutu tekraladım ve ekrana yazdım.sayı değerleri hep çift geliyordu.(1-1,5-5,4-4)bunu engelemek içinde if zar2=0 or zar2>6 or zar1=zar2 then bas2 ekledim şimdi program isteğim gibi çalışıyor.yardımlarınızdan dolayı teşekkürler.
trısb=1
trısd=0
define osc 4
define lcd_dreg portd
define lcd_dbıt 4
define lcd_rsreg porte
define lcd_rsbıt 0
define lcd_ereg porte
define lcd_ebıt 1

portb=1
portd=0
sayı1 var word
sayı2 var word
zar1 var sayı1.byte0
zar2 var sayı2.byte0
adcon1 = 7
low porte.2
pause 100
lcdout $fe, $80,"zar degerı "
buton:
ıf portb.0=0 then goto basla
goto buton
basla:
bas1:
random sayı1
if zar1=0 or zar1>6 then bas1
lcdout $fe,$80," zar1 = ", dec zar1
pause 200
bas2:
random sayı2
if zar2=0 or zar2>6 or zar1=zar2 then bas2
lcdout $fe,$c0," zar2 = ", dec zar2
pause 200
goto buton
end

16F877 ile LCD zar pbp problemi
16F877 ile LCD zar pbp problemi
Başa dön
Kayıt: 18 Nis 2006
Mesajlar: 138
Konum: uz elektronik
Offline
ozgurbaba1
Tarih: 29 11 2007 01:58

Ama bu seferde hiç çift gelmeyecek. Tavlada önemlidir çiftler Smile
Başa dön
Kayıt: 11 Mar 2006
Mesajlar: 117

Offline
melih
Tarih: 29 11 2007 11:26

Haklısın ozgurbaba1 şimdilik bu kadar yapabildim.Onun üzerinde de çalışmak lazım Smile
Başa dön



16F877 ile LCD zar pbp problemi


Benzer Konular

- 16F877 İle Müzik Kutusu

- pic 16f877 ile duvar saati (baskı devreli)
- 16f877 ile yapılmış 4 adet 5x7 kayan yazı devresi
- pic 16f877 ile basınc sensör devresi
- 16f877 ile yapılmış basit volt metre ohm metre
- DS1302 problemi
- 16f877 ile yapılmış led ekranlı saat
- 16f877 pwm yardım
- PIC 16F877 Numpad yardım

- pic 16f877 ile radar tasarımı

- 16f877 termometre (ccs c lm35)

Sitemize üyelik ve içeriğin indirilmesi tamamen ücretsizdir. Sitemizde paylaşılan tüm dokümanlar (Tezler, makaleler, ders notları, sınav soru cevaplar, projeler) paylaşımcıların bireysel çalışmaları olup telif hakları kendilerine aittir ya da açık bir şekilde kamusal alana yerleştirilmiş dokümanların birer kopyalarıdır. Kişilerin bireysel çalışmalarını sitemizde yüklemesinde, sitemizde paylaşıma teşvik eden puanlama sisteminin de etkisi büyüktür. Bunlara rağmen hala size ait olan ve burada bulunmasına izin vermediğiniz dokümanlar varsa iletişim bölümünden yöneticilere bildirmeniz durumunda derhal silineceklerdir.
Powered by phpBB | Translated by phpBB Türkiye | Ads by Google Adsense | Design by Crazy Bat based
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72