HEX e çevirmede yardımcı olurmusunuz

fetihnesli

Üye
Katılım
31 Mar 2009
Mesajlar
140
Puanları
1
sa arkadaşlar;
ben 16f628a ile RF röle kontrolu yapıyorum
verici proğramını yazdım,

yanlız HEX e çevirirken 30 dan fazla hata verdi,
vakti olan varsa bu yazılımı hex e çevirebilirmi?
belki benim pc de yanlış yaptım..
((alıcı pro.yazdım,sorun çözülürse alıcıyı ben hallederim))
Kod:
	LIST P=16f628A
	INCLUDE "P16F628A.INC"
	org h'0000'
SAYAC	EQU	h'20'
SAYAC1	EQU	h'21'
SAYAC2	EQU	h'22'
SAYAC3	EQU	h'23'	
	MOVLW	h'07'		;PORTANIN UÇLARI SAYISAL,
	MOVWF	CMCON		;KARŞILAŞTIRICILAR İPTAL
	CLRF	PORTA
	CLRF	PORTB
	BANKSEL	TRISA		;BANK1 E GEÇ
	MOVLW	h'FF'
	MOVWF	TRISA
	MOVLW	b'11111011'	;RX=GİRİŞ,TX=ÇIKIŞ
	MOVWF	TRISB
	MOVLW	d'207'		;1200 BAUD RATE LIK HIZ
	MOVWF	SPBRG		;İÇİN SPBRG E 207 YÜKLENDİ
	MOVLW	b'00100100'
	MOVWF	TXSTA		;BRGH=1,TXEN=1 GÖNDERME AKTİF
	BANKSEL	PORTB		;BANK0 A GEÇ
	BSF	RCSTA,SPEN	;SERİ İLETİŞİM AKTİF
	BCF	RCSTA,SYNC	;ASENKRON SERİ İLETİŞİM AKTİF
	CLRF	SAYAC
DONGU
	DECFSZ	SAYAC,F		;KISA BİR SÜRE BEKLE
	GOTO	DONGU		;
RA1
	BTFSC	PORTA,1		;RÖLE 1 İÇİN TUŞ1 BASILDI MI?
	GOTO	RA2		;DEĞİL İSE TUŞ2 Yİ TEST ET.
	CALL	GECIKME		;EVET İSE, 1SN BEKLE,
	CALL	R1CEK		;RÖLE 1 İN ÇEKMESİ İÇİN BİLGİ HAZIRLA
	CALL	GECIKME		;1SN BEKLE		
	CALL	GECIKME		;1SN BEKLE	
	CALL	R1BIRAK		;RÖLE 1 İN BIRAKMASI İÇİN BİLGİ HAZIRLA
RA2
	BTFSC	PORTA,2
	GOTO	RA1	
	CALL	GECIKME
	CALL	R2CEK
	CALL	GECIKME
	CALL	GECIKME
	CALL	R2BIRAK
R1CEK
	BSF	PORTB,2		;TX UCU 1 DURUMUNDA
	MOVLW	b'00001000' 	
	CALL	R1CEKHAZIR
	RETURN
R1BIRAK
	BSF	PORTB,2
	MOVLW	b'00000000'
	CALL	R1BIRAKHAZIR
	RETURN
R2CEK
	BSF	PORTB,2
	MOVLW	b'00000100'
	CALL	R2CEKHAZIR
	RETURN
R2BIRAK
	BSF	PORT,2
	MOVLW	b'00000000'
	CALL	R2BIRAKHAZIR
	RETURN
R1CEKHAZIR
	MOVWF	TXREG		;W DEKİ BİLGİYİ TXREG E YÜKLE
	BANKSEL	TXSTA
  R1-C-CVERİSONU
	BTFSS	TXSTA,TRMT	;STA YA VERİ GÖNDERME BİTTİ Mİ?
	GOTO	R1-C-VERİSONU	;HAYIR İSE TEKRAR TEST ET.
	BANKSEL	PORTB		;EVET İSE BANK0 A GEÇ.
	RETURN
R1BIRAKHAZIR
	MOVWF	TXREG	
	BANKSEL	TXSTA
  R1-B-BVERİSONU
	BTFSS	TXSTA,TRMT	;STA YA VERİ GÖNDERME BİTTİ Mİ?
	GOTO	R1-B-BVERİSONU	;HAYIR İSE TEKRAR TEST ET.
	BANKSEL	PORTB		;EVET İSE BANK0 A GEÇ.
	RETURN
R2CEKHAZIR
	MOVWF	TXREG		;W DEKİ BİLGİYİ TXREG E YÜKLE
	BANKSEL	TXSTA
  R2-C-CVERİSONU
	BTFSS	TXSTA,TRMT	;STA YA VERİ GÖNDERME BİTTİ Mİ?
	GOTO	R2-C-VERİSONU	;HAYIR İSE TEKRAR TEST ET.
	BANKSEL	PORTB		;EVET İSE BANK0 A GEÇ.
	RETURN
