Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Hazırcı istek USART 877

Başlatan eseneren, 02 Şubat 2011, 09:37:24

eseneren

Selamlar,

Başlıkda belirttiğim gibi hazırcı bir istek.

Bilgisayarımda Seri ve Paralel port yok PCI çevirici kart aldım çalışıp çalışmadığından emin değilim .
Hitech de program yazdım programdamı , seriportta mı ,devrede mi sorun var çözemedim.
Çalışan bir kod parçası arıyorum.Hiperterminale "A"  B göndersin yeter. İki entegre aldım bakmadım biri MAX 232 biri muadili imiş herşey den süphe eder oldum.

Elinde kod olupda paylaşmak istemeyen hex hali de kabulumdur.

Saygılar.

 
Seçim yapmak için durum hakkında bilgi sahibi olmak zorunda değilsin, sonucuna hazır olmak için durum hakkında kaygılanırsın.  http://bit.ly/gixfTk

Tagli

#1
2007'de assembly öğrenmeye yeni başladığımda yazdığım ilk program buydu. Eski dosyaların arasında buldum. Gerçi PIC'ten ve kristalden emin değilim ama galiba 16F876A ve 20 MHz idi. Bir değişiklik yapmadan 16F877A'da da çalışması lazım ama malesef talep ettiğin çalışma garantisini veremem. Ayrıca kod ASCII değil normal sayı gönderiyor ama Hyper Terminal'de ayarı vardı diye hatırlıyorum.
:100000000628000000000000000019209817831641
:10001000981618151930990083120A30A0002A2862
:100020000330A1006D30A200A20B1428A10B1228EE
:1000300008000430A300F930A4001020A40B1D28F0
:10004000A30B1B2808008316981C2428831225085C
:10005000990008000930A50023201920A503031DDD
:080060002C28232019202A2876
:02400E00713F00
:00000001FF
Yüklemeden önce config bitlerini de kontrol et.

İstersen .asm dosyasını da ekleyebilirim, ancak o dönemde henüz MPLAB kullanmaya başlamamıştım ve programı PIC Simulator IDE isimli bir programın içinde yazmıştım. Bu sebeple kod MPLAB standartına uymuyor olabilir.

Ekleme: Yazmayı unutmuşum, boud rate 9600.
Gökçe Tağlıoğlu

eseneren

Tagli cok sagol arkadsım ama calıstıramadım, baudrate degıstırıp tek tek denedım ama hareket yok acaba bır butona basıncamı data yolluyor.
Ama yazabildim sorun cıkmadı yazarken (__config vs olayınca haber veriyor PICKIT2 o manada)
Seçim yapmak için durum hakkında bilgi sahibi olmak zorunda değilsin, sonucuna hazır olmak için durum hakkında kaygılanırsın.  http://bit.ly/gixfTk

Tagli

Dediğim gibi kodu yazalı 4 yıla yakın zaman oldu. Hatırladığım kadarıyla herhangi bir şeye falan basmadan 1 saniye aralıkla 9'dan geriye sayıp yolluyor, sonra da tekrar 9'a dönüyordu. Kodu da ekleyeyim belki faydası olur. Koda bakınca şimdi gözüme çarptı, kristal 4 MHz olmalıymış. 20 MHz'de çalıştırmak için kodda 25 yazan yeri 129 yapmalısın.
SAYI		EQU	H'20'
		BEKLE1		EQU	H'21'
		BEKLE2		EQU	H'22'
		BEKLE3		EQU	H'23'
		BEKLE4		EQU	H'24'
		GIDICI		EQU	H'25'

		ORG		H'000'
		GOTO		SERI_KUR	;Baslangic noktasina gidiliyor

		ORG		H'005'
		CALL 		BEKLE_S		;Biraz bekleniyor (1 saniye)

SERI_KUR	BSF		RCSTA,7		;Seri baglanti aciliyor
		BSF		STATUS,5	;Bank 1'e gecildi
		BSF		TXSTA,5		;Transmit aciliyor
		BSF		TXSTA,2		;Yuksek hiz secildi
		MOVLW		D'25'		;W'ye 25 yaz
		MOVWF		SPBRG		;Boud Rate Generator ayarlandi (25 yazildi)
		BCF		STATUS,5	;Bank 0'a gecildi

DONGU_KUR	MOVLW		D'10'		;W'ye 10 yaziliyor
		MOVWF		SAYI		;SAYI = 10
		GOTO		DONGU		;Ana donguye gidiliyor
		
BEKLE_MS	MOVLW		D'3'		;W'ye 3 yaziliyor
		MOVWF		BEKLE1		;Dis dongu sayisi 3 oldu
MS_ARA1		MOVLW		D'109'		;W'ye 109 yaziliyor
		MOVWF		BEKLE2		;Ic dongu sayisi 109 oldu
MS_ARA2		DECFSZ		BEKLE2,F	;Ic dongu azaltip kontrol ediliyor
		GOTO		MS_ARA2		;BEKLE2 0 olana kadar ic dongu donuyor
		DECFSZ		BEKLE1,F	;Dis dongu azaltip kontrol ediliyor
		GOTO		MS_ARA1		;BEKLE1 0 olana kadar dis dongu donuyor
		RETURN				;Cagiran yere donuluyor

BEKLE_S		MOVLW		D'4'		;W'ye 4 yaziliyor
		MOVWF		BEKLE3		;Dis dongu sayisi 3 oldu
S_ARA1		MOVLW		D'249'		;W'ye 249 yaziliyor
		MOVWF		BEKLE4		;Ic dongu sayisi 249 oldu
