LCD SAAT DEVRESİNE AYAR MENÜSÜ EKLEMEK

Başlatan erdogan2734, 03 Aralık 2010, 17:31:25

erdogan2734

Arkadaşlar tezimin son son bir bölümü olarak lcd ekranda pic 16f877a da saati ayarlamam gerek ancak bir yerlerde  hata yapıyorum galiba bir türlü saate ayar menüsü yapamadım. aşağıya yazmış olduğum programı koyuyorum pic basicde bu programın üzerine saat ayarı yapabilmem icin bana yardım ederseniz çok sevinirim...



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

DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT  4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT  2
DEFINE LCD_BITS  4
DEFINE LCD_LINES  2

ON INTERRUPT GOTO KESME
OPTION_REG=%10000101
INTCON=%10100000

TMR0=0
CMCON=7

SAYAC VAR BYTE
SN VAR BYTE
DAK VAR BYTE
SAAT VAR BYTE
GUN VAR BYTE

CLEAR
PAUSE 200
LCDOUT $FE,1
LOW PORTB.2 
'*****KESME İŞLEMLERİ*****
OPTION_REG=%00000101         '1/64 BÖLME ORANI
INTCON=$A0                   'TMRO VE TÜM KESMELER AKTİF
ON INTERRUPT GOTO KESME      'KESME OLUŞTUĞUNDA BU ADRESE GİT
LCDOUT $FE,$CF,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$CE,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$CD,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$CC,"HOS GELDiNiZ "
PAUSE 200             
LCDOUT $FE,$CB,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$CA,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C9,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C8,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C7,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C6,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C5,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C4,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C3,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C2,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C1,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"OS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"S GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C0," GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"ELDiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"LDiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"DiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"iNiZ "
PAUSE 200
LCDOUT $FE,$C0,"NiZ "
PAUSE 200
LCDOUT $FE,$C0,"iZ "
PAUSE 200
LCDOUT $FE,$C0,"Z "
PAUSE 200
LCDOUT $FE,$C0," "
PAUSE 200


BASLA:
LCDOUT $FE,$84,DEC2 SAAT,":",DEC2 DAK,":",DEC2 SN
LCDOUT $FE,$40,$0A,$00,$11,$11,$11,$11,$0E,$00  'Ü
LCDOUT $FE,$C2,"AYAR MEN",0,"S",0," "
GOTO BASLA

DISABLE
KESME:
SAYAC=SAYAC+1
IF SAYAC=61 THEN
SAYAC=0
SN=SN+1
IF SN=60 THEN
SN=0
DAK=DAK+1
IF DAK=60 THEN
DAK=0
SAAT=SAAT+1
IF SAAT=24 THEN
SAAT=0
GUN=GUN+1
IF GUN=365 THEN
GUN=0
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
INTCON.2=0
RESUME
ENABLE
END



Bildiğim tek şey henüz hiç bir şey bilmediğim...

zamzam23

ilgili pini giriş yaparak başlayabilirsin.

erdogan2734

Alıntı yapılan: zamzam23 - 03 Aralık 2010, 17:40:33
ilgili pini giriş yaparak başlayabilirsin.

ilgili pini giriş yapmakla bitmiyor galiba öyle olsaydı çok tan yapardım...
Bildiğim tek şey henüz hiç bir şey bilmediğim...

dombilik

Haliyle ilgili pini giriş yapmakla bitmiyor tabii.
Geriye biraz düşünmek kalıyor....
O giriş pinlerindeki butonlarla saat,dakika ve saniye
değerlerini +1 yada -1 arttırmak yada azaltmak ile 
saati ayarlamak..
Örneğin ;
bir buton ile hangisini ayarlayacağını seç.
arttırma ve eksiltme butonları ile değerleri değiştir.
başka bir buton değişkene ata ve ana program döngüne devam et.
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

neural

Alıntı yapılan: erdogan2734 - 03 Aralık 2010, 17:31:25


LCDOUT $FE,$CF,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$CE,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$CD,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$CC,"HOS GELDiNiZ "
PAUSE 200             
LCDOUT $FE,$CB,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$CA,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C9,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C8,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C7,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C6,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C5,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C4,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C3,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C2,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C1,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"HOS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"OS GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"S GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C0," GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"GELDiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"ELDiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"LDiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"DiNiZ "
PAUSE 200
LCDOUT $FE,$C0,"iNiZ "
PAUSE 200
LCDOUT $FE,$C0,"NiZ "
PAUSE 200
LCDOUT $FE,$C0,"iZ "
PAUSE 200
LCDOUT $FE,$C0,"Z "
PAUSE 200
LCDOUT $FE,$C0," "
PAUSE 200


Ayrıca programın bu kısmı program belleği açısından bayağı bir yer kaplar. Aynı işlemi LCD 'nin kaydırma komutlarının kullanarak daha basit yapabilirsiniz. [1] adresinde komutlar ile ilgili bilgi bulunmakta.

[1] http://www.dinceraydin.com/lcd/commands.htm

erdogan2734

arkadaslar dırek sıze donemedım ama cok sagolun menu ekledım tuslar calısıyor yardımlarınız ıcın tesekkur ederım...
Bildiğim tek şey henüz hiç bir şey bilmediğim...

solidus

Bunu nasıl yaptığınıda paylaşki diğer arkadaşlar da faydalansın..
Kimine göre kralım kimine göre yalanım… Herkes rahatına baksın, ben adamına göre adamım..