面向对象实训报告.doc
文本预览下载声明
面向对象实训报告
学 号 xxxxxxxx
姓 名 xxxx
指导教师:
年 月 日
串行通信上位机程序
一:基本任务
设计一个基于对话框的计算器串行通信上位机程序,实现常用串行通信。
二:性能、指标、要求:
1.性能:基于VC++6.0的MFC编辑框架的串口通信,要求要求独立设计计算器所需的所有按钮,能够实现波特率可变,能够实现串口端口可选,能够实现发送与接收数据的实时显示等基本功能。
2.指标:通过基于VC++6.0的MFC编辑框架,按照实训要求设计出简单的能完成串口通行所需的按钮功能,能够实现波特率可变,串口端口可选,能实现发送与接收数据的实时显示的基本功能。
3.要求:(1) 按照题目要求独立设计计算器所需的所有按钮,并完成程序源码编写、调试及关键代码注释。
(2)能够实现波特率可变。
(3)能够实现串口端口可选。
(4)能够实现发送与接收数据的实时显示。
三:方案设计:
1. 方案论证:
通过Mscomm控件实现串口间的通信,Mscomm控件提供了一些修改属性的函数,可以对波特率,串口属性进行修改。并能与AccessPort.exe进行数据发送和接收。
2.工作原理:
(1)目的:通过设计的基于对话框的计算器串口通信上位机程序,实现常用
串口通信,能够完成发送和接收,及波特率可变,串口端口可选。
(2)波特率的可变和串口端口的可选的分析:通过VC++6.0的MFC中的组合框来设计波特率及串口端口的可选,在程序中用switch语句来实现这两个功能的操作。波特率的数据为: 2400,4800,9600,115200;串口的端口的数据为:COM1,COM2,COM3,COM4.设计好它们的属性,在程序中就可以对它们进行操作了。
(3)发送及接收的文本框的分析:自己设计的串口通信,在发送的文本框中写入内容,通过发送按钮可以把这些内容发送到AccessPort.exe中,并能显示发送的内容。在AccessPort.exe中写入数据并发送,能够在自己设计的串口中的接收文本框中接收到数据。
(4)发送按钮的分析:按下发送按钮,就能把自己设计的串口接收文本框的内容发送到AccessPort.exe中,在AccessPort.exe中,能显示接收到的内容。
(5)打开串口按钮的分析:按下打开串口按钮,就能打开相应的串口端口。
(6)整体步骤:
四:软件设计:
按下列图所示建立一个基于对话框的MFC程序
点击完成,得到下面的对话框:
这样就得到了下图所示的界面
右键点击class1的对话框界面,在弹出的菜单中选择属性,打开下面的属性对话框:
建立下图所示的对话框控件:
各控件属性如下:
第一个文本框:
第二个文本框:
串口的属性:
波特率的属性:
五:制作与调试过程
1. 打开串口按钮的程序:
void CClass1Dlg::OnBtnPortopen()
{
// TODO: Add your control notification handler code here
int nIndex , nIndex2;
int com ;
nIndex= m_combox1.GetCurSel();//获得串口下拉列表当前值
nIndex2=m_combox2.GetCurSel();//获得波特率下拉列表当前值
switch(nIndex)//串口的选择
{
case 0:
com=1;
break;
case 1:
com=2;
break;
case 2:
com=3;
break;
case 3:
com=4;
break;
}
m_msComm.SetCommPort(com);//获取串口
m_msComm.SetInBufferSize(1024);//设置输入缓冲区的大小
m_msComm.SetOutBufferSize(512);//设置输出缓冲区的大小
if (!m_msComm.GetPortOpen())//判断串口是否打开
{
m_msComm.SetPortOpen(TRUE);
}
switch(nIndex)//波特率的选择
{
case 0:
m_msComm.SetSettings(2400,N,8,1);
break;
case 1:
m_msComm.SetSettings(4800,N,8,1);
break;
case 2:
m_msComm.SetSettings(9600,N,8,1);
break;
case 3:
m_msComm.SetSetti
显示全部