音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

MCS51 - PC

作者:mrwyk 欄目:單片機
MCS51 - PC
我要用vB 編PC的串行通信程序,有那位老師又現(xiàn)成的程序?最好連51的程序也一起發(fā)出來謝謝了。51的程序要用匯編寫的!謝謝。

2樓: >>參與討論
hunao
自己編吧!給你是害你。!
 
3樓: >>參與討論
computer00
找?guī)妆綱B的書看看,再找?guī)妆締纹瑱C的書看看~~~~
 
4樓: >>參與討論
mrwyk
各位大哥
各位大哥你們只要把主要的程序告訴我就行了。我不要多的!

5樓: >>參與討論
computer00
re
Option Explicit

Private Sub Test_COM2()
On Error GoTo comm_error
MSComm1.CommPort = 2
MSComm1.PortOpen = True
MSComm1.PortOpen = False
Exit Sub
comm_error:
Comm_Status = Comm_Status + 2
Exit Sub
Resume Next
End Sub
Private Sub Test_COM1()
On Error GoTo comm_error
  MSComm1.CommPort = 1
  MSComm1.PortOpen = True
  MSComm1.PortOpen = False
Exit Sub
comm_error:
Comm_Status = Comm_Status + 1
Exit Sub
Resume Next
End Sub


Private Sub Form_Load()
On Error GoTo comm_error
Comm_Using = 0
Comm_Status = 0
Call Test_COM1
Call Test_COM2
If Comm_Status = 3 Then
  MsgBox "COM1和COM2都已經(jīng)被其他設(shè)備占用!請將網(wǎng)絡(luò)分析儀連接到您的電腦后,再啟動該軟件", vbOKOnly + vbCritical
  Timer3.Interval = 100
  Timer3.Enabled = True
End If
If Comm_Status <> 1 And Comm_Status <> 3 Then
MSComm1.CommPort = 1
MSComm1.Settings = "2400,N,8,1"
MSComm1.InputLen = 1
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
MSComm1.Output = "T"
Timer1.Interval = 2000
Timer1.Enabled = True
Timer2.Interval = 1000
Timer2.Enabled = True
End If
Exit Sub
comm_error:
MsgBox "打開串口錯誤!", vbOKOnly + vbCritical, "串口狀態(tài)"
Unload Me
End Sub

Private Sub MSComm1_OnComm()
On Error Resume Next
Dim Receive_Point() As Byte
Dim Receive_Data As Byte
If MSComm1.CommEvent = comEvReceive Then
Receive_Point = MSComm1.Input
Receive_Data = Receive_Point(0)
If Receive_Data = &H41 Then
  Timer1.Enabled = False
  Timer2.Enabled = False
  Form3.Visible = False
  Comm_Using = MSComm1.CommPort
  MSComm1.PortOpen = False
  Load Form1
  Form1.Visible = True
  Timer3.Interval = 100
  Timer3.Enabled = True
End If
End If
End Sub

Private Sub Timer1_Timer()
On Error Resume Next
Dim return_from_msgbox As Byte
Timer1.Enabled = False
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
return_from_msgbox = MsgBox("                      在COM1和COM2口未發(fā)現(xiàn)設(shè)備。" + Chr(10) + Chr(10) + "退出該程序,請按“終止”;需要重試,請按“重試”;繼續(xù)運行,按“忽略”", vbAbortRetryIgnore + vbQuestion + vbDefaultButton3, "未發(fā)現(xiàn)設(shè)備")
SELECT Case return_from_msgbox
Case 3
  Unload Me
Case 4
  Call Form_Load
Case 5
  Form3.Visible = False
  Load Form1
  Form1.Visible = True
  Unload Me
End SELECT
End Sub

Private Sub Timer2_Timer()
On Error Resume Next
Timer2.Enabled = False
MSComm1.PortOpen = False
If Comm_Status <> 2 And Comm_Status <> 3 Then
  MSComm1.CommPort = 2
  MSComm1.Settings = "2400,N,8,1"
  MSComm1.InputLen = 1
  MSComm1.RThreshold = 1
  MSComm1.PortOpen = True
  MSComm1.Output = "T"
End If
End Sub

Private Sub Timer3_Timer()
Unload Me
End Sub



Option Explicit
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As LONG, ByVal hWndInsertAfter As LONG, ByVal X As LONG, ByVal Y As LONG, ByVal cx As LONG, ByVal cy As LONG, ByVal wFlags As LONG) As LONG
Dim ReFlag As Boolean
Dim ImFlag As Boolean
Dim TmFlag As Boolean
Dim sRe As String
Dim sIm As String
Dim sTm As String
Dim Ratio As Double
Dim OutVoltage As Integer
Dim InGain As Integer
Dim PointCount As Integer
Dim Buffer(1 To 13) As Byte
Dim SentCount As Integer
Dim Finish As Boolean
Dim Scope As Integer


