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

📄 定时器.frm

📁 定时器代码生成器
💻 FRM
📖 第 1 页 / 共 2 页
字号:
         Name            =   "黑体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   240
      TabIndex        =   2
      Top             =   2520
      Width           =   1215
   End
   Begin VB.Label 定时时间 
      Caption         =   "定时时间"
      BeginProperty Font 
         Name            =   "黑体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   360
      TabIndex        =   1
      Top             =   1560
      Width           =   1215
   End
End
Attribute VB_Name = "定时器"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit





Private Sub Form_Load()

方式选择下拉框.AddItem "0"
方式选择下拉框.AddItem "1"
方式选择下拉框.AddItem "2"
方式选择下拉框.AddItem "3"

定时器的选择.AddItem "0"
定时器的选择.AddItem "1"
定时器的选择.AddItem "2"

优先级选择框.AddItem "低"
优先级选择框.AddItem "高"

提示框.Text = "帮助:" & vbCrLf
提示框.Text = 提示框.Text & "此软件用于生成8051系列单片机的定时器初始化代码" & vbCrLf
提示框.Text = 提示框.Text & "请先在面板上填上数据,后按确定,此软件会自动生成代码" & vbCrLf
提示框.Text = 提示框.Text & "                  Creat by 福建三明学院应用物理系03级电子科技。陈子牙" & vbCrLf
提示框.Text = 提示框.Text & "邮箱:chenziya198603@163.com" & vbCrLf
提示框.Text = 提示框.Text & "电话:0598-8398271" & vbCrLf
End Sub







Private Sub 定时时间输入框_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
   If Val(晶振频率输入框.Text) > 0 And Val(定时时间输入框.Text) > 0 Then
      Call FuntionOutput                         '调用数据的计算及代码输出
   Else:  定时时间输入框.Text = ""
   End If
End If

End Sub



Private Sub 方式选择下拉框_Click()
Select Case 方式选择下拉框.Text
   Case 0
        提示框.Text = "帮助:" & vbCrLf
        提示框.Text = 提示框.Text & "此时定时器被设置为13位定时器,最大定时时间为 12*2^13/Fclk(s)"
   Case 1
        提示框.Text = "帮助:" & vbCrLf
        提示框.Text = 提示框.Text & "此时定时器被设置为16位定时器,最大定时时间为 12*2^16/Fclk(s)"
   Case 2
        提示框.Text = "帮助:" & vbCrLf
        提示框.Text = 提示框.Text & "此时定时器被设置为8位定时器,工作于重装模式,最大定时时间为 12*2^8/Fclk(s)"
End Select
End Sub

Private Sub 即时通信_Click()
串口调试.Show
End Sub

Private Sub 确定_Click()

If Val(定时时间输入框.Text) > 0 Then
   Call FuntionOutput
Else: MsgBox ("请输入定时时间")
End If

    

End Sub






Public Sub FuntionOutput()
Dim TH0Buf As Integer, TL0Buf As Integer, timerinter As Long
Select Case 定时器的选择.Text
Case 0 '如果是定时器0
  Select Case 方式选择下拉框.Text
         Case 0    '定时器方式0,13位定时器
               If Val(定时时间输入框.Text) > 12 / (Val(晶振频率输入框.Text)) * 2 ^ 13 / 1000 Then
                   MsgBox ("方式0最大定时小于" & Str((1 / (Val(晶振频率输入框.Text) / 12) * 2 ^ 13 / 1000)) & "ms")
                   Exit Sub
               End If
               timerinter = 2 ^ 13 - CLng(Val(定时时间输入框.Text) * 1000 * Val(晶振频率输入框.Text) / 12)
               TH0Buf = CInt(timerinter \ 256)    '求定时值高位
               TL0Buf = CInt(timerinter Mod 256)  '求定时值的低位
               显示框.Text = "  " & Hex(timerinter) & "H"

               代码生成窗口.Show            '代码生成窗口展现
               Call printshouming           '调用显示函数说明
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "void Timer0init(void)" & vbCrLf     '列出要生成的代码的函数名
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "{" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TH0=" & "0x" & Hex(TH0Buf) & ";" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TL0=" & "0x" & Hex(TL0Buf) & ";" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TMOD=(TMOD & 0xf0) | 0X00;/*设置为方式零,13位定时器*/" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "IE=IE | 0x82;             /*开定时器0中断,开CPU中断*/" & vbCrLf
               If 优先级选择框.Text = "高" Then
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "IP=IP | 0x02;             /*设置定时器0为最高优先级*/" & vbCrLf
               End If
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TR0=1;                    /*启动定时器0*/" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "}" & vbCrLf
         Case 1    '定时器方式1,16位定时器
               If Val(定时时间输入框.Text) > 12 / (Val(晶振频率输入框.Text)) * 2 ^ 16 / 1000 Then
                   MsgBox ("方式0最大定时小于" & Str((1 / (Val(晶振频率输入框.Text) / 12) * 2 ^ 16 / 1000)) & "ms")
                   Exit Sub
               End If
               timerinter = 2 ^ 16 - CLng(Val(定时时间输入框.Text) * 1000 * Val(晶振频率输入框.Text) / 12)
               TH0Buf = CInt(timerinter \ 256)    '求定时值高位
               TL0Buf = CInt(timerinter Mod 256)  '求定时值的低位
               显示框.Text = "  " & Hex(timerinter) & "H"

               代码生成窗口.Show
               Call printshouming                 '调用显示函数说明
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "void Timer0init(void)" & vbCrLf     '列出要生成的代码的函数名
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "{" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TH0=" & "0x" & Hex(TH0Buf) & ";" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TL0=" & "0x" & Hex(TL0Buf) & ";" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TMOD=(TMOD & 0xf0) | 0X01;/*设置为方式一,16位定时器*/" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "IE=IE | 0x82;             /*开定时器0中断,开CPU中断*/" & vbCrLf
               If 优先级选择框.Text = "高" Then
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "IP=IP | 0x02;             /*设置定时器0为最高优先级*/" & vbCrLf
               End If
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TR0=1;                    /*启动定时器0*/" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "}" & vbCrLf
         Case 2       '定时器方式2,8位定时器,重装载模式
               If Val(定时时间输入框.Text) > 12 / (Val(晶振频率输入框.Text)) * 2 ^ 8 / 1000 Then
                   MsgBox ("方式0最大定时小于" & Str((1 / (Val(晶振频率输入框.Text) / 12) * 2 ^ 8 / 1000)) & "ms")
                   Exit Sub
               End If
               timerinter = 2 ^ 8 - CLng(Val(定时时间输入框.Text) * 1000 * Val(晶振频率输入框.Text) / 12)
               显示框.Text = "  " & Hex(timerinter) & "H"
               TH0Buf = CInt(timerinter \ 256)    '求定时值高位
               TL0Buf = CInt(timerinter Mod 256)  '求定时值的低位
               代码生成窗口.Show
               Call printshouming                 '调用显示函数说明
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "void Timer0init(void)" & vbCrLf     '列出要生成的代码的函数名
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "{" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TH0=" & "0x" & Hex(TL0Buf) & ";" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TL0=" & "0x" & Hex(TL0Buf) & ";" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TMOD=(TMOD & 0xf0) | 0X02;/*设置为方式二,重装模式的8位定时器*/" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "IE=IE | 0x82;             /*开定时器0中断,开CPU中断*/" & vbCrLf
               If 优先级选择框.Text = "高" Then
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "IP=IP | 0x02;             /*设置定时器0为最高优先级*/" & vbCrLf
               End If
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TR0=1;                    /*启动定时器0*/" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "}" & vbCrLf
         Case 3
  End Select
