Elektrotekno.com Ana Sayfa || Programlanabilir Cihaz ve Elemanlar || Microchip Pic Serisi


Açıklama:
Elektrik, Elektronik, Haberleşme ve Otomasyon konularının ağırlıklı olarak konuşulduğu, tartışıldığı ve bilgi paylaşımı yapıldığı forumumuza hoşgeldiniz.
Şu an Kod Paylaşım ve Soru Cevap Alanı kategorisi içerisindeki Microchip Pic Serisi forumunda bulunuyorsunuz.
Bu sayfada üyelerimizin "LM35-p16f877 dönüşümden ASCII koduna cevirmek?" konusundaki problem, görüş ve önerileri okuyabilir ayrıca konu hakkındaki doküman, resim, proje, devre ve programlara ücretsiz olarak ulaşabilirsiniz. Üye olduktan sonra sizler de konu hakkında sorular sorabilir ya da yorum ve paylaşım yaparak birikimlerinizi aktarabilirsiniz.
Forumdan tam olarak yararlanabilmek için üye olmayı unutmayınız!

LM35-p16f877 dönüşümden ASCII koduna cevirmek?

Kayıt: 04 Ağu 2006
Mesajlar: 135

Offline
the_nobody
Tarih: 06 12 2006 19:46

Arkadaşlar LM35 ile 16f877 de termometre yapmaya calısıyorum LM35 bilindiği gibi derece basşına 10mv luk değer üretiyor ve 16f877 A/D dönüşümünde yaklaşık 4,88mv ta 1bitlik bir değer üretiyor. Örnegin hava sıcaklığı 25 C olsun bu durumda 25*10mv=250mv luk deger LM35den cıkacak ve 16F877 bunun ilk 8 bitini 0011 0011 olarak sayı olarak 51 gösterecektir. Bunu LCD ekrana 25 olarak yazdırmak istiyorum ASCII karaktere nasıl dönüştürebilirim. Assembly olarak cevaplanırsa sevinirim.

En son the_nobody tarafından 10.12.2006, 17:56 tarihinde değiştirildi, toplam 1 kere değiştirildi
Kayıt: 22 Hzr 2006
Mesajlar: 151
Konum: izmit merkez
Offline
patan_mustafa
Tarih: 08 12 2006 01:57

merhaba;

10bitlik bir adcde 5v ref gerilimi ile ölçüyorsan lm35i sonuçta adc den elde ettiğin değeri ikiye böldüğünde elinde centigrat cinsinden kalibre edilmiş olarak sıcaklık değerin olacak.bununda bir değişkende olduğunu farzedersek bu değişkendeki hex değerini decimale çevirip bunun basamakalrını tek tek lcdye göndermen lazım.


basamkları ayıran ve bcdye kodlayan alt program aşağıdadır



;*************************************************************************
;* tobcd altprogrami icin gerekli equ tanimlamalari
;* bınlsb ve bınmsb icindeki 10 bit binary sayiyi
;* d1000, d100, d10, d1 icinde
;* ayrilmis halde bcd sayiya cevirir
;*************************************************************************
tobcd
clrf d1
clrf d10
clrf d100
clrf d1000
btfsc bınmsb,0
goto add256
dev512
btfsc bınmsb,1
goto add512
goto devson
add256
movlw h'06'
movwf d1
movlw h'05'
movwf d10
movlw h'02'
movwf d100
goto dev512
add512
movlw h'02'
addwf d1,f
movlw h'01'
addwf d10,f
movlw h'05'
addwf d100,f
devson
movf bınlsb,w
btfsc bınlsb,0 ;1 eklenecekmı?
call add1
btfsc bınlsb,1
call add2
btfsc bınlsb,2
call add4
btfsc bınlsb,3
call add8
btfsc bınlsb,4
call add16
btfsc bınlsb,5
call add32
btfsc bınlsb,6
call add64
btfsc bınlsb,7
call add128
return
add1
movlw h'01'
addwf d1,f
movlw h'0a'
subwf d1,w
btfss status,c
return
movwf d1
ıncf d10,f
movlw h'0a'
subwf d10,w
btfss status,c
return
movwf d10
ıncf d100,f
movlw h'0a'
subwf d100,w
btfss status,c
return
movwf d100
ıncf d1000,f
return

add2
movlw h'02'
addwf d1,f
movlw h'0a'
subwf d1,w
btfss status,c
return
movwf d1
ıncf d10,f
movlw h'0a'
subwf d10,w
btfss status,c
return
movwf d10
ıncf d100,f
movlw h'0a'
subwf d100,w
btfss status,c
return
movwf d100
ıncf d1000,f
return