Public Function COM1_SELECT()
On Error GoTo comm_error
COM1.Checked = True
COM2.Checked = False
If Comm_Status = 1 Then
MsgBox "COM1口已經(jīng)被其它設(shè)備占用!只能用COM2口。", vbOKOnly + vbCritical, "串口狀態(tài)"
COM2_SELECT
End If
If Comm_Status = 3 Then
MsgBox "COM1和COM2口都已經(jīng)被其它設(shè)備占用!只能退出程序。" + Chr(10) + Chr(10) + "請將設(shè)備連接到COM1或COM2后再啟動該程序。", vbOKOnly + vbCritical, "串口狀態(tài)"
Unload Me
Exit Function
End If
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = 1
MSComm1.InputLen = 20
MSComm1.InputMode = comInputModeBinary
MSComm1.Settings = "2400,n,8,1"
MSComm1.RThreshold = 20
MSComm1.PortOpen = True
Exit Function
comm_error:
MsgBox "打開串口遇到一個錯誤。 ", vbOKOnly + vbCritical, "串口錯誤"
Resume Next
End Function

Public Function COM2_SELECT()
On Error GoTo comm_error
COM1.Checked = False
COM2.Checked = True
If Comm_Status = 2 Then
MsgBox "COM2口已被其它設(shè)備占用!只能用COM1口。", vbOKOnly + vbCritical, "串口狀態(tài)"
COM1_SELECT
Exit Function
End If
If Comm_Status = 3 Then
MsgBox "COM1和COM2口都已經(jīng)被其它設(shè)備占用!只能退出程序。" + Chr(10) + Chr(10) + "請將設(shè)備連接到COM1或COM2后再啟動該程序。", vbOKOnly + vbCritical, "串口狀態(tài)"
Unload Me
Exit Function
End If
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
MSComm1.CommPort = 2
MSComm1.InputLen = 20
MSComm1.InputMode = comInputModeBinary
MSComm1.Settings = "2400,n,8,1"
MSComm1.RThreshold = 20
MSComm1.PortOpen = True
Exit Function
comm_error:
MsgBox "打開串口遇到一個錯誤。", vbOKOnly + vbCritical, "串口錯誤"
End Function

Private Sub Get_Ratio()
SELECT Case Combo1.Text
  Case "100"
   Ratio = 100
  Case "200"
   Ratio = 200
  Case "500"
   Ratio = 500
  Case "1K"
   Ratio = 1000
  Case "2K"
   Ratio = 2000
  Case "5K"
   Ratio = 5000
  Case "10K"
   Ratio = 10000
Case "20K"
   Ratio = 20000
  Case "50K"
   Ratio = 50000
  Case "100K"
   Ratio = 100000
  Case "200K"
   Ratio = 200000
  Case "500K"
   Ratio = 500000
End SELECT
End Sub

Private Sub Get_OutVoltage()
SELECT Case Combo3.Text
  Case "2Vp-p"
   OutVoltage = &H0
  Case "1Vp-p"
   OutVoltage = &H6
  Case "0.4Vp-p"
   OutVoltage = &H4
  Case "0.2Vp-p"
   OutVoltage = &H2
End SELECT
End Sub
Private Sub Get_InGain()
SELECT Case Combo4.Text
  Case "X1"
   InGain = &H1
Case "X5"
   InGain = &H0
End SELECT
End Sub

Private Sub Draw_Wave()
Dim i As Integer
For i = 2 To 500
  Display.Line ((i - 1) * 10, Display.Height / 2 - Impedance(i - 1) * 500 / Ratio)-(i * 10, Display.Height / 2 - Impedance(i) * 500 / Ratio), Wave_Color
  Display.Line ((i - 1) * 10, Display.Height / 2 + 1500 - Phase(i - 1) * 100 / 9)-((i * 10), Display.Height / 2 + 1500 - Phase(i) * 100 / 9), Phase_Color
Next i
End Sub

Private Sub About_Click()
Load Form2
Form2.Show
End Sub

Private Sub COM1_Click()
Call COM1_SELECT<
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
關(guān)于P1口帶負載的問題
C51如何訪問外部RAM6264
CD4051/2/3開關(guān)電阻大約等于多少?
問一個關(guān)于51的奇怪問題
大家?guī)臀铱纯囱訒r程序
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號