PC机与单片机之间的串口通信程序的设计与实现机与单片机之间的串口通信程序的设计与实现
摘要:本文主要利用MSComm控件实现单片机与PC机的串口通信,重点是软件部分的设计。采用VC++ 6.0软
件开发平台,利用MFC编程的思想方法,建立友好的人机交互界面。PC机向单片机发送信号,将单片机接收到
信号后向PC机返回的数据在界面中实现动态显示、保存等。该系统具有操作简单,实用性强,可视化程度高等
优点,为以后的软件设计打下了一定的基础。 1.引言 在众多集成可视化开发环境中,VisualC++是编
程环境的选择,VC++应用程序的开发主要有两种模式,一种是WIN API方式,另一种是MFC方式,传统的WIN
API方式比较繁琐,而MFC是对WIN API再次封装,MFC相对于
摘要:本文主要利用 摘要:本文主要利用MSComm控件实现单片机与控件实现单片机与PC机的串口通信,重点是软件部分的设计。采用机的串口通信,重点是软件部分的设计。采用VC++ 6.0软件开发平软件开发平
台,利用台,利用MFC编程的思想方法,建立友好的人机交互界面。编程的思想方法,建立友好的人机交互界面。PC机向单片机发送信号,将单片机接收到信号后向机向单片机发送信号,将单片机接收到信号后向PC机返回的数机返回的数
据在界面中实现动态显示、保存等。该系统具有操作简单,实用性强,可视化程度高等优点,为以后的软件设计打下了一定的据在界面中实现动态显示、保存等。该系统具有操作简单,实用性强,可视化程度高等优点,为以后的软件设计打下了一定的
基础。基础。
1.引言
在众多集成可视化开发环境中,VisualC++是编程环境的选择,VC++应用程序的开发主要有两种模式,一种是WIN API方
式,另一种是MFC方式,传统的WIN API方式比较繁琐,而MFC是对WIN API再次封装,MFC相对于WIN API开发更具备效率
优势,开发者只要在局部做简单地修改,即可处理大部分窗口事物。MFC封装了200多个类并且提供了友好的界面环境,具有
类管理灵活方便、代码编写和界面设计集成交互操作、可移植性强等优点,与各种数学手段和数据处理、分析算法相结合还可
以实现海量数据分析,智能、快速、灵活数据处理,使便携现场检测仪器功能强,灵活度高,速度快,扩展性好。
串口通信具有连续简单、使用灵活方便、数据传递可靠等优点,在数据采集系统、监控系统和通信系统中,得到广泛的应
用。在Win32下,用来实现串口通信的编程方式有两种:其一可以调用Windows的API函数,其二可以使用ActiveX控件。调用
Windows提供的API函数,可以实现用户自定义功能,自由度高,缺点是这种方法编写复杂,需要清楚地掌握串口通信机制;
使用ActiveX控件可以屏蔽底层的通信协议,只需对控件的属性进行设置并添加响应的响应处理函数即可实现串口通信中的数
据收发,缺点是不支持用户对属性的修改,只能使用控件提供的功能,在使用时有一定限制本文要实现RS232协议的串口通
信,采用ActiveX控件即可满足需求。
2.通信原理
PC机给单片机发送一个55(发其他的数据单片机不响应),单片机通过串口将返回三个数据传给PC:个是AA(作为数据
包开包的用的);第二个数据是一个随机数,第三个数据时EE(作为数据包结束的标志)。
点击接收数据就会在PC机上以16进制、ASCII码、10进制方式显示出来。指示灯LED:红色的是电源灯,单片机处于待机
状态时:绿灯亮,黄灯不亮;到单片机收到55数据时,单片机要返回数据的过程中:绿灯亮,黄灯会一闪(指示在发送数
据)。
3.硬件
单片机和PC机的波特率都设置为9600kbps.上位机的串口是COMl,其电平是RS232电平,而下位机的电平是T T L电平,
所以需要电平转换芯片MAX3232进行电平转换,实现PC机和单片机的通信。在MAX3232芯片上,选用其中一路发送/接
收,R20UT接PIC16f877的RX,T2IN接PIC16f877的TX,T20UT接PC机的RD,R2IN接PC机的TD,这样就能实现单片机与计算机
互联通信。图1为单片机与PC的连接示意图。
4.软件
MSComm通信控件是常用的ActiveX串口控件之一,它提供了一系列标准协议的通信接口,可以连接到其他通信设备(如
单片机,以及本系统使用的FPGA),而且在VC++、VB等语言中使用[8].通过建立串行通信,完成命令发送、数据发送/接
收、监视和响应在通信过程中可能发生的各种事件和错误。本文选用MSComm控件采用事件驱动机制。一般情况下,事件发
生时将产生通知,MSComm控件提供的OnComm事件可以用来捕获并处理这些通信事件。可以通过在OnComm事件处理函数
中加入读取串口程序代码和处理数据代码来提高程序响应度及可靠性。图2为本文设计的软件界面。
评论0