?? frmmain.frm
字號:
VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Begin VB.Form Form1
BorderStyle = 5 'Sizable ToolWindow
Caption = "DS18B20溫度取值程序 河南省四方藥業有限公司"
ClientHeight = 5055
ClientLeft = 45
ClientTop = 60
ClientWidth = 7320
BeginProperty Font
Name = "楷體_GB2312"
Size = 7.5
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 21.063
ScaleMode = 4 'Character
ScaleWidth = 61
ShowInTaskbar = 0 'False
StartUpPosition = 2 '屏幕中心
Begin VB.PictureBox picVoltage
BackColor = &H00C0FFC0&
BeginProperty Font
Name = "宋體"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00C0C0FF&
Height = 2805
Left = 585
ScaleHeight = 2745
ScaleWidth = 6480
TabIndex = 10
Top = 1485
Width = 6540
Begin VB.Label Label2
BackColor = &H00C0FFC0&
Caption = "河南省四方藥業有限公司 王學民"
BeginProperty Font
Name = "楷體_GB2312"
Size = 15.75
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000000FF&
Height = 495
Left = 480
TabIndex = 11
Top = 120
Width = 5775
End
End
Begin VB.CommandButton cmdStart
Caption = "開始測溫"
BeginProperty Font
Name = "宋體"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 600
Left = 4905
TabIndex = 5
Top = 90
Width = 1590
End
Begin VB.Timer Timer1
Enabled = 0 'False
Interval = 100
Left = 135
Top = 900
End
Begin VB.CommandButton cmdOpenCOM
Caption = "打開通信端口"
BeginProperty Font
Name = "宋體"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 600
Left = 3195
TabIndex = 4
Top = 90
Width = 1590
End
Begin VB.ComboBox cmbCOM
BackColor = &H00FFC0C0&
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000000FF&
Height = 405
Left = 450
TabIndex = 3
Text = "Combo1"
Top = 405
Width = 1845
End
Begin VB.CommandButton cmdEnd
Caption = "結束"
BeginProperty Font
Name = "宋體"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 600
Left = 4950
TabIndex = 0
Top = 810
Width = 1590
End
Begin MSCommLib.MSComm MSComm1
Left = 3960
Top = 900
_ExtentX = 1005
_ExtentY = 1005
_Version = 393216
DTREnable = -1 'True
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "50"
BeginProperty Font
Name = "宋體"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 240
Index = 3
Left = 135
TabIndex = 9
Top = 1440
Width = 240
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "0"
BeginProperty Font
Name = "宋體"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 240
Index = 2
Left = 225
TabIndex = 8
Top = 4050
Width = 120
End
Begin VB.Label lblMsg
BackColor = &H00C0FFFF&
BorderStyle = 1 'Fixed Single
Caption = "作者:王學民 EMAIL:wxmlx@126.com"
BeginProperty Font
Name = "宋體"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000000FF&
Height = 420
Left = 585
TabIndex = 7
Top = 4500
Width = 6540
End
Begin VB.Label lblValue
AutoSize = -1 'True
BackColor = &H00000000&
BeginProperty Font
Name = "Arial Black"
Size = 18
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000000FF&
Height = 495
Left = 2475
TabIndex = 6
Top = 945
Width = 1080
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "現在溫度:"
BeginProperty Font
Name = "宋體"
Size = 14.25
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 285
Index = 1
Left = 900
TabIndex = 2
Top = 1080
Width = 1425
End
Begin VB.Label Label1
Caption = "通信端口"
BeginProperty Font
Name = "宋體"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 330
Index = 0
Left = 450
TabIndex = 1
Top = 135
Width = 1125
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim NowX As Integer '現在的X軸位置
Dim MaxPlotNo As Long '最長的X軸范圍
Dim PreValue As Single '前一個測量值
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'當選擇通信端口的Combo控件被選中后激活此事件
'若用戶改變通信端口時,關閉通信端口
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmbCOM_Click()
'若通信端口號碼和現在的選擇一樣時就不必理會,直接跳出此子程序
If cmbCOM.ListIndex + 1 = MSComm1.CommPort Then Exit Sub
Timer1.Enabled = False '關閉定時器
TimeDelay 100
If MSComm1.PortOpen Then
MSComm1.PortOpen = False '關閉通信端口
End If
lblMsg.Caption = "已停止檢測并關閉通訊端口"
cmdOpenCOM.Enabled = True '允許使用【打開通信端口】按鈕
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'單擊【結束】按鈕后激活此事件
'使用End命令將系統結束
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdEnd_Click()
End
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'單擊【打開通信端口】按鈕后激活此事件
'將MSComm控件的參數設置好,并打開
'激活【開始檢測】按鈕
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdOpenCOM_Click()
'判斷端口號碼是否落在1--16之間
If cmbCOM.ListIndex >= 0 And cmbCOM.ListIndex <= 16 Then
MSComm1.CommPort = cmbCOM.ListIndex + 1
Else
MsgBox "指定通信端口時發生錯誤!", vbCritical + vbOKOnly, "系統信息"
Exit Sub
End If
'激活錯誤檢測機制
On Error GoTo comErr
MSComm1.Settings = "9600,n,8,1" '設定通信參數
MSComm1.PortOpen = True '打開通信端口
cmdOpenCOM.Enabled = False '將此按鈕設為禁用狀態
cmdStart.Enabled = True '激活【開始檢測】按鈕
lblMsg.Caption = "可單擊【開始檢測】按鈕,執行檢測的工作。"
Exit Sub
comErr:
MsgBox "打開通信端口時發生錯誤!請確定通信端口存在且正常。", vbCritical + vbOKOnly, "系統信息"
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'單擊【開始檢測】按鈕后激活此事件
'將定時器激活或關閉,并顯示對應的文字在按鈕上,以指示用戶操作
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdStart_Click()
Timer1.Enabled = Not Timer1.Enabled
If Timer1.Enabled Then
cmdStart.Caption = "停止檢測"
Else
cmdStart.Caption = "開始檢測"
lblMsg.Caption = "已停止檢測"
End If
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'窗體的Load事件
'輸入圖形暫時設為灰色,表示無狀態信息進入
'將通訊端口號碼及站號填入Combo控件;并默認二者的選項是第一個
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Form_Load()
Dim i%
MaxPlotNo = 100
cmbCOM.Clear
cmbCOM.AddItem "COM1"
cmbCOM.AddItem "COM2"
cmbCOM.AddItem "COM3(USB)"
cmbCOM.AddItem "COM4(USB)"
cmbCOM.AddItem "COM5"
cmbCOM.AddItem "COM6"
cmbCOM.AddItem "COM7"
cmbCOM.AddItem "COM8"
cmbCOM.AddItem "COM9"
cmbCOM.AddItem "COM10"
cmbCOM.AddItem "COM11"
cmbCOM.AddItem "COM12"
cmbCOM.AddItem "COM12"
cmbCOM.AddItem "COM14"
cmbCOM.AddItem "COM15"
cmbCOM.AddItem "COM16"
cmbCOM.ListIndex = 0
cmdStart.Enabled = False
'以下設定繪圖范圍,(Xmin,YMax)-(XMax,YMin)
picVoltage.Scale (0, 50)-(MaxPlotNo, 0)
picVoltage.DrawWidth = 2 '使用兩個像素寬度的畫筆
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'定時器的Timer事件引發后,就不斷地執行其中的程序。
'將模擬讀值命令送出,再取得返回字符串并判斷。
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Timer1_Timer()
Dim Buf$, ValueStr As Single, Pos1%
Buf$ = Buf$ + MSComm1.Input
TimeDelay 2150
ValueStr = Val(Mid(Buf, Pos1 + 1, 7)) '分離出正號以后的數值
lblValue.Caption = Format(ValueStr, "00.0000") & "℃" '顯示在畫面上
If NowX = 0 Then
picVoltage.Cls '清除圖形
picVoltage.PSet (0, ValueStr) '設定起點
Else
'以下判斷現在的讀值是否大于前一次的讀值,若是,則以紅色繪線
'若否,則以藍色繪線
If ValueStr > PreValue + 0.01 Then
picVoltage.Line -(NowX, ValueStr), RGB(255, 0, 0) '由上一次的位置畫至此點
Else
picVoltage.Line -(NowX, ValueStr), RGB(0, 0, 255) '由上一次的位置畫至此點
End If
End If
PreValue = ValueStr
NowX = NowX + 1 '位置加1
If NowX > MaxPlotNo Then NowX = 0 '超過范圍則數值歸零
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -