1 Byte veriyi BCD'ye çevirme (Byte_to_BCD)

Başlatan Erhan YILMAZ, 08 Nisan 2009, 14:28:24

Erhan YILMAZ

gecenlerde ihtiyacım oldu böyle bir programa internette istediğim gibi bulamadığım için oturup kendim yazdım. Programı denedim gayet güzel çalışıyor ve bu bölümde paylaşmak istedim. Program 1 bytelık veriyi birler, onlar ve yuzler olmak üzere 3 basamak desimal karaktere dönüştürüyor yani sayıları direk olarak LCD'ye veya seri portta gönderilebilir formata dönüştürüyor. Ayrıca bu bölümün açılmasıda iyi olmuş iyi bir kod kütüphanesi oluşturulabilir.

Byte_to_BCD

;******************************************************
;Bu alt program 1 bytelık datayı yüzler,onlar,birler  *
;olmak üzere 3 basamak desimal karaktere dönüştürür.  *
;Kullanılan değişkenler sayi,yuzler,onlar,birler      *
;****************************************************** 

Byte_to_BCD
	movwf	sayi	 ;Değişken içerikleri
	clrf	yuzler	 ;sıfırlanıyor
	clrf	onlar
	clrf	birler
yuz_var
	incf	yuzler,f ;Sayını içinde 
	movlw	.100	 ;yüz olup olmadığı 
	subwf	sayi,f	 ;kontrol ediliyor
	btfsc	STATUS,C
	goto	yuz_var
	decf	yuzler,f ;Sayıda yüz yoksa
	movlw	.100	 ;tekrar yüz eklenip
	addwf	sayi,f	 ;eski değerine dönülüyor
on_var
	incf	onlar,f	 ;Sayını içinde
	movlw	.10	 ;on olup olmadığı
	subwf	sayi,f	 ;kontrol ediliyor
	btfsc	STATUS,C 
	goto 	on_var
	decf	onlar,f	 ;Sayıda on yoksa tekrar on
	movlw	.10	 ;eklenip eski değerine
	addwf	sayi,w	 ;dönülüyor kalan değer
	movwf	birler	 ;birler basmağına ekleniyor
	movlw	0x30	 ;Elde edilen sayılar
	addwf	yuzler	 ;Hex '30' değeri eklenerek
	movlw	0x30	 ;ASCII karaktere çeviriliyor
	addwf	onlar
	movlw	0x30
	addwf	birler
	return

Ziya

bin2_bcd3 veya bin2bcd3 diye araştırsanydın bulurdun.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

Erhan YILMAZ

Araştırana kadar düşündüm yazdım arkadaşım hemde paylaştım picprojenin kod kütüphanesi genişlesin diye

Ziya

Alıntı yapılan: "tamirci_erhan"Araştırana kadar düşündüm yazdım arkadaşım hemde paylaştım picprojenin kod kütüphanesi genişlesin diye
Eline sağlık.

Tercih meselesi tabi. Bazıları hazır ister, bazıları kendisi yazmak. Ben bu işlemi yapan kodu düzenleyerek bin4bcd5 kodunu yazıp Jal kütüphanesine dahil etmiştim. hatta piclistteki matematik rutinlerini Jal kütüphanesi haline getirmiştim. Yeniden yazmak zor iştir. Yapılanı geliştirmek daha kolaydır.

C'de sizin yaztığınız rutin printf komutu içerisinde mevcut. Yüksek seviyeli diller kullananların işine yaramayacağı bir rutin. assembler kullanıcıları zaten forum piclist'ten işine yarayan kodları alıyorlar. size de tavsiye ederim. Assembler ile uğraştığım yıllarda oradan faydalanmıştım.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

Erhan YILMAZ

#4
Piclisti biliyorum dostum faydalı bir site ama orda aradığımı bulamadım sonra kendim yazdım. Yüksek seviyeli dil kullanan arkadaşlarında işine yarar. En azından bilmeyenler nasıl yapıldığı hakkında biligi sahibi olurlar. Niye bu kadar tartışıyorsun bu konuyu anlamadım. Forumda böyle bir bölüm açılmış bende elimdeki hazır fonksiyonları paylaştım. İşine yarayan kullansın.

Ziya

Alıntı yapılan: "tamirci_erhan"... nie bu kadar tartısıyorsun bu konuyu anlamadım forumda böyle bir bölüm açılmış bende elimdeki hazır fonksiyonları paylaştım işine yarayan kullansın
Sen buna tartışmak mı diyorsun? Geriye dön ve bir daha oku o zaman, tartışma var mı görürsün. İşine yarayacak arkadaşlar için, 16 bitlikği nasıl yaparız diye araştıracak birine yol göstermiş oldum.  Sizinle laf yarıştıracak kadar zamanım yok. Eğer buna tartışmak diyorsan ve sıkıldıysan düşünceni bunu yansıtacak şekilde bildir ben de burada bitireyim.

Bilgi alışverişine sizin tarzınızla yaklaşan kişiler bu forumda bir çok kişiyi yazmaz, cevap vermez hale getirdi veya kendi deneyimlerini paylaşmayı kestiler. Seni tanımıyorum, bir beklentim yok, kazancım yok, kaybım yok (zaman kaybı dışında), burada yazdıklarımdan başka verebileceğim bir şey yok, düşmanım değilsin, dostum değilsin, o zaman neden tartışayım ki seninle?  Ya da nereden çıkarttın tartıştığımı?
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

Erhan YILMAZ

tartışmak değilde ne bu ben program paylaştım orayada yazdım öylesine gecenlerde ihtiyacım oldu böyle bir programa internette istediğim gibi bulamadığım diye sende aradan çıkarmıssın  o lafı laf olsun diye demişşin bin2_bcd3 veya bin2bcd3 diye araştırsanydın bulurdun. Ben senden araştırma metodumu istedim. Yok kodları paylaştım işine yarayan kullansın diye sende uzatmış durmuşsun

mustafaaxu

selam tamirci/erhan
bu konu eski ama
kendi yazdığın kod herzaman iyidir çalışmanı paylaşmak dahada güzel
teşekkür ederim
bu bcd  ondalığa çevirme ile bende forumda değerli kardeşlerimle özellikle sayın tagli bazı çözümler ürettik 1 byte veya 2 byte lik dosyaları ondalığa çevirerek displayde yazdırdık  
kodu asm olarak derledik ilgilenen arkadaşlar picprojel ink leri veriyorum

http://picproje.org/index.php/topic,22078

http://picproje.org/index.php/topic,24684

http://picproje.org/index.php/topic,25008