?? pc&mcs51.frm
字號(hào):
VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Begin VB.Form COMForm
BorderStyle = 3 'Fixed Dialog
Caption = "PC機(jī)與單片機(jī)串口通信"
ClientHeight = 2235
ClientLeft = 45
ClientTop = 330
ClientWidth = 6330
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 2235
ScaleWidth = 6330
ShowInTaskbar = 0 'False
StartUpPosition = 3 '窗口缺省
Begin MSCommLib.MSComm MSComm1
Left = 2760
Top = 1560
_ExtentX = 1005
_ExtentY = 1005
_Version = 393216
End
Begin VB.Timer Timer1
Left = 5280
Top = 1680
End
Begin VB.CommandButton Cmdquit
Caption = "關(guān)閉程序"
Height = 435
Left = 3960
TabIndex = 3
Top = 1560
Width = 1035
End
Begin VB.CommandButton Cmdsend
Caption = "發(fā)送字符"
Height = 435
Left = 1080
TabIndex = 2
Top = 1560
Width = 1035
End
Begin VB.TextBox TextReceive
Height = 795
Left = 3270
MultiLine = -1 'True
ScrollBars = 2 'Vertical
TabIndex = 1
Top = 480
Width = 3015
End
Begin VB.TextBox Textsend
Height = 795
Left = 30
MultiLine = -1 'True
ScrollBars = 2 'Vertical
TabIndex = 0
Top = 450
Width = 3015
End
Begin VB.Label Label2
Caption = "顯示接收字符區(qū):"
Height = 195
Left = 3300
TabIndex = 5
Top = 180
Width = 2415
End
Begin VB.Label Label1
Caption = "輸入發(fā)送字符區(qū):"
Height = 195
Left = 60
TabIndex = 4
Top = 180
Width = 1695
End
End
Attribute VB_Name = "COMForm"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
' 初始化程序:主要完成對(duì)串口的設(shè)置,包括選擇串口、設(shè)置波特率、設(shè)置數(shù)據(jù)格式、打開串口等。
' 注意:在程序開始之前,必須清空發(fā)送和接收緩沖區(qū),以免出錯(cuò)。
Private Sub Form_Load()
MSComm1.Setting = "9600,n,8,1," ' 設(shè)置波特率和發(fā)送字符格式
MSComm1.CommPort = 1 ' 設(shè)置通訊串口
MSComm1.InputLen = 0 ' 設(shè)置或返回一次從接收緩沖區(qū)中讀取字節(jié)數(shù),0表示一次讀取所有數(shù)據(jù)
MSComm1.InBufferSize = 512 ' 設(shè)置接收緩沖區(qū)512Byte
MSComm1.InBufferCount = 0
MSComm1.OutBufferSize = 512 ' 設(shè)置發(fā)送緩沖區(qū)512Byte
MSComm1.OutBufferCount = 0
MSComm1.RThreshold = 1 ' 每個(gè)字符到接收緩沖區(qū)都觸發(fā)接收事件
MSComm1.SThreshold = 1
MSComm1.PortOpen = True ' 打開串口
End Sub
'發(fā)送數(shù)據(jù)
'PC機(jī)向單片機(jī)發(fā)送一個(gè)"S",表示通信開始,然后緊接著又發(fā)送9個(gè)字符,
'其中最后一個(gè)字符是前面9個(gè)字符(包括"S")的校驗(yàn)和。
'單片機(jī)正確接收到10個(gè)字符后,把10個(gè)字符重新又送回來。
Private Sub Cmdsend_C1ick()
Varbuffet = "S"
MSComm1.Ouput = varbuffe
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Outputsignal = Str(Textsend.Text) '向單片機(jī)發(fā)送其它數(shù)據(jù)
temp(1) = CByte(Outputsignal)
varbuffer = temp
MSComm1.Output = varbuffer
Timer1.Enabled = False
End Sub
' 接收單片機(jī)發(fā)送的數(shù)據(jù),并顯示
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent ' 設(shè)置oncomm事件,讀取片機(jī)內(nèi)存的值
Case comEvReceive
Inputsignal = MSComm1.Input
TextReceive.Text = Asc(Inputsignal) ' 單片機(jī)內(nèi)存的值用TextReceive顯示出
Case Else
End Select
End Sub
'關(guān)閉串口,關(guān)閉程序
Private Sub Cmdquit_Click()
MSComm1.PortOpen = False
Unload Me
End Sub
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -