windows98下利用vc++6.0的mscomm控件实现微机与8051单片机的串行通信new

windows98下利用vc++6.0的mscomm控件实现微机与8051单片机的串行通信new

ID:34425419

大小:189.50 KB

页数:3页

时间:2019-03-06

windows98下利用vc++6.0的mscomm控件实现微机与8051单片机的串行通信new_第1页
windows98下利用vc++6.0的mscomm控件实现微机与8051单片机的串行通信new_第2页
windows98下利用vc++6.0的mscomm控件实现微机与8051单片机的串行通信new_第3页
资源描述:

《windows98下利用vc++6.0的mscomm控件实现微机与8051单片机的串行通信new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、自动化与仪表第15卷2000年第6期文章编号:1001—9944(2000)06—0035—03aWindows98下利用VC++6.0的MSComm控件实现微机与8051单片机的串行通信12徐颖,王悦(1.南方冶金学院,江西赣州341000;2.南昌大学,南昌330029)摘要:本文以设计某电机转速转矩微机监控系统为例,详细介绍了在设计Windows监控软件中如何利用VC++6.0的MSComm控件来实现微机与8051单片机的串行通信。和以往利用WindowsAPI函数实现方法相比,具有编程设计大大

2、简化的优点及更大的实用性。关键词:监控软件;VC++6.0;RS2232串行通信;8051单片机中图分类号:TP316.86文献标识码:B1引言其工业要求恒转速恒转矩运行;同时需要把传感在工业控制中,经常要组成上位机为微机而下器检测到的实际转速、转矩在监控界面上显示(以位机为单片机的二级系统,两者一般是通过RS2数据及曲线方式),并可保存、打印。232串行口进行通信。这样,既满足实时控制要求,又有控制功能强大、便于使用的优点。3串行通信协议说明双机均采用查询发送、中断接收的通信方式。在Windows9

3、8下,用VC++6.0开发上位计帧格式为7位数据位,无校验位,1位停止算机的Windows监控软件,具有控制界面美观大位,波特率为9600,编码为ASCII码。每次微机方,使用简单方便等优点。但是,在Windows工业向单片机发数据时,微机先向单片机发握手信号监控软件开发中,如何实现微机与单片机之间的串“55”,单片机收到握手信号则发应答信号“66”至行通信是一个较大的障碍,而且是设计的关键之微机,微机收到应答信号后即发数据。同样,当单一。因为在Windows程序中,不允许用户直接掌握片机要向微机发数

4、据时,也先向微机发握手信号串行口的中断管理。如果使用众多Win32API函“77”,微机收到握手信号后发应答信号“88”,单片数来读写访问和控制串行口等通讯资源,那使得程机收到应答信号后则发数据。序过于复杂,开发Windows工控软件难度大大增加。本文利用VC++6.0的Microsoft4微机通信程序设计Communication6.0控件编写较简单的VC程序,完我们利用VC++6.0设计本通信程序。主要成了微机与8051单片机之间的RS2232串行口通信,达到了工业运用中开发Windows工控软件

5、的步骤如下:(1)先进入VisualC++6.0集成开发环境;实际要求。(2)创建一个单文档控制界面;2系统设计(3)再添加控制菜单、控制对话框、控制按钮我们设计了一个电机转速转矩微机监控系与编辑框;统,实现了其微机与8051单片机的串行通讯。本(4)在控制对话框中添加ActiveX控件中的监控系统为微机与8051单片机组成的二级系统,MSComm控件;用VC++6.0编制微机监控软件。监控软件的主(5)设置MSComm控件属性:要要求是:从控制界面上设置给定转速、转矩,系Setting:9600,n

6、,7,1;InputLen:2;统根据给定选择最佳控制方案,来保证电机符合Rthreshold:2;其它按缺省值。a收稿日期:2000206212(磁盘稿)·35·计算机应用(6)编写通信程序,主要部分如下:voidCROTOTEDlg::OnButton1()öö通信初始化消息处理函数{ööTODO:AddyourcontrolnotificationhandlercodehereDataORShaking=1;öö握手信号或数据标志CommSucc=0;öö握手成功标志receiveNo=3;öö

7、数据区分标志if(!mRototeComdlg.GetPortOpen())mRototeComdlg.SetPortOpen(TRUE);öö打开串行口mRototeComdlg.SetOutput(COleVariant("55"));öö发握手信号mRototeComdlg.SetInputMode(0);öö读取串行口缓冲区öö全部数据MessageBox("START");for(inti=0;i<=10000;i++);öö延时if(CommSucc==0)MessageBox“(通信失败

8、,请检查通信硬件”);öö握手失败显示}voidCROTOTEDlg::OnOnCommMscomm1()ööMSComm控件消息öö处理函数{ööTODO:AddyourcontrolnotificationhandlercodehereVARIANTvarii;varii=mRototeComdlg.GetInput();öö读入数据öö赋给VARIANT变量CStringsss;sss=varii.bstrVal;UpdateData();öö将文

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。