内蒙古科技大学毕业设计说明书(毕业论文)
区流,由应用程序接收。
本程序能过实现的基础,是与接口交互的基础类(由于Windows操作系统不赞同程序对硬件的直接操控,故需要编写自己的基础类)。它完成了程序绝大部分的底层工作:
1.串口方面:它提供了与程序功能实现类的接口:打开串口,从串口读取数据,将读取的数据存入缓冲区,向串口写数据,将要发送的数据存入缓冲区,关闭串口。其串口参数界面设置如图3.1所示:
图3.1 串口参数设置界面
初始化串口函数:
HCURSOR CXrp2Dlg::OnQueryDragIcon() void CXrp2Dlg::OnEditchangeComName() void CXrp2Dlg::OnEditchangeBaud() void CXrp2Dlg::OnEditchangeDataBit() void CXrp2Dlg::OnEditchangeParity() void CXrp2Dlg::OnEditchangeStopBit() 打开和关闭串口函数:
void CXrp2Dlg::OnOpenClose() {
if (!m_COM.GetPortOpen())
28
//串口没打开
内蒙古科技大学毕业设计说明书(毕业论文)
}
{?? {??
m_COM.SetPortOpen(FALSE); }
//关闭串口
}
m_COM.SetPortOpen(TRUE); else
//打开串口
2.操作系统方面:它提供了自己对串口的消息的处理:打开监视串口,关闭监视串口,定时接受,发送,向操作系统申请了一些自己定义的消息以及处理函数(这样在操作系统的一些默认消息处理前截取并处理这些消息),如图3.2所示:
图3.2 步进电机速度控制界面图
主要函数如下: 转向函数
void CXrp2Dlg::OnChangezhuanxiang() 端口参数选择改变函数:
void CXrp2Dlg::SettingChanged() 各控制命令函数:
发送正转命令:void CXrp2Dlg::Onzhengzhuan()
29
内蒙古科技大学毕业设计说明书(毕业论文)
发送反转命令:void CXrp2Dlg::Onfanzhuan() 发送加速命令:void CXrp2Dlg::Onjiasu() 发送减速命令:void CXrp2Dlg::Onjiansu() 发送停止命令:void CXrp2Dlg::Ontingzhi()
30
内蒙古科技大学毕业设计说明书(毕业论文)
第四章 通信模式
在实验室和工业应用中,串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛。依据不同的条件实现对串口的灵活编程控制是我们所需要的。
4.1基本原理
串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数据从 CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。
在Windows环境下,串口是系统资源的一部分。
应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。
4.2单片机的串行通信
MCS-51单片机内部有一个 全双工的串行接收和发射缓冲器(SBUFF),这两个在物理上独立的接收发射器,即可以接收也可以发射数据,但接收缓冲器只可以读出不能写入,而发送缓冲器只能写入不能读出,它们的地址是99H。这个通信口即可以用于网络通信,亦可以实现串行异步通信,还可以构成同步移位寄存器使用。如果在串行口的输入输出引脚上加上电平转换器,就可以方便的构成标准的RS-232接口。
一个完整的RS-232接口有22根线,采用标准的9芯插头座。以下的介绍是以9芯的RS-232为例。
①主要信号线定义: 1脚:保护地; 2脚:发送数据TXD; 3脚:接收数据RXD; 4脚:请求发送RTS; 5脚:清除发送CTS; 6脚:数据设备就绪DSR;
31