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


LCD SAAT pıcbasıc yardım

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 "pic ile kayan ışık Yardımm!!" 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: 10 Mar 2007
Mesajlar: 91

Offline
mame
Tarih: 13 12 2007 04:45

merhaba lcd ıle ds1302 entegresını kullanarak dahılı osılator ıle menulu saat yaptım fakat saat 30sn sonra falan sureklı resetlenıp basa donuyor.acaba kodlardamı hata var yoksa programlarken sıgortalardamı hata yapıyorum.
programlarken sıgortaların durumu ıntrc ı/o-wdte mclre-boren aktif.program wınpıc 800 (oradakı butun olasılıklar denendi.)kodlar asagıda.entegre 16f628.yardımlarınız ıcın tesekkurler.
trısa=%1100001 'porta tamamı çıkış
trısb=0 'portb tamamı çıkış
optıon_reg.7=0 'pull up dirençlerinin hepsi iptal
cmcon=7
'*****lcd_defıne tanımlamaları*****
defıne lcd_dreg portb 'lcd data bacakları portb'ye bağlı
defıne lcd_dbıt 0 'lcd data bacakları portb.4'den başlıyor
defıne lcd_ereg porta 'lcd enable bacağı portb'ye bağlı
defıne lcd_ebıt 3 'lcd enable pini portb.3 bağlı
defıne lcd_rsreg porta 'lcd rs pini portb'ye bağlı
defıne lcd_rsbıt 2 'lcd rs pini portb.2 bağlı
defıne lcd_bıts 4 'lcd 4 bit heberleşme yapıyor
defıne lcd_lınes 2 'lcd 2*16

'*****rtc ds1302 tanımlamaları*****
rtc_rst var portb.6
rtc_clk var portb.4
rtc_dta var portb.5
menu var porta.6
yukarı var porta.7
asagı var porta.0
'*****rtc ds1302 değişkenleri*****
sn var byte
dak var byte
saat var byte
gun var byte
ay var byte
yıl var byte
mem var byte
sayı var byte

onlar var byte
bırler var byte

a var byte 'karakter sayısı
c var byte 'karakter sayısı
d var byte 'karakter sayısı
e var byte 'karakter sayısı
saat=22
dak=34
gun=13
ay=12
yil=07



lcdout $fe,$0c
for a=0 to 35 'karakter sayısına onaltı eklenecek (49+16)
pause 150 'yazının kayma hızı
lcdout $fe,1
for c=0 to 19 'kayacak yazının karakter sayısının bir eksiği (50-1)
lookup c, ["muhammet alı kaymak"],d
lcdout $fe,143+c-a,d
next c
c=0
next a
a=0
low rtc_rst 'reset ve clock pinleri sıfırladık
low rtc_clk

gosub zaman_yaz



basla:




lcdout $fe,$0c
gosub zaman_oku
lcdout $fe,1,"saat : ",dec2 saat,":",dec2 dak,":",dec2 sn
lcdout $fe,$c0,"tarıh:",dec2 gun,"/",dec2 ay,"/","20",dec2 yıl


gosub gecikme
ıf menu=0 then ayar
goto basla
zaman_oku:

high rtc_rst
shiftout rtc_dta, rtc_clk, 0, [$bf]
shıftın rtc_dta, rtc_clk, 1, [sn, dak, saat,gun , ay, mem, yıl, mem] 'oku
low rtc_rst
mem=sn:gosub cevır:sn=sayı
mem=dak:gosub cevır:dak=sayı
mem=saat:gosub cevır:saat=sayı
mem=gun:gosub cevır:gun=sayı
mem=ay:gosub cevır:ay=sayı
mem=yıl:gosub cevır:yıl=sayı


':pause 100
return


zaman_yaz:
mem=sn:gosub terscevır:sn=sayı
mem=dak:gosub terscevır:dak=sayı
mem=saat:gosub terscevır:saat=sayı
mem=gun:gosub terscevır:gun=sayı
mem=ay:gosub terscevır:ay=sayı
mem=yıl:gosub terscevır:yıl=sayı


