⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmain.frm

📁 Visual Basic实现PC机与单片机串口通信任务 包含visual basic 和51的原代码
💻 FRM
字号:
VERSION 5.00
Begin VB.Form frmain 
   AutoRedraw      =   -1  'True
   Caption         =   "仪表盘"
   ClientHeight    =   4845
   ClientLeft      =   60
   ClientTop       =   450
   ClientWidth     =   5655
   LinkTopic       =   "Form1"
   ScaleHeight     =   4845
   ScaleWidth      =   5655
   StartUpPosition =   3  '窗口缺省
   Begin VB.PictureBox biaoke 
      DragIcon        =   "frmain.frx":0000
      Height          =   3390
      Left            =   255
      ScaleHeight     =   58.738
      ScaleMode       =   6  'Millimeter
      ScaleWidth      =   88.371
      TabIndex        =   1
      Top             =   285
      Width           =   5070
      Begin VB.PictureBox biaopan 
         AutoRedraw      =   -1  'True
         BackColor       =   &H00FFFFFF&
         DrawWidth       =   2
         FillColor       =   &H000000C0&
         Height          =   2175
         Left            =   735
         Picture         =   "frmain.frx":0152
         ScaleHeight     =   37.306
         ScaleMode       =   6  'Millimeter
         ScaleWidth      =   60.59
         TabIndex        =   3
         Top             =   420
         Width           =   3495
         Begin VB.Line biaozhen 
            BorderColor     =   &H000000FF&
            Index           =   4
            X1              =   4.233
            X2              =   52.917
            Y1              =   35.983
            Y2              =   35.983
         End
         Begin VB.Label keduzhi 
            BackColor       =   &H80000009&
            Caption         =   "。"
            Height          =   240
            Index           =   6
            Left            =   0
            TabIndex        =   10
            Top             =   0
            Width           =   135
         End
         Begin VB.Label keduzhi 
            BackColor       =   &H80000009&
            Caption         =   "。"
            Height          =   135
            Index           =   5
            Left            =   0
            TabIndex        =   9
            Top             =   0
            Width           =   135
         End
         Begin VB.Label keduzhi 
            BackColor       =   &H80000009&
            Caption         =   "。"
            Height          =   135
            Index           =   4
            Left            =   0
            TabIndex        =   8
            Top             =   0
            Width           =   135
         End
         Begin VB.Label keduzhi 
            BackColor       =   &H80000009&
            Caption         =   "。"
            Height          =   135
            Index           =   3
            Left            =   0
            TabIndex        =   7
            Top             =   0
            Width           =   135
         End
         Begin VB.Label keduzhi 
            BackColor       =   &H80000009&
            Caption         =   "。"
            Height          =   135
            Index           =   2
            Left            =   0
            TabIndex        =   6
            Top             =   0
            Width           =   135
         End
         Begin VB.Label keduzhi 
            BackColor       =   &H80000009&
            Caption         =   "。"
            Height          =   135
            Index           =   1
            Left            =   0
            TabIndex        =   5
            Top             =   0
            Width           =   135
         End
         Begin VB.Label keduzhi 
            BackColor       =   &H80000009&
            Caption         =   "。"
            Height          =   135
            Index           =   0
            Left            =   0
            TabIndex        =   4
            Top             =   0
            Width           =   135
         End
         Begin VB.Line biaozhen 
            BorderColor     =   &H000000FF&
            Index           =   0
            X1              =   6.35
            X2              =   42.333
            Y1              =   33.867
            Y2              =   35.983
         End
         Begin VB.Line biaozhen 
            BorderColor     =   &H000000FF&
            Index           =   1
            X1              =   10.583
            X2              =   35.983
            Y1              =   35.983
            Y2              =   35.983
         End
         Begin VB.Line biaozhen 
            BorderColor     =   &H000000FF&
            Index           =   2
            X1              =   4.233
            X2              =   57.15
            Y1              =   35.983
            Y2              =   38.1
         End
         Begin VB.Line biaozhen 
            BorderColor     =   &H000000FF&
            Index           =   3
            X1              =   6.35
            X2              =   55.033
            Y1              =   35.983
            Y2              =   35.983
         End
      End
      Begin VB.TextBox celiangzhi 
         Height          =   390
         Left            =   2100
         TabIndex        =   2
         Top             =   2730
         Width           =   735
      End
   End
   Begin VB.CommandButton Command2 
      Caption         =   "关闭"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   735
      Left            =   2370
      TabIndex        =   0
      Top             =   3840
      Width           =   1095
   End
End
Attribute VB_Name = "frmain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

Public Zhizhen As Single      '指针长度值
Public PI As Single, ZH As Single  '设定两个长量
Public Keduchang As Single   '设定刻度线长度
Public Zuidazhi As Single, Zuixiaozhi As Single   '定义测量范围
Public Zhukedushu As Integer, Fenkedushu As Integer, Zhukedushu1 As Integer   '主、分刻度数变量
Public Dongtaishu As Single   '测量值变量
Public Jibencanshu As Single  '基本参数,也就是表壳的宽度
Public JIESHOUZHI As Single   '从外界接收的数值????

Sub shezhibiaopan()
biaopan.Cls
biaokekuan = Zhizhen * 4  '参数按比例赋值
biaokegao = Zhizhen * 2.6
biaopankuan = Zhizhen * 3.2
biaopangao = Zhizhen * 1.8
biaopan.Left = Zhizhen * 0.4   '初始化表盘位置
biaopan.Top = Zhizhen * 0.2
biaopan.Width = biaopankuan
biaopan.Height = biaopangao
biaoke.Width = biaokekuan * ZH
biaoke.Height = biaokegao * ZH

