Ynt: PİC'ten VB'e 7 adet voltaj gönderimi...

Başlatan iskender1984, 13 Temmuz 2012, 09:51:03

iskender1984

Arkadaşlar bikaçgün önce bu konu hakkında bir paylaşım açtım burada...Ama ne yazikki bilgisi ve tecrübesi olduğuna inandığım biçok arkadaş beni yardımlarından mahrum bıraktılar..Neyseki konuyu çözüme bağladım...İhtiyacı olan arkadaşlar için paylaşıyorum...

DEFINE  OSC  20
DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
DEFINE HSER_SPBRG 129 ' 9600 Baud @ 20MHz, 0,16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically




TRISA=255       'A PORTUNUN TAMAMI GİRİŞ
trise=255
trisb=255


'*****ADC TANIMLAMALAR*****     
DEFINE ADC_BITS        10        'ADC 10 BİTLİK
DEFINE ADC_CLOCK       0
ADC_DEGERI0 VAR WORD           
ADC_DEGERI1 VAR WORD         
ADC_DEGERI2 VAR WORD             
ADC_DEGERI3 VAR WORD           
adc_degeri4 var word
adc_degeri5 var word
adc_degeri6 var word
GERILIM0 VAR WORD               
GERILIM1 VAR WORD             
GERILIM2 VAR WORD               
GERILIM3 VAR WORD   
gerilim4 var word
gerilim5 var word
gerilim6 var word
ADCON1=%10000010               


BASLIYORUZ:



ADCIN 0,ADC_DEGERI0         
GERILIM0=ADC_DEGERI0*49/10

ADCIN 1,ADC_DEGERI1         
GERILIM1=ADC_DEGERI1*49/10

ADCIN 2,ADC_DEGERI2         
GERILIM2=ADC_DEGERI2*49/10

ADCIN 3,ADC_DEGERI3       
GERILIM3=ADC_DEGERI3*49/10

ADCIN 4,ADC_DEGERI4       
GERILIM4=ADC_DEGERI4*49/10

ADCIN 5,ADC_DEGERI5       
GERILIM5=ADC_DEGERI5*49/10

ADCIN 6,ADC_DEGERI6       
GERILIM6=ADC_DEGERI6*49/10


hserout ["a1" , dec Gerilim0]
pause 100

hserout ["a2" , dec Gerilim1]
pause 100

hserout ["a3" , dec Gerilim2]
pause 100

hserout ["a4" , dec Gerilim3]
pause 100

hserout ["a5" , dec Gerilim4]
pause 100

hserout ["a6" , dec Gerilim5]
pause 100

hserout ["a7" , dec Gerilim6]
pause 100


GOTO BASLIYORUZ

END


vb tarafı:




Private Sub Form_Load()

MSComm1.CommPort = 3
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputLen = 6
MSComm1.PortOpen = True

End Sub

Private Sub Timer1_Timer()
Dim gelen, bas, tamam As String

gelen = MSComm1.Input
bas = Mid(gelen, 1, 2) '

If bas = "a1" Then
tamam = Mid(gelen, 3, 7)
Text1.Text = tamam

If tamam >= 4000 Then
Label1.Caption = "OK"
Else
Label1.Caption = "hata"
End If
End If

If bas = "a2" Then
tamam = Mid(gelen, 3, 7)
Text2.Text = tamam

End If

If bas = "a3" Then
tamam = Mid(gelen, 3, 7)
Text3.Text = tamam

End If

If bas = "a4" Then
tamam = Mid(gelen, 3, 7)
Text4.Text = tamam

End If

If bas = "a5" Then
tamam = Mid(gelen, 3, 7)
Text5.Text = tamam

End If

If bas = "a6" Then
tamam = Mid(gelen, 3, 7)
Text6.Text = tamam

End If

If bas = "a7" Then
tamam = Mid(gelen, 3, 7)
Text7.Text = tamam

End If


End Sub

mesaj birleştirme:: 13 Temmuz 2012, 09:55:57

Bu arada timer interval değeri 150 olacak