high rtc_rst
shıftout rtc_dta, rtc_clk, 0, [$8e, 0] 'yazmak için hazırla
low rtc_rst:pause 1
high rtc_rst
shıftout rtc_dta, rtc_clk, 0, [$be, sn, dak, saat,gun , ay, 0, yıl, 0] 'yaz
low rtc_rst
pause 10
return

cevır:
onlar=mem & %01110000
onlar=onlar>>4
bırler=mem & %00001111
sayı=onlar*10+bırler
return

terscevır:
onlar=mem dıg 1
onlar=onlar<<4
bırler=mem dıg 0
sayı=onlar+bırler
return
gecıkme:
pause 300
return

ayar:
ıf menu=0 then ayar

for a=0 to 16 'karakter sayısına onaltı eklenecek (49+16)
pause 150 'yazının kayma hızı
lcdout $fe,1
for c=0 to 15 'kayacak yazının karakter sayısının bir eksiği (50-1)
lookup c, [" menu "],d
lcdout $fe,143+c-a,d
next c
c=0
next a
a=0


z:
gosub ekran3
lcdout $fe,$c0,"<=zaman ayarla=> "
gosub gecıkme
ıf menu=0 then saatayar1
ıf asagı=0 then t
ıf yukarı=0 then cık
goto z
t:
gosub ekran3
lcdout $fe,$c0,"<=tarıh ayarla=> "
gosub gecıkme
ıf menu=0 then tarıh
ıf asagı=0 then cık
ıf yukarı=0 then z
goto t
cık:
gosub ekran3
lcdout $fe,$c0," <=cıkıs=> "
gosub gecıkme
ıf menu=0 then basla
ıf yukarı=0 then t
ıf asagı=0 then z
goto cık

saatayar1:
lcdout $fe,1
ıf menu=0 then saatayar1
gosub ekran0
saatayar:
gosub gecıkme
lcdout $fe, $c7, dec2 saat
lcdout $fe,$0e
lcdout $fe, $10

e=0

button menu, 0, 255, 255, e, 1,dakikaayar1
button yukari,0,255,255,e,1,saatiarttir
button asagı,0,255,255,e,1,saatiazalt
goto saatayar
saatiarttir:
ıf yukarı=0 then saat=saat+1
ıf saat=24 then saat=0
goto saatayar

saatiazalt:
ıf asagı=0 then saat=saat-1
ıf saat=255 then saat=23
goto saatayar

dakikaayar1:
ıf menu=0 then dakikaayar1
lcdout $fe,1
gosub ekran0

dakikaayar:
gosub gecıkme
lcdout $fe, $ca, dec2 dak
lcdout $fe,$0e
lcdout $fe, $10
e=0

button menu, 0, 255, 255, e, 1,zaman_b
button yukarı,0,255,255,e,1,dakarttir
button asagı,0,255,255,e,1,dakazalt
dakarttir:
ıf yukarı=0 then dak=dak+1
ıf dak=60 then dak=0

goto dakikaayar
dakazalt:
ıf asagı=0 then dak=dak-1
ıf dak=255 then dak=59

goto dakikaayar
zaman_b:
ıf menu=0 then zaman_b
gosub zaman_yaz

lcdout $fe,1," zaman ayarlandı"
gosub gecıkme
gosub gecıkme
gosub gecıkme
goto basla

tarıh:
ıf menu=0 then tarıh
lcdout $fe,1
gosub ekran1

tarıh_ayar1:
gosub gecıkme
lcdout $fe, $c6, dec2 gun
lcdout $fe,$0e
lcdout $fe, $10
e=0


button menu, 0, 255, 255, e, 1,ay_a
button yukari,0,255,255,e,1,gun_arttır
button asagı,0,255,255,e,1,gun_azalt

gun_arttır:
ıf yukarı=0 then gun=gun+1
ıf gun=32 then gun=1
goto tarıh_ayar1

gun_azalt:
ıf asagı=0 then gun=gun-1
ıf gun=0 then gun=31

goto tarıh_ayar1

ay_a:
ıf menu=0 then ay_a
lcdout $fe,1
gosub ekran1
ay_a1:
gosub gecıkme
lcdout $fe, $c9, dec2 ay
lcdout $fe,$0e
lcdout $fe, $10
e=0


