asm yazdıgım kodu picbasicde yazarken sıkıntı yasıyoru

Başlatan electrotechnics, 19 Haziran 2006, 18:55:02

electrotechnics

arkadaşlar asm den pic basice geçiş yapmayı düşünüyorum ama beni zorluyor.Komutlarla istedigimi gercekleştiremiyorum.Göremediğim birseyler var.Aşagıda asm kod örnegini ve proteusta gerçekleştirdigim sim devresini gonderiyorum.Alternatiflerini bekliyorum.Picbasici kafaya taktım ögrenecegim...
;**********************************************************************
;                                                                     *
;    Filename:	    xxx.asm                                           *
;    Date:                                                            *
;    File Version:                                                    *
;                                                                     *
;    Author:                                                          *
;    Company:                                                         *
;                                                                     * 
;                                                                     *
;**********************************************************************

;EŞİTLİKLER BÖLÜMÜ

DSAYI	EQU h'21'
YSAYI	EQU h'22'
GSAYAC  EQU h'23'



;********************************************************************
#INCLUDE "MACRO.INC"
#INCLUDE "P16F84A.INC"
ERRORLEVEL 2


	LIST	P=16F84A
	ORG		0
	GOTO BASLA

;*********************************************************************



;ALT PROGRAMLAR BOLUMU
BUTON_KONTROL
BUTON_GERI	
	BTFSS	PORTB,4
	GOTO BUTON_ILERI 
GERI_BIRAK
    BTFSC PORTB,4
	GOTO GERI_BIRAK
	BSF PORTB,1
	BCF PORTB,0
	CALL SART_GERI
	GECIKMS 50
DUR
	BSF PORTA,0
    GECIKMS 50
	BCF PORTA,0
	GECIKMS 50
	CALL SART_ILERI
	CALL SART_GERI
	BTFSS	PORTB,4
	GOTO DUR
DUR_BIRAK
    BTFSC PORTB,4
	GOTO DUR_BIRAK
    BCF PORTB,0
	BCF PORTB,1
    GECIKMS 100
     
BUTON_ILERI
	BTFSS	PORTB,4
	GOTO BUTON_GERI
ILERI_BIRAK
    BTFSC PORTB,4
	GOTO ILERI_BIRAK
	BSF PORTB,0
	BCF PORTB,1
	CALL SART_ILERI
    GECIKMS 50
DUR1
	BSF PORTA,0
    GECIKMS 50
	BCF PORTA,0
	GECIKMS 50
	CALL SART_ILERI
	CALL SART_GERI
	BTFSS	PORTB,4
	GOTO DUR1
DUR1_BIRAK
    BTFSC PORTB,4
	GOTO DUR1_BIRAK
    BCF PORTB,0
	BCF PORTB,1
    GECIKMS 100
	RETURN

SART_ILERI
	BTFSC PORTB,7
	CALL ACIL_DUR_ILERI
	GECIKMS 20
	BCF PORTA,0
	RETURN
SART_GERI
	BTFSC PORTB,6
	CALL ACIL_DUR_GERI
	GECIKMS 20
	BCF PORTA,0
	RETURN
ACIL_DUR_ILERI
	BSF PORTA,0
	GECIKMS 20
	BCF PORTB,0
	BCF PORTB,1
    RETURN
ACIL_DUR_GERI
	BSF PORTA,0
	GECIKMS 20
	BCF PORTB,0
	BCF PORTB,1
    RETURN

;*******************************************************************
;KONFIKASYON BOLUMU

BASLA
BANK1
   
	MOVLW	B'00001110'   ;1 GİRİŞ 0 CIKIŞ PORTA
	MOVWF	TRISA
	MOVLW	B'11110000'    ;PORTB
	MOVWF	TRISB
 BANK0
 CLRF PORTB
 CLRF PORTA

;***********************************************************************************
;ANA PROGRAMA BAŞLA

ANA
CALL SART_GERI
CALL SART_ILERI
CALL BUTON_GERI
GOTO ANA




DONGU
GOTO DONGU

END


bu kodun ne amaçla yazdıgımıda anlatayım.Belki bir arkadaşın işine yarar..
Bu kodda kapı kumanda devresinin.tek butonla kapıyı ileri-dur-geri-dur-ileri şeklinde kumanda ediyoruz.sensor baglı olan iki ucumuz var.birincisi ileriyi,digeri ise geriyi kontrol ediyor.kapı kapanırken yada acılırken.sensorun onune birisi geldiginde kapının arasında sıkısmaması için kapının durmasını saglıyor.iki sensorun önünde kimse yoksa kapımız ileri yada geri yonde hareket ediyor...
ayrıca kapı hareketinde flas yapan bir ledimizde var...dur komutunda flash yapmıyor.ayrıca flas yapan ledimiz.ileri sensorunden uyarı sinyali geldiginde.farklı yanarak sensorun onunde bir cisim oldugunu belirtiyor...
picbasic kod alternatiflerinizi bekliyorum...