Case 1  '如果是定时器1
  Select Case 方式选择下拉框.Text
         Case 0    '定时器方式0,13位定时器
               If Val(定时时间输入框.Text) > 12 / (Val(晶振频率输入框.Text)) * 2 ^ 13 / 1000 Then
                   MsgBox ("方式0最大定时小于" & Str((1 / (Val(晶振频率输入框.Text) / 12) * 2 ^ 13 / 1000)) & "ms")
                   Exit Sub
               End If
               timerinter = 2 ^ 13 - CLng(Val(定时时间输入框.Text) * 1000 * Val(晶振频率输入框.Text) / 12)
               TH0Buf = CInt(timerinter \ 256)    '求定时值高位
               TL0Buf = CInt(timerinter Mod 256)  '求定时值的低位
               显示框.Text = "  " & Hex(timerinter) & "H"

               代码生成窗口.Show            '代码生成窗口展现
               Call printshouming           '调用显示函数说明
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "void Timer0init(void)" & vbCrLf     '列出要生成的代码的函数名
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "{" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TH1=" & "0x" & Hex(TH0Buf) & ";" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TL1=" & "0x" & Hex(TL0Buf) & ";" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TMOD=(TMOD & 0x0f) | 0X00;/*设置为方式零,13位定时器*/" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "IE=IE | 0x88;             /*开定时器1中断,开CPU中断*/" & vbCrLf
               If 优先级选择框.Text = "高" Then
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "IP=IP | 0x08;             /*设置定时器1为最高优先级*/" & vbCrLf
               End If
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TR1=1;                    /*启动定时器1*/" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "}" & vbCrLf
         Case 1    '定时器方式1,16位定时器
               If Val(定时时间输入框.Text) > 12 / (Val(晶振频率输入框.Text)) * 2 ^ 16 / 1000 Then
                   MsgBox ("方式0最大定时小于" & Str((1 / (Val(晶振频率输入框.Text) / 12) * 2 ^ 16 / 1000)) & "ms")
                   Exit Sub
               End If
               timerinter = 2 ^ 16 - CLng(Val(定时时间输入框.Text) * 1000 * Val(晶振频率输入框.Text) / 12)
               TH0Buf = CInt(timerinter \ 256)    '求定时值高位
               TL0Buf = CInt(timerinter Mod 256)  '求定时值的低位
               显示框.Text = "  " & Hex(timerinter) & "H"

               代码生成窗口.Show
               Call printshouming                 '调用显示函数说明
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "void Timer0init(void)" & vbCrLf     '列出要生成的代码的函数名
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "{" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TH1=" & "0x" & Hex(TH0Buf) & ";" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TL1=" & "0x" & Hex(TL0Buf) & ";" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TMOD=(TMOD & 0x0f) | 0X10;/*设置为方式一,16位定时器*/" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "IE=IE | 0x88;             /*开定时器1中断,开CPU中断*/" & vbCrLf
               If 优先级选择框.Text = "高" Then
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "IP=IP | 0x08;             /*设置定时器1为最高优先级*/" & vbCrLf
               End If
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TR1=1;                    /*启动定时器1*/" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "}" & vbCrLf
         Case 2       '定时器方式2,8位定时器,重装载模式
               If Val(定时时间输入框.Text) > 12 / (Val(晶振频率输入框.Text)) * 2 ^ 8 / 1000 Then
                   MsgBox ("方式0最大定时小于" & Str((1 / (Val(晶振频率输入框.Text) / 12) * 2 ^ 8 / 1000)) & "ms")
                   Exit Sub
               End If
               timerinter = 2 ^ 8 - CLng(Val(定时时间输入框.Text) * 1000 * Val(晶振频率输入框.Text) / 12)
               显示框.Text = "  " & Hex(timerinter) & "H"
               TH0Buf = CInt(timerinter \ 256)    '求定时值高位
               TL0Buf = CInt(timerinter Mod 256)  '求定时值的低位
               代码生成窗口.Show
               Call printshouming                 '调用显示函数说明
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "void Timer0init(void)" & vbCrLf     '列出要生成的代码的函数名
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "{" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TH1=" & "0x" & Hex(TL0Buf) & ";" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TL1=" & "0x" & Hex(TL0Buf) & ";" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TMOD=(TMOD & 0x0f) | 0X20;/*设置为方式二,重装模式的8位定时器*/" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "IE=IE | 0x88;             /*开定时器1中断,开CPU中断*/" & vbCrLf
               If 优先级选择框.Text = "高" Then
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "IP=IP | 0x08;             /*设置定时器1为最高优先级*/" & vbCrLf
               End If
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & " " & "TR1=1;                    /*启动定时器1*/" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "}" & vbCrLf
         Case 3
  End Select
Case 2 '如果是定时器2

End Select
End Sub

Public Sub printshouming()
               代码生成窗口.代码显示框.Text = "/************************************************************" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "文件名:   void Timer0init(void)" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "功能:     " & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "描述:     " & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "输入变量: void" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "输出变量: void" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "作者:     陈子牙" & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "修改日期: " & vbCrLf
               代码生成窗口.代码显示框.Text = 代码生成窗口.代码显示框.Text & "************************************************************/" & vbCrLf
End Sub

⌨️ 快捷键说明

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