button menu, 0, 255, 255, e, 1,yıl_a
button yukarı,0,255,255,e,1,ay_art
button asagı,0,255,255,e,1,ay_azal

ay_art:

ıf yukarı=0 then ay=ay+1
ıf ay=13 then ay=1
goto ay_a1

ay_azal:
ıf asagı=0 then ay=ay-1
ıf ay=0 then ay=12
goto ay_a1


yıl_a:
ıf menu=0 then yıl_a
lcdout $fe,1
gosub ekran1
yıl_a1:
gosub gecıkme
lcdout $fe, $ce, dec2 yıl
lcdout $fe,$0e
lcdout $fe, $10

e=0

button menu, 0, 255, 255, e, 1,zaman_b
button yukarı,0,255,255,e,1,yıl_art
button asagı,0,255,255,e,1,yıl_azal

yıl_art:
ıf yukarı=0 then yıl=yıl+1
ıf yıl=100 then ay=00
goto yıl_a1

yıl_azal:
ıf asagı=0 then yıl=yıl-1
ıf yıl=255 then yıl=99
goto yıl_a1
gecıkme2:
pause 150
return

ekran1:
lcdout " tarıh ayarla "
lcdout $fe,$c0,"tarıh:",dec2 gun,":",dec2 ay,":","20",dec2 yıl
return
ekran0:
lcdout " zaman ayarla "
lcdout $fe,$c0,"saat : ",dec2 saat,":",dec2 dak,":",dec2 sn
return
ekran3:
lcdout $fe,1, " menu "
return

end
Kayıt: 25 Nis 2006
Mesajlar: 65
Konum: UŞAK
Offline
elektron
Tarih: 13 12 2007 11:33

merhaba mame;
wdt disable yap.
Başa dön
Kayıt: 10 Mar 2007
Mesajlar: 91

Offline
mame
Tarih: 14 12 2007 01:36

elektron yazmış
merhaba mame;
wdt disable yap.

cevabın ıcın tesekkurler dedıgını yaptım sorun cozulmedı.devrede sorunum yok aynı devre calısan bır program var ortada dolasan antrakta hex olarak verılmıs.o programla devreyı sorunsuz calıstırıyorum.sanırım mclr ile ilgili sorunum var devre programlarken mclr i kapatıyorum.ama sanırım programdada ayarlamam gereken bıseyler var program ve ısıs dosyalarını yukluyorum.bırde bu bastakı @ıle yapılandevice tanımlamalarını pıc basıc pro tanımıyor illegal opcode hatası verıyot acaba nerde hata var.bunlar program basına yazana bılgı ıcınmı yoksa programda bı ayar yaparakmı bunları tanıtıyoruz.helpte konuyla ılgılı bılgı bulamadım.yapmak ısteyene baskı devrede ekledım.
@ DEVICE pic16F628A
@ DEVICE pic16F628A, WDT_off
@ DEVICE pic16F628A, PWRT_On
@ DEVICE pic16F628A, PROTECT_OFF
@ DEVICE pic16F628A, MCLR_On
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT
Başa dön
Kayıt: 10 Mar 2007
Mesajlar: 91

Offline
mame
Tarih: 30 12 2007 05:46

hatamı buldum meger görmemisim pullup ları dısable yapacagıma enable yapmısım optionreg7=1 yapınca program normale döniyor ilgilenenlere tesekkürler.
Başa dön



LCD SAAT pıcbasıc yardım


Benzer Konular

- Fırçasız D.A Motoru FUZZY Kontrol ACİLLL Yardım

- matrix led ile saat yapımı
- 16f628 ile yapılmış 7 adet saat ve termometre devresi
- iki ayrı trafo merkezinden gelen iki hat - yardım
- MOSFET ile Dimmer (Yardım)
- Proteus ve USB kullanımı hakkkında yardım.
- 8051 robot projesi yardım!!
- Generatör talep gücü hesaplama - yardım
- Ustalardan Acil yardım Lazım (step motor daha çok elektronikle ilgili)

- PİC 16F73 kullananlardan yardım lazım

- sd card okuma yardım ????

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