ayrıca belki lagzım olur..asm kendim kullandıgım macroyuda ekleyim.
;PORT DEĞİŞTİRMEK

BANK0 	MACRO
    BCF	STATUS,IRP
    BCF	STATUS,RP0
    BCF	STATUS,RP1
	ENDM

BANK1 	MACRO
    BCF STATUS,IRP
    BSF	STATUS,RP0
    BCF	STATUS,RP1
	ENDM

BANK2 	MACRO
    BSF STATUS,IRP
    BCF	STATUS,RP0
    BSF	STATUS,RP1
	ENDM

BANK3 	MACRO
    BSF STATUS,IRP
    BSF	STATUS,RP0
    BSF	STATUS,RP1
	ENDM
  
;TEST ET 1 İSE İSTENEN ADRESE ATLA

EGER1	MACRO	YAZMAC,BIT,ETIKET
	BTFSC	YAZMAC,BIT
	GOTO	ETIKET
	ENDM

;TEST ET 0 İSE İSTENEN ADRESE ATLA

EGER0 MACRO YAZMAC,BIT,ETIKET
	BTFSS	YAZMAC,BIT
	GOTO	ETIKET
	ENDM


;LKAE LİTERAL İLE KARSILAŞTIR EGER ESİTSE İSTENEN ADRESE ATLA
;LKAE	SAYAC,5,BASLA   SAYAC=5 İSE BASLAYA GİT.

LKAE MACRO,F,K,ETIKET
	MOVLW	K
	SUBLWF	F,0
	BTFSC	STATUS,2
	GOTO	ETIKET
	ENDM

;YKAE YAZMAC İLE YAZMACI KARSILAŞTIR VE EGER EŞİTSE ADRESE ATLA 
;YKAE SAYAC,TEK,LOOP

YKAE	MACRO,F1,F2,ETIKET
	MOVF	F2,0
	SUBLWF	F1,0
	BTFSC STATUS,2
	GOTO	ETIKET
	ENDM



;GECIKME ALT MACROSU GECIKMS

GECIKMS	MACRO MIKTAR
LOCAL	BEKLE1
LOCAL	DEVAM
LOCAL	GECIK1MS
LOCAL	TEKRAR
LOCAL	BITTI
	MOVLW	HIGH	MIKTAR
	MOVWF	YSAYI
	MOVLW	LOW	MIKTAR
	MOVWF	DSAYI
BEKLE1
	MOVF	DSAYI,1
	BTFSC	STATUS,Z
	GOTO	DEVAM
	CALL	GECIK1MS
	DECF	DSAYI,1
	GOTO	BEKLE1
DEVAM
	MOVF	YSAYI,1
	BTFSC	STATUS,Z
	GOTO	BITTI
	CALL	GECIK1MS
	DECF	YSAYI,1
	DECF	DSAYI,1
	GOTO	BEKLE1

GECIK1MS
	MOVLW .200
	MOVWF	GSAYAC

TEKRAR
	NOP
	NOP
	DECFSZ	GSAYAC,1
	GOTO	TEKRAR
	RETURN
BITTI
	ENDM

;TAŞMA VARSA ATLA
;JC     	MACRO	ADRES
;	BTFSC	3,0
;	GOTO	ADRES
;	ENDM

;TASMA YOKSA ATLA
;JCN
;	BTFSS	3,0
;	GOTO	ADRES
;	ENDM





;EPROMDAN VERİ OKUMAK

gecikme makrosu benim çok işime yarıyor...arkadaşlarımda işine yarayabilir :D

İNNİR

yardımlarınız için teşekkurler.

OG

@electrotechnics

Zor olan asm dir.  PIC mantığını zaten biliyorsun. Dert etme PBP yu çok kolay öğrenirsin. ETE Hocanın ders notlarını takip etmen yetecektir.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

emine06

Ete hocaya nasıl ulaşağım bende istiyorum pbp öğrenmek.bi email adresi gördüm onla ilgili o kadar.derslerin kayıtlı olduğu bi ortam yok mu?

memo333

ETE hocanın tüm dersleri bir pdf'de.

http://www.hemenpaylas.com/download/597221/Pic_Basic_Pro_Ogreniyoruz_1-10.rar.html

Ders1-  Pic Hakkında Kısa Bilgi
Ders2-  Pin Ayarlamaları
Ders3-  LCD Kullanımı
Ders4-  Program Oluşturma Esasları
Ders5-  Pic ile A/D çevrim
Ders6-  Kesmeler
Ders7-  Seri İletişim
Ders8-  Tuş Takımları
          LED Displayler (Saat - Tarih Uygulamaları)
          Port Çoğullayıcılar
Ders9-  EEPROM ve Sensör Kullanımı
Ders10-Program Örnekleri
Gömülü Linux Notları --> http://linuxedu.xyz/