سلام آقای لاچینی
من سورس یه برنامه به وی بی لازم دارم که وقتی از max232 مقدار 0 دریافت میکنه یه تایمر شروع کنه به ثانیه انداختن.یه سورس قبلا یه نفر واسم نوشته اما کار نمیکنه اینو هم میزارم.
شرمنده اما خیلی عجله دارم اگه زحمتی نیست برام بنویسید.
Option Explicit
Dim tm As Long, LP As Long, tst As Long
Private Sub Command1_Click()
Label2.Caption = "0"
End Sub
Private Sub GetSetting()
Dim x As Long
If MSComm1.PortOpen Then
MSComm1.PortOpen = False
End If
LP = getdword(HKEY_CURRENT_USER, "Software\HP", "Loop")
If LP = 0 Then LP = 2
x = getdword(HKEY_CURRENT_USER, "Software\HP", "COMPort")
If x <> 0 Then
MSComm1.CommPort = x
Else
MSComm1.CommPort = 1
End If
If Not MSComm1.PortOpen Then
MSComm1.PortOpen = True
End If
End Sub
Private Sub Form_Load()
' Fire Rx Event Every Two Bytes
MSComm1.RThreshold = 1
' When Inputting Data, Input 2 Bytes at a time
MSComm1.InputLen = 1
' 2400 Baud, No Parity, 8 Data Bits, 1 Stop Bit
MSComm1.Settings = "2400,N,8,1"
' Make sure DTR line is low to prevent Stamp reset
MSComm1.DTREnable = False
GetSetting
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
End Sub
Private Sub MSComm1_OnComm()
Dim sData As String
Dim lByte As Integer
' If Rx Event then get data and process
If MSComm1.CommEvent = comEvReceive Then
sData = MSComm1.Input ' Get data
lByte = Asc(sData) ' get byte
If lByte = Asc("1") Then ' Number 1 Ascii Code
Timer1.Enabled = True
DoEvents
tst = tst + 1
If tst = LP Then
Timer1.Enabled = False
End If
End If
End If
End Sub
Private Sub opt_Click()
optionfrm.Show (vbModal)
GetSetting
End Sub
Private Sub Timer1_Timer()
tm = tm + 1
Label2.Caption = Str(tm)
End Sub