R2BIRAKHAZIR
	MOVWF	TXREG	
	BANKSEL	TXSTA
  R2-B-BVERİSONU
	BTFSS	TXSTA,TRMT	;STA YA VERİ GÖNDERME BİTTİ Mİ?
	GOTO	R2-B-BVERİSONU	;HAYIR İSE TEKRAR TEST ET.
	BANKSEL	PORTB		;EVET İSE BANK0 A GEÇ.
	RETURN
GECİKME
	MOVLW	h'0F'
	MOVWF	SAYAC1
DONGU1
	MOVLW	h'FF'
	MOVWF   SAYAC2
DONGU2
	MOVLW	h'FF'
	MOVWF	SAYAC3
DONGU3
	DECFSZ	SAYAC3,F
	GOTO	DONGU3
	DECFSZ	SAYAC2,F
	GOTO	DONGU2
	DECFSZ	SAYAC1,F
	GOTO	DONGU1
	RETURN
	END
 
mplabın ürettiği hata dosyasına bakabilirsin. Warningler çok önemlideğil de errorları düzeltmelisin örneğin call GECIKME diyorsun ama GECIKME diye bir etiketin yok:)
 
GECİKME deki büyük İ harfini kabul etmiyor olabilir
 
R2-C-CVERİSONU bunda da aynı sorun var gibi?
kolay gelsin:)
 
telkinleriniz için tşk. ettim,
error dosyasında 33 e yakın hata söylüyor
en baştaki hata INCLUDE "P16F682A.INC" sonraki hatalar zaten bu kod ile alakalı. asm kodlarının hepsini hata olarak görüyor, movlw dan portb sine kadar hepsinde hata var diyor..

aslında ınclude de hata verince zaten tüm kodlarda hata vermesi normal,

mesela status yerine 0x86 yazmamız gerekirken ınclude kodu sayesinde direk ismini yazabiliyoruz,

İŞTE mesele ınclude "p16f84.ınc" de niye hata veriyor???
netten başka asm ile yazılmış proğramlara baktım hepsinde aynı...

ama benim pro.da hata veriyor..

yardımcı olun ltfn
 
öncelikle hataları düzeltin.
GECIKME etiketi yok.
- karakteri kabul edilmez.
R2-B-VERISONU yerine birleşik bir kelime yazın.
 
Kod:
    LIST P=16f628A
    INCLUDE "P16F628A.INC"
    org h'0000'
SAYAC    EQU    h'20'
SAYAC1    EQU    h'21'
SAYAC2    EQU    h'22'
SAYAC3    EQU    h'23'   
    MOVLW    h'07'        ;PORTANIN UÇLARI SAYISAL,
    MOVWF    CMCON        ;KARŞILAŞTIRICILAR IPTAL
    CLRF    PORTA
    CLRF    PORTB
    BANKSEL    TRISA        ;BANK1 E GEÇ
    MOVLW    h'FF'
    MOVWF    TRISA
    MOVLW    b'11111011'    ;RX=GIRIŞ,TX=ÇIKIŞ
    MOVWF    TRISB
    MOVLW    d'207'        ;1200 BAUD TESTTE LIK HIZ
    MOVWF    SPBRG        ;IÇIN SPBRG E 207 YÜKLENDI
    MOVLW    b'00100100'
    MOVWF    TXSTA        ;BRGH=1,TXEN=1 GÖNDERME AKTIF
    BANKSEL    PORTB        ;BANK0 A GEÇ
    BSF    RCSTA,SPEN    ;SERI ILETIŞIM AKTIF
    BCF    RCSTA,SYNC    ;ASENKRON SERI ILETIŞIM AKTIF
    CLRF    SAYAC
DONGU
    DECFSZ    SAYAC,F        ;KISA BIR SÜRE BEKLE
    GOTO    DONGU        ;
TEST1
    BTFSC    PORTA,1        ;RÖLE 1 IÇIN TUŞ1 BASILDI MI?
    GOTO    TEST2        ;DEĞIL ISE TUŞ2 YI TEST ET.
    CALL    GECIKME        ;EVET ISE, 1SN BEKLE,
    CALL    R1CEK        ;RÖLE 1 IN ÇEKMESI IÇIN BILGI HAZIRLA
    CALL    GECIKME        ;1SN BEKLE       
    CALL    GECIKME        ;1SN BEKLE   
    CALL    R1BITESTK        ;RÖLE 1 IN BITESTKMASI IÇIN BILGI HAZIRLA
TEST2
    BTFSC    PORTA,2
    GOTO    TEST1   
    CALL    GECIKME
    CALL    R2CEK
    CALL    GECIKME
    CALL    GECIKME
    CALL    R2BITESTK
