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

📄 unit1.cpp

📁 单片机波特率计算软件
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

int SMOD;   //SMOD模式
int BaudRate;
float TimeOver; //溢出率
float Fosc;  //晶振频率
float InitTime;   //定时器初始值
int TH,TL;            //初始值的高低位
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btn1Click(TObject *Sender)
{
exit(0);        
}
//---------------------------------------------------------------------------


void __fastcall TForm1::btn2Click(TObject *Sender)
{

if(smod1->Checked)
{
  SMOD = 1;
}
else
{
  SMOD = 0;
}

Fosc = StrToFloat(FoscEdit1->Text);

switch (serial1->ItemIndex)
{
    case 0:   //串口方式0
        {

          BaudEdit1->Text = FloatToStr(( StrToFloat(FoscEdit1->Text) / 12 ));
          break;

        }
    case 1:   //串口方式1
        {

         switch (time1->ItemIndex)
         {
           case 0:  //定时器方式0
                {
                  InitTime = StrToInt(TimeEdit1->Text);
                  TimeOver = Fosc / ( 12 * ( 8192 - InitTime ))  ;
                  break;
                }

         }
         break;

        }

        }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::btn3Click(TObject *Sender)
{

if(smod1->Checked)
{
  SMOD = 1;
}
else
{
  SMOD = 0;
}

Fosc = StrToFloat(FoscEdit1->Text); //频率
BaudRate = StrToInt(BaudEdit1->Text);     //波特率
if(BaudRate == 0)
{
  Application->MessageBox("波特率应该不为0!!!", "提示", MB_OK + 
      MB_ICONINFORMATION);
  return;    
}

switch (time1->ItemIndex)
{
  case 0:       //定时器方式0
  {
    break;
  }

  case 1:       //定时器方式1
  {
    break;
  }

  case 2:       //定时器方式2
  {
    switch (serial1->ItemIndex)
    {
      case 0:   //串口方式0
        break;

      case 1:     //串口方式1
      {

      InitTime = 256 - 1000000 * Fosc * ((float)SMOD + 1) / (381 * (float)BaudRate);

      if(InitTime < 0)
      {
        Application->MessageBox("你设置的值不对!!!!\n你可以减小晶振频率频率或增大波特率!!!", "提示", MB_OK + 
            MB_ICONINFORMATION);
        return;    
      }
          lbl9->Caption = FloatToStr(InitTime);

      TH = (int)InitTime + 1;
      TL = (int)InitTime + 1;
      TimeEdit1->Text = IntToHex(TH,2);
      TimeEdit2->Text = IntToHex(TL,2);
      break;

      }

      case 2:       //串口方式2
        {
          break;
        }
        
      case 3:           //串口方式3
        {
          break;
        }
        
      default:
                break;
                  
    }

    break;
    }
    
  case 3:   //定时器方式3
        {
          break;
        }
  default:
        break;
        

}

}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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