Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

programa bakarmısınız?

Başlatan savas1980, 18 Temmuz 2006, 13:40:09

savas1980

Arkadaşlar size danişmak istiyorm bu program pic in 15nci pinindeki bir butondan 9 10 11 12 ve 13 uncu pinlere sinyal gonderip 0 yapacak ve basılı oldugu sure boyunca devam edicek. bide INCLUDE "P16F628A.INC" oldugu zaman derleyemiyorum şimdiden cok teşekkürler

LIST	P=16F628A
PORTA	EQU	h'05'
PORTB	EQU	h'06'
TRISA	EQU	h'85'
TRISB	EQU	h'186'
STATUS0	EQU	h'03'
STATUS1	EQU	h'83'
STATUS2	EQU	h'183'
	ORG	h'000'
	CLRF	PORTB
	BSF	STATUS1,5
	CLRF	TRISB
	MOVLW	h'FF'
	MOVWF	TRISA
TEST_ALARM
	BTFSS PORTA,6
	GOTO	TEST_ALARM
	GOTO	ALARM
ALARM
	BTFSS	PORTB,1
	GOTO	TEST_BASLA
	MOVLW	h'F8'
	MOVWF	PORTB
	GOTO	HALA_BASILIMI
TEST_BASLA
	MOVLW	h'F8'
	MOVWF	PORTB
HALA_BASILIMI
	BTFSS	PORTA,6
	GOTO	TEST_ALARM
	GOTO	HALA_BASILIMI
	END

savas1980

bide pic 16f628 in inc dosyasını yllarsaız cok sevinirim mplab kullaıyorm ama hep hata veriyo

Logan

Savas1980,
Yazdığın program, buradakinin aynısı ise oldukça yanlışın var demektir. Birincisi, "TEST_ALARM" etiketinden önce bank değiştirmeyi unutmuşsun.
İkincisi, "CLRF TRISB" demişsin ve "BTFSS PORTB,1" yazmışsın.Yani portb'yi çıkış tanımladıktan sonra, set olup olmadığına bakmışsın.Herhalde BTFSS PORTA,1 yazacaktın, unuttun.INC. dosyasına gelince, MPLAB kullandığına göre, mutlaka 16F628A'nın inc. dosyaları vardır.Fakat olmadığını varsayarak rapid'e atıyorum.

http://rapidshare.de/files/26173603/M16F62XA.INC.html

Umarım problemi çözersin.Kolay gelsin.
Not:Eğer hata devam ederse, entegreyi 16F628 olarak değiştirip tekrar derle.
İmza.

savas1980

teşekkür ederim LOGAN arkadas 3 gundur bu işle ugrasıyorum cok bunaldım hatalarımı mazur gorun. umarım calisir bide bank degistirme ile ilgili bilgi verebilirmisiniz. 16f84 te kolay ama bunda 4 tane var yardım ederseniz sevinirim. ÖRNEK: bank 0 dan bank 3 e gibi

OG

savas1980
asm bilmek güzel fakat bu gibi işleri pbp da çok hızlı ve çok az kod yazarak yapabilirsin.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

savas1980

valla 3 gunde koca bi kitap bitirdim ogrenicm die ama pbp yi biraz acarsan sevinirim.

OG

Dediğim gibi, ASM bilmek güzel ve daha ileri seviyeli uygulamalarda bazen şart olur, öğrenmeye devam et. Fakat bu iş için 3 gününe yazık yani.

PBP= Pic Basic Pro , basic tabanlı bir dildir.

İşlemcini,
giriş-çıkışlar (TRIS) pin değil port olsun,
ne yapmak istediğini

buraya yaz bu iş için 30sn de hex i al kullan.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

dogada

#include "p16f628A.inc"
	__CONFIG 	_MCLRE_OFF & _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _PWRTE_ON & _BODEN_ON & _LVP_OFF

	ORG		0X000      		;Başlama vektörü
İLK
	bcf		INTCON,GIE		;Bütün kesmeleri geçersiz kıl.
	call		KUR			;İlk başlama için giriş çıkış kesme vb ayarla
	goto		BAŞLA			;

;*****************************************************
BAŞLA
	btfss		PORTA,6		;BUTONA BASILI DEĞİLKEN 5 VOLT UYGULANDI.
	goto		DEĞİŞTİR		;BUTONA BASILI  0 VOLT  UYGULANDI.
	movlw		b'11111000'		;DEĞİŞİKLİK YAPMAK İÇİN 
	iorwf		PORTB,f			;İÇİN PORTB,3 ...7 1 YAPILDI.
	goto		BAŞLA			;
DEĞİŞTİR
	movlw		b'00000111'		;	
	andwf		PORTB,f			;VE İŞLEMİ İLE M ASKELENEREK SADECE İSTENİLEN PORTLAR OVOLT YAPILDI.
  	goto		BAŞLA			;

KUR
	bcf		STATUS,RP0		;BANK0
	movlw		0x07			;
	movwf		CMCON			;Bütün portlar sayısal giriş çıkış
	clrf		PORTA			;
	clrf		PORTB			;
	bsf		STATUS,RP0		;BANK1
	movlw		b'11111111'		;Giriş
	movwf		TRISA			;
	movlw		b'00000000'		;Çıkış
	movwf		TRISB			;
	bcf		STATUS,RP0		;BANK0
	return
	end
******