- •Постановка задачи
- •Методика решения
- •Прототипы
- •Устройство и принцип работы Микроконтроллеры в общем
- •Микроконтроллер в утройстве
- •Описание выводов
- •Организация памяти
- •Хранение текста
- •Описание выводов
- •Управление памятью
- •Вывод текста
- •Подключение
- •Предложения по применению
- •Технические характеристики
- •.Db " Downloading aborted! " Программа на компьютере Основная форма (frmMain)
- •Форма передачи (frmSend)
Форма передачи (frmSend)
Private Sub btnCancel_Click()
OpStop = True
If frmMain.Comm.PortOpen Then frmMain.Comm.PortOpen = False
frmSend.Hide
End Sub
Private Sub Form_Activate()
Dim tmpstr As String, Err As Boolean, i As Byte
PackCnt = 1: WasPackCnt = 1: OpStop = False: OK = False: Err = False: Ticks = 0
barFile.Value = 0: lblPackNum = "1/" & Packs: lblSpeed = 0 & " b/s": lblTimeL = "0 s"
ApproxSpeed = 0: Speed = 0: SummSpeed = 0
If MsgBox("Get ready and press OK neither press Cancel.", vbOKCancel, "Send aknowledge") <> vbOK Then
frmSend.Hide
Else
frmMain.Comm.PortOpen = True
Do
frmMain.Comm.Output = Chr(Packs \ 256)
Delay (100)
If frmMain.Comm.InBufferCount <> 0 Then lblRcvd = Asc(frmMain.Comm.Input) Else lblRcvd = 257
If Val(lblRcvd) <> Packs \ 256 Then Err = True Else Err = False
Delay (10)
frmMain.Comm.Output = Chr(Packs - (Packs \ 256) * 256)
Delay (100)
If frmMain.Comm.InBufferCount <> 0 Then lblRcvd = Asc(frmMain.Comm.Input) Else lblRcvd = 257
If Val(lblRcvd) <> Packs - (Packs \ 256) * 256 Then Err = True
If Err Then If MsgBox("Device not connected or working not properly. Try again?", vbRetryCancel, "Error") = vbCancel Then Call btnCancel_Click: Exit Sub
Loop Until Not Err
Timer2.Enabled = True
barFile.Max = Packs
Set SFile = FSO.OpenTextFile(Filename, ForReading, False, TristateFalse)
Delay (100)
If frmMain.Comm.InBufferCount <> 0 Then lblRcvd = Asc(frmMain.Comm.Input) Else lblRcvd = 257
Delay (10)
Do Until PackCnt = Packs Or OpStop
frmMain.Comm.Output = SFile.Read(64)
Do: DoEvents: Loop Until frmMain.Comm.InBufferCount <> 0
lblRcvd = Asc(frmMain.Comm.Input)
PackCnt = PackCnt + 1
barFile.Value = PackCnt: lblPackNum = PackCnt & "/" & Packs
'Delay (10)
Loop
tmpstr = SFile.Read(64): For i = 1 To 64 - Len(tmpstr): tmpstr = tmpstr + " ": Next i
frmMain.Comm.Output = tmpstr
frmMain.Comm.PortOpen = False
x = MsgBox("File has been sent! ", vbInformation, "Completed")
frmSend.Hide
End If
End Sub
Private Sub Label5_Click()
Timer2.Enabled = Not Timer2.Enabled
End Sub
Private Sub Timer1_Timer()
OK = True
End Sub
Private Sub Timer2_Timer()
Dim Speed As Integer
If Ticks \ 4 <> 0 Then Ticks = 0: ApproxSpeed = 0: SummSpeed = 0
Speed = (PackCnt - WasPackCnt) * 64 * 4
If Speed <> 0 Then Ticks = Ticks + 1 Else Ticks = 1
SummSpeed = SummSpeed + Speed
ApproxSpeed = SummSpeed / Ticks
lblSpeed = ApproxSpeed & " b/s"
If ApproxSpeed <> 0 Then lblTimeL = ((Packs - PackCnt) * 64 \ ApproxSpeed) + 1 & " s"
WasPackCnt = PackCnt
End Sub