PIC 16F84A ZAMANLAMA

ceceli79

Üye
Katılım
7 Şub 2010
Mesajlar
21
Puanları
1
devremin bir saatlik bir gecıkme yapmasını istiyorum herşey tamam ama gecıkme bölümü sadece saniyelerle oluyor yani 1 saat olması için 2160 adet call gecıkme cağırmam gerek bu da cok satır cok işlem demek

1 saatlık gecıkme icin bunu kullanıyorum

SAAT
MOVLW D'27'
MOVWF ISLEM
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP

GEL
DECFSZ ISLEM,F
GOTO GEL

bu tek call saat komutunda 27 saniyelik bir gecıkme yapıyor. 1 saat olması için
134000 kusur call saat cağırmam gerek bu işlemcimi çok yormazmı
daha kullanışlı bir iki satırlık asm kodu yokmu
------------------------------------------
GECIKME
MOVLW D'45'
MOVWF SAYAC1
DON1
MOVLW D'35'
MOVWF SAYAC2
DON2
MOVLW D'20'
MOVWF SAYAC3
DON3

DECFSZ SAYAC3,F
GOTO DON3
DECFSZ SAYAC2,F
GOTO DON2
DECFSZ SAYAC1,F
GOTO DON1
RETURN
END

bu gecıkmeyide buton arkı ve sayac arasında görünme esnasında bekleme için kullanıyorum

yardımcı olursanız sevinirim
 
ben bu kodu c de yazıp derledim işini görürmü bilmiyorum ama 4 mhz kristal de bir saatlik zaman gecikmesi devrenin tamamıni anlatırsan yardımcı olabilirim

 
Son düzenleme:
Şunu deneyin (4MHz kristal ile):


Kod:
bekle_1_saat
			;3599999998 cycle
	movlw	0xFF
	movwf	sayac1
	movlw	0x84
	movwf	sayac2
	movlw	0xD8
	movwf	sayac3
	movlw	0x18
	movwf	sayac4
Bekle_0
	decfsz	sayac1, f
	goto	$+2
	decfsz	sayac2, f
	goto	$+2
	decfsz	sayac3, f
	goto	$+2
	decfsz	sayac4, f
	goto	Bekle_0

			;2 cycles
	nop
        nop
 
Son düzenleme:

evet bu gayet mantıklı olmuş,
 

bu ola bilir fakat ben
SAYAC EQU H'0C'
SAYAC1 EQU H'0D'
SAYAC2 EQU H'0E'
SAYAC3 EQU H'0F'
ISLEM EQU 0X022

halinde adresleme yaptım yani sayac 4 ekleye bilirmiyimn
daha doğrusu 16f84a da kaçtane equ deyimi ile adresleme yapa bilirm
 
registerlerinin sayısı kadar yapabilirsin
 
registerlerinin sayısı kadar yapabilirsin

TŞKLER

16f84a azemi registerlerinin sayısı kaç


15 tane yaza biliyormuşuz

bana
SAYAC EQU H'0C'
SAYAC1 EQU H'0D'
SAYAC2 EQU H'0E'
SAYAC3 EQU H'0F'
SAYAC4 EQU 0X025
ISLEM EQU 0X022

yazmaçlarını düzeltirimisinz galiba yanlış bir adresleme var

sayac yazmaçlarıyla 1 saatlik bir bekleme süresi

işlem yazmaçıylada
BEK
MOVLW D'16'
MOVWF ISLEM
GEL
DECFSZ ISLEM,F
GOTO GEL

display artışında ekranda görünmesi için biraz bekleme kodunu cağırıyorum.

fakat galiba yanlış adresleme var kod calışmıyor
 
Son düzenleme:

say bakalım kaçtane.
bu çalışan bir kodun bir kısmı...
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…