📄 unit1.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 + -