ALakurt
Üye
- Katılım
- 7 Tem 2008
- Mesajlar
- 47
- Puanları
- 1
- Yaş
- 40
arkadaşlar aşapıdaki kodları hexe cevirecek bi arkadas varmı. uygun program ile ben cevıremedım de.
'*************************************
'* Name : VOLTMETRE.BAS *
'* Author : [Erol Tahir Erdal] *
'* Notice : Copyright (c) 2005 [ETE] *
'* : All Rights Reserved *
'* Date : 01.03.2005 *
'* Version : 1.0 *
'* Notes : *
'* : *
'******************************************
DEFINE LCD_DREG PORTB 'LCD data bacakları hangi porta bağlı?
DEFINE LCD_DBIT 4 'LCD data bacakları hangi bitten başlıyor?
DEFINE LCD_RSREG PORTB 'LCD RS Bacağı Hangi Porta bağlı ?
DEFINE LCD_RSBIT 1 'LCD RS bacağı Hangi Bite bağlı ?
DEFINE LCD_EREG PORTB 'LCD Enable Bacağı Hangi Porta bağlı?
DEFINE LCD_EBIT 3 'LCD Enable Bacağı Hangi bite bağlı ?
define lcd_RWREG PORTB
define LC_RWBIT 2
DEFINE LCD_BITS 4 'LCD 4 bit mi yoksa 8 bit olarak bağlı?
DEFINE LCD_LINES 2 'LCD Kaç sıra yazabiliyor
DEFINE ADC_BITS 10 ' Set number of bits in result
DEFINE ADC_CLOCK 3 ' Set clock source (3=rc)
DEFINE ADC_SAMPLEUS 50 ' Set sampling time in uS
@ DEVICE pic16F877
@ DEVICE pic16F877, WDT_off
@ DEVICE pic16F877, PWRT_ON
@ DEVICE pic16F877, PROTECT_OFF
@ DEVICE pic16F877, XT_OSC
ADCON1=%10001110
TRISA=%00010011
TRISB=0
TRISC=0
VOLT VAR WORD
HAM VAR WORD
HVD var word
AMPER var word
MV VAR BYTE
MA VAR BYTE
PORTB=0
PORTA=0
VOLT=0
PAUSE 100
LCDOUT $FE,1
BASLA:
ADCIN 0,HAM
BAK: IF ADCON0.2=1 THEN BAK
PAUSE 5
GOSUB HESAPV
ADCIN 1,HAM
PAUSE 5
GOSUB HESAPA
GOSUB EKRAN
PAUSE 500
GOTO BASLA
EKRAN:
' LCDOUT$FE,2,"HAM=",#HAM 'gerekirse okanan ham değerini görmek için
LCDOUT $FE,$02,"VOLT =",DEC VOLT,",",DEC1 MV 'dec2 yazdık çünki virgülden sonra 2 hane hassasiyetimiz var.
LCDOUT $FE,$C0,"AMPER=",DEC2 AMPER,",",DEC2 MA
' LCDOUT $FE,$C0,"AMPER=",DEC HVD
RETURN
HESAPV: '0-25V değerlerini oukuyup göstermek içindir
HVD=((HAM+1)*/875)/10 'bu ifade aslında (HAM+1)*625/256 nın karşılığıdır
'CARPAN=625 yani ((25x10)/1024)*256 sonuç 62,5 çıktığı için 625 almak için
' 10 yerine 100 ile çarpıyoruz. yani CARPAN=((25*100)/1024)*256
VOLT=HVD/10 'başlangıçta 100 ile çarpılmış halini hesaplamış idik ohalde 100 e böleceğiz
MV=(HVD)//10 'seaplanan sayını 100 bölünmesinden kalan sayı ondalık hanesidir
RETURN
' Formül;
' Okunacak Maksimum Volt=OMV olsun
' CARPAN= ((OMV*10)/1024) * 256 veya ((OMV*100)/1024)*256
' CARPAN değerini 3 haneli rakam olarak kullanmaya gayret edin.
' şayet 62,5 gibi 2 haneli bir rakam çıkar ise bunu 625 kabul edin ve
' (OMV * 10) değerini (OMV * 100) olarak kullanın. Sonuçta hesaplanan volt değerini
' 10 yerine 100'e bölmeniz gerekecek tabiiki. OV hesabında da Yine 100 bölünmüş
' değerden kalanı hesaplamak gerekecek. Yukarıdaki örnekte olduğu gibi.
' Hesaplanacak Volt Değeri =HVD olsun
' ADC den okunan Değer HAM olsun
' HVD=(HAM+1)*/CARPAN bulunacak değer gerçek volt değerinin 10 ile çarpılmış halidir.
' Tamsayı VOLT (TV)= HVD/10 veya TV=HVD/100
' Ondalık VOLT (OV)= HVD//10 veya OV=HVD//100
'Ekrana yazdırırken;
' LCDOUT $FE,2,"VOLT:", DEC TV,",",DEC1 OV veya DEC2 OV olacaktır
HESAPA:
HVD=(HAM+1)*/250
AMPER=HVD/100
MA=HVD//100
RETURN
'*************************************
'* Name : VOLTMETRE.BAS *
'* Author : [Erol Tahir Erdal] *
'* Notice : Copyright (c) 2005 [ETE] *
'* : All Rights Reserved *
'* Date : 01.03.2005 *
'* Version : 1.0 *
'* Notes : *
'* : *
'******************************************
DEFINE LCD_DREG PORTB 'LCD data bacakları hangi porta bağlı?
DEFINE LCD_DBIT 4 'LCD data bacakları hangi bitten başlıyor?
DEFINE LCD_RSREG PORTB 'LCD RS Bacağı Hangi Porta bağlı ?
DEFINE LCD_RSBIT 1 'LCD RS bacağı Hangi Bite bağlı ?
DEFINE LCD_EREG PORTB 'LCD Enable Bacağı Hangi Porta bağlı?
DEFINE LCD_EBIT 3 'LCD Enable Bacağı Hangi bite bağlı ?
define lcd_RWREG PORTB
define LC_RWBIT 2
DEFINE LCD_BITS 4 'LCD 4 bit mi yoksa 8 bit olarak bağlı?
DEFINE LCD_LINES 2 'LCD Kaç sıra yazabiliyor
DEFINE ADC_BITS 10 ' Set number of bits in result
DEFINE ADC_CLOCK 3 ' Set clock source (3=rc)
DEFINE ADC_SAMPLEUS 50 ' Set sampling time in uS
@ DEVICE pic16F877
@ DEVICE pic16F877, WDT_off
@ DEVICE pic16F877, PWRT_ON
@ DEVICE pic16F877, PROTECT_OFF
@ DEVICE pic16F877, XT_OSC
ADCON1=%10001110
TRISA=%00010011
TRISB=0
TRISC=0
VOLT VAR WORD
HAM VAR WORD
HVD var word
AMPER var word
MV VAR BYTE
MA VAR BYTE
PORTB=0
PORTA=0
VOLT=0
PAUSE 100
LCDOUT $FE,1
BASLA:
ADCIN 0,HAM
BAK: IF ADCON0.2=1 THEN BAK
PAUSE 5
GOSUB HESAPV
ADCIN 1,HAM
PAUSE 5
GOSUB HESAPA
GOSUB EKRAN
PAUSE 500
GOTO BASLA
EKRAN:
' LCDOUT$FE,2,"HAM=",#HAM 'gerekirse okanan ham değerini görmek için
LCDOUT $FE,$02,"VOLT =",DEC VOLT,",",DEC1 MV 'dec2 yazdık çünki virgülden sonra 2 hane hassasiyetimiz var.
LCDOUT $FE,$C0,"AMPER=",DEC2 AMPER,",",DEC2 MA
' LCDOUT $FE,$C0,"AMPER=",DEC HVD
RETURN
HESAPV: '0-25V değerlerini oukuyup göstermek içindir
HVD=((HAM+1)*/875)/10 'bu ifade aslında (HAM+1)*625/256 nın karşılığıdır
'CARPAN=625 yani ((25x10)/1024)*256 sonuç 62,5 çıktığı için 625 almak için
' 10 yerine 100 ile çarpıyoruz. yani CARPAN=((25*100)/1024)*256
VOLT=HVD/10 'başlangıçta 100 ile çarpılmış halini hesaplamış idik ohalde 100 e böleceğiz
MV=(HVD)//10 'seaplanan sayını 100 bölünmesinden kalan sayı ondalık hanesidir
RETURN
' Formül;
' Okunacak Maksimum Volt=OMV olsun
' CARPAN= ((OMV*10)/1024) * 256 veya ((OMV*100)/1024)*256
' CARPAN değerini 3 haneli rakam olarak kullanmaya gayret edin.
' şayet 62,5 gibi 2 haneli bir rakam çıkar ise bunu 625 kabul edin ve
' (OMV * 10) değerini (OMV * 100) olarak kullanın. Sonuçta hesaplanan volt değerini
' 10 yerine 100'e bölmeniz gerekecek tabiiki. OV hesabında da Yine 100 bölünmüş
' değerden kalanı hesaplamak gerekecek. Yukarıdaki örnekte olduğu gibi.
' Hesaplanacak Volt Değeri =HVD olsun
' ADC den okunan Değer HAM olsun
' HVD=(HAM+1)*/CARPAN bulunacak değer gerçek volt değerinin 10 ile çarpılmış halidir.
' Tamsayı VOLT (TV)= HVD/10 veya TV=HVD/100
' Ondalık VOLT (OV)= HVD//10 veya OV=HVD//100
'Ekrana yazdırırken;
' LCDOUT $FE,2,"VOLT:", DEC TV,",",DEC1 OV veya DEC2 OV olacaktır
HESAPA:
HVD=(HAM+1)*/250
AMPER=HVD/100
MA=HVD//100
RETURN