add4
movlw h'04'
addwf d1,f
movlw h'0a'
subwf d1,w
btfss status,c
return
movwf d1
ıncf d10,f
movlw h'0a'
subwf d10,w
btfss status,c
return
movwf d10
ıncf d100,f
movlw h'0a'
subwf d100,w
btfss status,c
return
movwf d100
ıncf d1000,f
return
add8 ; dıspleye 8 ekle
movlw h'08'
addwf d1,f
movlw h'0a'
subwf d1,w
btfss status,c
return
movwf d1
ıncf d10,f
movlw h'0a'
subwf d10,w
btfss status,c
return
movwf d10
ıncf d100,f
movlw h'0a'
subwf d100,w
btfss status,c
return
movwf d100
ıncf d1000,f
return
add16
ıncf d10,f
movlw h'0a'
subwf d10,w
btfsc status,c
goto ıncyuz
goto noıncyuz
ıncyuz
movwf d10
ıncf d100,f
movlw h'0a'
subwf d100,w
btfss status,c
goto noıncyuz
movwf d100
ıncf d1000,f
noıncyuz
movlw h'06'
addwf d1,f
movlw h'0a'
subwf d1,w
btfss status,c
return
movwf d1
ıncf d10,f
movlw h'0a'
subwf d10,w
btfss status,c
return
movwf d10
ıncf d100,f
movlw h'0a'
subwf d100,w
btfss status,c
return
movwf d100
ıncf d1000,f
return
add32
movlw h'03'
addwf d10,f
movlw h'0a'
subwf d10,w
btfsc status,c
goto ıncd100
goto noıncd100
ıncd100
movwf d10
ıncf d100,f
movlw h'0a'
subwf d100,w
btfss status,c
goto noıncd100
movwf d100
ıncf d1000,f
noıncd100
movlw h'02'
addwf d1,f
movlw h'0a'
subwf d1,w
btfss status,c
return
movwf d1
ıncf d10,f
movlw h'0a'
subwf d10,w
btfss status,c
return
movwf d10
ıncf d100,f
movlw h'0a'
subwf d100,w
btfss status,c
return
movwf d100
ıncf d1000,f
return
add64
movlw h'06'
addwf d10,f
movlw h'0a'
subwf d10,w
btfsc status,c
goto add640
goto add641

add640
movwf d10
ıncf d100,f
movlw h'0a'
subwf d100,w
btfss status,c
goto add641
movwf d100
ıncf d1000,f
add641
movlw h'04'
addwf d1,f
movlw h'0a'
subwf d1,w
btfss status,c
return
movwf d1
ıncf d10,f
movlw h'0a'
subwf d10,w
btfss status,c
return
movwf d10
ıncf d100,f
movlw h'0a'
subwf d100,w
btfss status,c
return
movwf d100
ıncf d1000,f
return
add128
call add8
call add8
call add16
call add32
call add64
return
Başa dön
Kayıt: 04 Ağu 2006
Mesajlar: 135

Offline
the_nobody
Tarih: 08 12 2006 13:56

teşekkurler!!


dostum çok teşekkur ederim ben 8bitlik arıyordum ama 10bitlik daha güzel oldu bende uzun uğraşlardan sonra 8bitlik olarak donusum elde ettim bunuda alta yazıyorum başka arkadaşların işine yararsa diye

donusumde yuzler,onlar,birler,bucuk registerleri bcd olarak elde edildi daha sonra bu ascıı cevrildi fakat nedense bunu hala lcd'ye gönderemedim bir altınada lcd kodlarımı yazacağım nerde hatam var yardımcı olursanız sevinirim..

LCD 8bitlik olarak PORTB ye bağlandı E ve RS PORTC ye bağlandı bunlarda hata olacağını sanmıyorum defalarca kontrol ettim...

lcd_reg equ h'26'
yuzler equ h'27'
onlar equ h'28'
bırler equ h'29'
nokta equ h'2a'
bucuk equ h'2b'
derece equ h'2c'
sıfır equ h'2d'

donusum clrf yuzler
clrf onlar
clrf bırler
clrf bucuk
clrf ust

btfsc alt,0
call bucuk_yaz
rrf alt
bcf alt,7
movf alt,w
movwf ust

movlw d'100'
subwf ust,w
btfss status,0
call yuzler_hesap

movlw d'10'
subwf ust,w
btfss status,0
call onlar_hesap

movf ust,w
movwf bırler

movlw d'48'
movwf yuzler
movwf onlar
movwf bırler
movwf bucuk
return



bucuk_yaz
movlw d'5'
movwf bucuk
return