R1CEK
    BSF    PORTB,2        ;TX UCU 1 DURUMUNDA
    MOVLW    b'00001000'    
    CALL    R1CEKHAZIR
    RETURN
R1BITESTK
    BSF    PORTB,2
    MOVLW    b'00000000'
    CALL    R1BITESTKHAZIR
    RETURN
R2CEK
    BSF    PORTB,2
    MOVLW    b'00000100'
    CALL    R2CEKHAZIR
    RETURN
R2BITESTK
    BSF    PORTB,2
    MOVLW    b'00000000'
    CALL    R2BITESTKHAZIR
    RETURN
R1CEKHAZIR
    MOVWF    TXREG        ;W DEKI BILGIYI TXREG E YÜKLE
    BANKSEL    TXSTA
  R1_C_CVERISONU
    BTFSS    TXSTA,TRMT    ;STA YA VERI GÖNDERME BITTI MI?
    GOTO    R1_C_CVERISONU    ;HAYIR ISE TEKTESTR TEST ET.
    BANKSEL    PORTB        ;EVET ISE BANK0 A GEÇ.
    RETURN
R1BITESTKHAZIR
    MOVWF    TXREG   
    BANKSEL    TXSTA
  R1_B_BVERISONU
    BTFSS    TXSTA,TRMT    ;STA YA VERI GÖNDERME BITTI MI?
    GOTO    R1_B_BVERISONU    ;HAYIR ISE TEKTESTR TEST ET.
    BANKSEL    PORTB        ;EVET ISE BANK0 A GEÇ.
    RETURN
R2CEKHAZIR
    MOVWF    TXREG        ;W DEKI BILGIYI TXREG E YÜKLE
    BANKSEL    TXSTA
  R2_C_CVERISONU
    BTFSS    TXSTA,TRMT    ;STA YA VERI GÖNDERME BITTI MI?
    GOTO    R2_C_CVERISONU    ;HAYIR ISE TEKTESTR TEST ET.
    BANKSEL    PORTB        ;EVET ISE BANK0 A GEÇ.
    RETURN
R2BITESTKHAZIR
    MOVWF    TXREG   
    BANKSEL    TXSTA
  R2_B_BVERISONU
    BTFSS    TXSTA,TRMT    ;STA YA VERI GÖNDERME BITTI MI?
    GOTO    R2_B_BVERISONU    ;HAYIR ISE TEKTESTR TEST ET.
    BANKSEL    PORTB        ;EVET ISE BANK0 A GEÇ.
    RETURN
GECIKME
    MOVLW    h'0F'
    MOVWF    SAYAC1
DONGU1
    MOVLW    h'FF'
    MOVWF   SAYAC2
DONGU2
    MOVLW    h'FF'
    MOVWF    SAYAC3
DONGU3
    DECFSZ    SAYAC3,F
    GOTO    DONGU3
    DECFSZ    SAYAC2,F
    GOTO    DONGU2
    DECFSZ    SAYAC1,F
    GOTO    DONGU1
    RETURN
    END

Birkaç düzenleme yaptım hex oluştu kolay gelsin...
 
denemek için,en basit proğramı yazıyorum
(*.asm formatında)
LIST P=16F628A
PORTB EQU H'06'
STATUS EQU H'03'
TRISB EQU H'86'
CLRF PORTB
BSF STATUS,5
CLRF TRISB
BCF STATUS,5
BSF PORTB,0
END
bunda bile 32 hata buluyor.....

acaba mplab for windows penceresinde değiştirmem gereken yerler mi var?
bana yardımcı olun..
üsteki en basıt yazılımı,
resimdeki gibi seçeneklerde asemble yi tıklıyorum
32 tane hata çıkarıyor :((((
 
Son düzenleme:
Kod:
LIST P=16F628A
INCLUDE "P16F628A.INC"
PORTB EQU H'06'
STATUS EQU H'03'
TRISB EQU H'86'
	org h'0000'
CLRF PORTB
BSF STATUS,5
CLRF TRISB
BCF STATUS,5
BSF PORTB,0
END

ben mplab ide v8.63 kullanıyorum burda yazmadıklarını yazdım include satırı birde org satırı sende yoktu. Asm den o kadar anladığım söylenemez. Biraz dikkatli incelersen sorunu bulabilirsin. Sorun derleyicidende olabilir.Benimkini indir bir de onunla dene istersen.
 
PRoTeCtioN kardeş sağol. A.r.o
senin yazdığını hex e çevirirkende hata verdi.
derleyicide sorun old.anlaşıldı,
birde v8.63 deniyeceğim
tşk.
 

Forum istatistikleri

Konular
127,958
Mesajlar
913,910
Kullanıcılar
449,606
Son üye
rasit.

Yeni konular

Geri
Üst