zidane07 | | Tarih: 27.12.2007, 19:03 Mesaj konusu: "+" ve "-" değer ölçen voltmetre - yardı | |
| arkadaşlar forumdaki bu devreyi kurdum ama eksi değerleri ölçemiyorum.saolsun bazı arkadaşlar 7106,7107li devreleri önerdiler.fakat ben hala çalıştıramadım. aşağıdaki programda bi oynama yapıp bunu düzeltebilirmiyiz.yaparsak mükemmel olcak.ben protondan fazla anlamıyorum.yardımlarınızı bekliyorum.şimdiden saolun......
devrenin şekli
devıce 16f876
declare xtal 4
declare lcd_dtpın portc.4
declare lcd_rspın portc.1
declare lcd_enpın portc.0
declare lcd_ınterface 4
declare lcd_lınes 2
delayms 200
adın_res = 10
adın_tad = frc
adın_stıme = 50
dım adc_kanal1 as float
dim fullbars as byte
dim barval as byte
dim partbar as byte
dim pad as byte
dım temp1 as byte
dım w1 as word
dım w2 as float
dım fld0 as float
dım olcum_voltajı as 30
dım adc_orneksayısı as 50
goto reset_vector
prj_loop:
asm
nop
nop
clrwdt
nop
nop
endasm
call adc_oku
delayms 1
goto prj_loop
reset_vector:
asm
bcf ıntcon,gıe
btfsc ıntcon,gıe
goto reset_vector
endasm
delayms 1000
trısa=%11111111
adcon1=%10000000
ıntcon=%00100000
print $fe,$2
print " 0-30 voltmetre"
delayms 1500
print $fe,$c0
prınt " maxiboost"
delayms 500
cls
print $fe,64,rep $0\8
print $0,rep $10\6,$0
print $0,rep $14\6,$0
print $0,rep $15\6,$0
cls
temp1=adc_orneksayısı
adc_kanal1=0
goto prj_loop
adc_oku:
adc_oku_1:
adcın 0,w1
adc_kanal1=adc_kanal1+w1
temp1=temp1-1
ıf temp1>0 then return
adc_kanal1=adc_kanal1/adc_orneksayısı
w2=olcum_voltajı
w2=w2/1023
adc_kanal1=adc_kanal1*w2
call ekranı_yaz
temp1=adc_orneksayısı
adc_kanal1=0
return
ekranı_yaz:
fld0=adc_kanal1
prınt $fe, $82
prınt "dc "
gosub dec_fld0
barval = (fld0 /0.55) + 1
gosub bargraph
dec_fld0:
select fld0
case < 10.0 : prınt dec2 fld0, " volt"," "
case < 100.0 : prınt dec2 fld0, " volt"," "
case < 1000.0 : prınt dec2 fld0, " volt"," "
case else : prınt dec2 fld0, " volt",""
endselect
return
bargraph:
select barval
fullbars = (barval min 60) / 3
partbar = (barval min 60) // 3
pad = 19 - fullbars
prınt $fe, $c0
print rep $03\fullbars, partbar, rep " "\pad
endselect
return
end
|
|