yuzler_hesap
movlw d'100'
subwf alt,w
btfsc status,0
goto devamyuz
goto bitiryuz
devamyuz
ıncfsz yuzler,f
movlw d'100'
subwf ust,f
subwf alt,f
goto yuzler_hesap
bitiryuz
return

onlar_hesap
movlw d'10'
subwf alt,w
btfsc status,0
goto devamon
goto bitiron
devamon
ıncfsz onlar,f
movlw d'10'
subwf ust,f
subwf alt,f
goto onlar_hesap
bitiron
return



LCD_AYAR
CALL BEKLEYUZ
RS0
SAYİATA H'38'
E1
CALL BEKLEON
E1
CALL BEKLEON
E1
CALL BEKLEON
E1
CALL BEKLEON ;8X2 LİK VE 8BİTLİK LCD AYARLAMASI YAPILDI
SAYİATA H'01'
E1
CALL BEKLEON ;EKRAN TEMİZLENDİ
SAYİATA H'0C'
E1
CALL BEKLEON ;KURSOR GÖRÜNMEZ YAPILIP EKRAN AÇILDI
SAYİATA H'06'
E1
CALL BEKLEON ;KURSORU OTOMATİK ARTTIR

MOVLW H'80'
MOVLW LCD_REG

MOVLW '.'
MOVWF NOKTA

MOVLW 'C'
MOVWF DERECE

MOVLW H'00'
MOVWF SIFIR
RETURN



EKRANA_YAZDIR

RS0
MOVLW H'26'
MOVWF FSR
MOVF INDF,W
MOVWF PORTB
E1
CALL BEKLEON
RS1
LOOP INCF FSR,F
MOVF INDF,W
BTFSC STATUS,Z
GOTO ENDLCD_YAK
MOVWF PORTB
E1
CALL BEKLEON
GOTO LOOP
ENDLCD_YAK
RETURN
Başa dön
Kayıt: 22 Hzr 2006
Mesajlar: 151
Konum: izmit merkez
Offline
patan_mustafa
Tarih: 10 12 2006 02:24

dostum assemblerde program yazmaktan neden vazgeçmiyorsun? assembler de yazan hayli hayli diğer derleyicilerde de yazabilir. böylece lcd de göstermedi diye bi kaç gün uğraşmazsın. Kolaylıklardan faydalanmak lazım.

basic için örnek kod (LCDde a değişkenin içerisi yazar)

a=25
lcdout $fe,1,"sıcaklık=",#a

bu kadar kolaylık varken iki sayfa kod yazmak? neden
Başa dön
Kayıt: 04 Ağu 2006
Mesajlar: 135

Offline
the_nobody
Tarih: 10 12 2006 14:39

Dostum Gel bide bunu tez hocama anlat Very Happy yoksa şimdiye kac defa bitmişti

ama sorunumu hallettim assembler ın en pis yanı işte ufak bi hata gitti bütün program teşekkur ediyorum tkrr başarılar
Başa dön



LM35-p16f877 dönüşümden ASCII koduna cevirmek?


Benzer Konular

- Grafik LCD li LM35 sensörlü Termometre

- lm35 ve 16f877 ile termometre uygulaması(ccs c kullanılmıştır)
- LM35 ve Opamp ile digital termometre
- pdf i word e çevirmek - demo
- 16F873 lm35 termometre ve nem
- LM35 ve 16f877 ile lcd li termometre
- 16f877 lm35 (Isıtıcı kontrollü termometre)
- ingilizce siteyi türkceye cevirmek
- her AC voltajı 220 AC voltaja çevirmek.??????

- Evi 'çaktırmadan' sinemaya çevirmek

- pic den başka bir module nasıl ascii karakter gönderebilirim


Sitemize üyelik ve içeriğin indirilmesi tamamen ücretsizdir. Sitemizde paylaşılan tüm dokümanlar (Tezler, makaleler, ders notları, sınav soru cevaplar, projeler) paylaşımcıların bireysel çalışmaları olup telif hakları kendilerine aittir ya da açık bir şekilde kamusal alana yerleştirilmiş dokümanların birer kopyalarıdır. Kişilerin bireysel çalışmalarını sitemizde yüklemesinde, sitemizde paylaşıma teşvik eden puanlama sisteminin de etkisi büyüktür. Bunlara rağmen hala size ait olan ve burada bulunmasına izin vermediğiniz dokümanlar varsa iletişim bölümünden yöneticilere bildirmeniz durumunda derhal silineceklerdir.
Powered by phpBB | Translated by phpBB Türkiye | Ads by Google Adsense | Design by Crazy Bat based
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71