S_ARA2		CALL		BEKLE_MS	;Milisaniye bekleme cagriliyor
		DECFSZ		BEKLE4,F	;Ic dongu azaltip kontrol ediliyor
		GOTO		S_ARA2		;BEKLE4 0 olana kadar ic dongu donuyor
		DECFSZ		BEKLE3,F	;Dis dongu azaltip kontrol ediliyor
		GOTO		S_ARA1		;BEKLE3 0 olana kadar dis dongu donuyor
		RETURN				;Cagiran yere donuluyor

SERI_GONDER	BSF		STATUS,5	;Bank 1'e gecildi
SERI_ARA1	BTFSS		TXSTA,1		;TSR bos mu?
		GOTO		SERI_ARA1	;Degilse bosalmasini bekle
		BCF		STATUS,5	;Bank 0'a don, isleme devam et
		MOVF		GIDICI,W	;GIDICI'deki deger W'ye aliniyor
		MOVWF		TXREG		;TXREG doluyor, gonderme basliyor
		RETURN				;Cagiran yere donuluyor
		
DONGU		MOVLW		D'9'		;W'ye 9 yaziliyor
		MOVWF		GIDICI		;GIDICI = 9
DONGU_ARA1	CALL		SERI_GONDER	;GIDICI gonderiliyor
		CALL		BEKLE_S		;1 saniye bekleniyor
		DECF		GIDICI,F	;GIDICI 1 azaltiliyor
		BTFSS		STATUS,2	;GIDICI 0 mi?
		GOTO		DONGU_ARA1	;Degilse azaltip gondermeye devam et
		CALL		SERI_GONDER	;0'sa once gonder
		CALL		BEKLE_S		;1 saniye bekle
		GOTO		DONGU		;Sonra 9 yap devam et

		END				;Program bitiyor

Gökçe Tağlıoğlu

SERRO EFE

seri portun rx-tx arasını 100r direnç ile birleştirip (direk bağlantıda yapabilirsiniz) terminal programınızdan veri yollayın gidenleri alabiliyorsanız portunuzun rx-tx hattı sağlamdır

eseneren

Tagli anlamlı değil ama karakterler geliyor sanırım bu max232, Seriport ve devrenin dogru oldugunu gosterıyor.
Tesekkur ederim.
@SERRO EFE tesekkur ederim sanada.
Saygılar
Seçim yapmak için durum hakkında bilgi sahibi olmak zorunda değilsin, sonucuna hazır olmak için durum hakkında kaygılanırsın.  http://bit.ly/gixfTk

tyilgin

Bugünlerde malum sebeplerden dolayı forumdan biraz uzaklaştım  ;D

Mesajı yeni gördüm. Sorun hala devam ediyorsa hemen birşey yapıp gönderebilirim, ne durumdasınız ?

eseneren

Dediğim gibi seri port yok pci kart aldım şeüpheli idim çalıştıramadım devreiyide sağolsun arkadaşlar yardımı ile çözdüm lakin kullandığınız kutuphane varsa paylaşırsanız sevinirim.
İlginize teşekkür ederim.
Seçim yapmak için durum hakkında bilgi sahibi olmak zorunda değilsin, sonucuna hazır olmak için durum hakkında kaygılanırsın.  http://bit.ly/gixfTk

kudretuzuner

Merhaba
Kart derken tam olarak neyi kastettiniz tam anlayamadım.Bilgisayar mağazalarında satılan USB giriş- seri port çıkış veren seyyar bir aparat mı?Aynı sorun bende de var.Notebookta seri çıkış yok bu sebepten sadece masa üstü PC de çalışabiliyorum.Ben de size bir basit test yazılımı yollayacağım ama  4Shared kapanmış yeni bir upload sitesi edineyim yollayacağım.Yolladığım testte çalışırsa benim işimi de görecektir.Piyasada 35-40 TL arası satılıyordu  paraya kıyıp ta almadım.Kolay gelsin.Not:Aldığınız ürünün resmini veya linkini verebilir misiniz?
Amatör

tyilgin

Hazır bir kütüphane kullanmıyorum. Zira çok detaylı değil zaten. İlk araştırmalarım sırasında yazdığım çalışmaları buldum onları gönderiyorum. Takılırsanız kütüphane haline getirir tekrar gönderirim.

http://hotfile.com/dl/102455752/8dc07eb/USart.rar.html

    Bu arada usartın tersleyerek gönderdiğini biliyorsunuz değilmi. Arada mutlaka Max232 veya not kapısı kullanmanız gerektiğini hatırlatmak isterim.

Son olarak sayın kudretuzuner, karaköyde usb-rs232 çeviri aparatlar var. Yarım kibrit kutusu büyüklüğünde ve 10tl ye satılıyor. Flowcontrol vs. kullanmayıp sadece rx-tx pinlerini kullanıyorsanız sorunsuz çalışıyor. Ben yaptığım ürünlerde sürekli kullanıyorum.

http://www.serialio.com/images/products/USB-RS232-Cable-med-wm.jpg


fatihinanc

Alıntı yapılan: eseneren - 06 Şubat 2011, 21:43:04
Dediğim gibi seri port yok pci kart aldım şeüpheli idim çalıştıramadım devreiyide sağolsun arkadaşlar yardımı ile çözdüm lakin kullandığınız kutuphane varsa paylaşırsanız sevinirim.
İlginize teşekkür ederim.

FxDev'in kitabında 6.Bölüm PIC için USART nasıl kullanılır anlatıyor.
Sağolsun kendisi Hi-Tech C için kütphanesini de yazmış(16F877A).
http://www.fxdev.org/muhendislik/hi-tech-pic-programlama/

Kolay Gelsin.
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)