celiangzhi.Width = Zhizhen * 0.6    '设置读数框的大小和位置
celiangzhi.Height = Zhizhen * 0.2

celiangzhi.Left = (biaoke.ScaleWidth - celiangzhi.Width) / 2
celiangzhi.Top = Zhizhen * 21 / 10

biaopan.Scale (-Zhizhen * 1.6, Zhizhen * 1.5)-(Zhizhen * 1.6, -Zhizhen * 0.3)   '选表盘中心为坐标原点,建立坐标系

biaopan.Circle (0, 0), Zhizhen, , 0, PI   '画表盘半周

For i = 0 To Zhukedushu * Fenkedushu     '画刻度线
If i Mod Fenkedushu = 0 Then
Keduchang = Zhizhen * 0.15
Else
Keduchang = Zhizhen * 0.1
End If
biaopan.Line (Zhizhen * Cos(PI * i / Zhukedushu / Fenkedushu), Zhizhen * Sin(PI * i / Zhukedushu / Fenkedushu))-((Zhizhen + Keduchang) * Cos(PI * i / Zhukedushu / Fenkedushu), (Zhizhen + Keduchang) * Sin(PI * i / Zhukedushu / Fenkedushu))
Next i

For Index = 0 To 4     '初始化表针
biaozhen(Index).X1 = 0
biaozhen(Index).Y1 = 0
biaozhen(Index).X2 = -(Zhizhen + 1) * ((5 - Index) / 5)
biaozhen(Index).Y2 = 0
biaozhen(Index).BorderWidth = Index + 1
Next Index

If Zhukedushu <> Zhukedushu1 Then   '设定主刻度值的个数
If Zhukedushu > KEdushulinshi Then
For m = Zhukedushu1 + 1 To Zhukedushu
Load keduzhi(m)
Next m
Else
For n = Zhukedushu + 1 To Zhukedushu1
keduzhi(n).Visible = False
Next n
End If
End If
If Zhukedushu > 6 Then Zhukedushu1 = Zhukedushu
If Zhukedushu > KEdushulinshi Then KEdushulinshi = Zhukedushu

For j = 0 To Zhukedushu  '设定刻度值的位置坐标,数值大小
Dim ls As Single
keduzhi(j).Visible = True
If Fix((Zuidazhi - Zuixiaozhi) * j / Zhukedushu) <> (Zuidazhi - Zuixiaozhi) * j / Zhukedushu Then
keduzhi(j).Caption = Format$((Zuidazhi - Zuixiaozhi) * j / Zhukedushu + Zuixiaozhi, "###.##")
Else
keduzhi(j).Caption = (Zuidazhi - Zuixiaozhi) * j / Zhukedushu + Zuixiaozhi
End If
keduzhi(j).AutoSize = True
keduzhi(j).BackStyle = 0
ls = (Sqr(keduzhi(j).Width * keduzhi(j).Width + keduzhi(j).Height * keduzhi(j).Height)) / 2 + Zhizhen * 0.1
keduzhi(j).Left = (Zhizhen + ls) * Cos(PI * (Zhukedushu - j) / Zhukedushu) - keduzhi(j).Width / 2
keduzhi(j).Top = (Zhizhen + ls) * Sin(PI * (Zhukedushu - j) / Zhukedushu) + keduzhi(j).Height / 2
Next j
End Sub

Sub biaozhenxuanzhuan(ls As Single)    '设置表针走动

If Dongtaishu <= Zuidazhi And Dongtaishu >= Zuixiaozhi Then  '设置表针
For Index = 0 To 4
biaozhen(Index).X1 = 0
biaozhen(Index).Y1 = 0
biaozhen(Index).X2 = (Zhizhen + 1) * Cos(ls) * ((5 - Index) / 5)
biaozhen(Index).Y2 = (Zhizhen + 1) * Sin(ls) * ((5 - Index) / 5)
Next Index

ElseIf Dongtaishu < Zuixiaozhi Then
For Index = 0 To 4    '表针置初位
biaozhen(Index).X1 = 0
biaozhen(Index).Y1 = 0
biaozhen(Index).X2 = -(Zhizhen + 1) * ((5 - Index) / 5)
biaozhen(Index).Y2 = 0
Next Index

ElseIf Dongtaishu > Zuidazhi Then
For Index = 0 To 4     '表针置于最大位置
biaozhen(Index).X1 = 0
biaozhen(Index).Y1 = 0
biaozhen(Index).X2 = (Zhizhen + 1) * ((5 - Index) / 5)
biaozhen(Index).Y2 = 0
Next Index
End If
End Sub

Private Sub Form_Load()  '初始化
PI = 3.15159    '定义常量PI值和缇与毫米的转换值
ZH = 1440 / 25.4

biaopan.Picture = LoadPicture()
ShuBiao = 0         '参数赋初值
Zhizhen = biaoke.ScaleWidth / 4
Kaiguanxiandian = True

Zuidazhi = 18
Zuixiaozhi = 0
Dongtaishu = 0
Zhukedushu = 6
Zhukedushu1 = 6
Fenkedushu = 6
KEdushulinshi = 6

shezhibiaopan  '初始化表盘
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub celiangzhi_Change()   '测量量改变时仪表改变
Dim ls As Single
Dongtaishu = Val(celiangzhi.Text)
ls = PI - (Dongtaishu - Zuixiaozhi) * PI / (Zuidazhi - Zuixiaozhi)
biaozhenxuanzhuan ls  '调用指针改变函数
End Sub


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -