电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

串行口传输各种数值数据VIP免费

串行口传输各种数值数据_第1页
1/6
串行口传输各种数值数据_第2页
2/6
串行口传输各种数值数据_第3页
3/6
利用串口传输各种数值数据二、MCS-51单片机端设计1、通信协议为做演示说明我们仅发送3个数据顺序依次为:字符型数据、整型数据、浮点型数据,字符型数据、整型数据、浮点型数据在MCS-51单片机的C语言中分别占用1、2、4个字节。由于是采用周期性的数值数据发送方法,为使PC机端能准确接收所发送数据设计数据包如下:所有数据按发送顺序及占用字节数顺序排列,等待发送。数据包以两个字节的数据0XFF表示数据包结尾。当等待发送数据为0XFF时,插入转义字符0X27,避免发送数据中出现连续的两个0XFF,造成虚假的数据包结尾。插入的转义字符在接收时自动删除,为避免发送数据为0X27时被自动删除,在其后也插入转义字符0X27。2、单片机程序设计由于发送、接收双方距离较近,故波特率设置为9600bps、数据位数为8位、没有奇偶校验位、1位停止位。系统的定时器/记数器T0、T1已另作它用,故选择T2做为波特率发生器。使用T2做为波特率发生器时不会产生通讯中断。单片机发送程序由两个子程序组成:串口初始化、数据发送。代码如下:voidinit232(void)//串口初始化子程序{SCON=0x50;PCON=0x80;T2CON=0x34;RCAP2L=0xb2;RCAP2H=0xff;TL2=0xb2;TH2=0xff;TR2=1;}voidsenddata()//数据发送子程序{uchardata*datapd;uchari;pd=&char_data;//sendchardataSBUF=*pd;while(TI==0);TI=0;if(((*pd)==0xff)||((*pd)==0x27)){SBUF=0x27;while(TI==0);TI=0;}pd=&int_data;//sendintdatafor(i=0;i<2;i++){SBUF=*pd;while(TI==0);TI=0;if(((*pd)==0xff)||((*pd)==0x27)){SBUF=0x27;while(TI==0);TI=0;}pd++;}pd=&float_data;//sendfloatdatafor(i=0;i<4;i++){SBUF=*pd;while(TI==0);TI=0;if(((*pd)==0xff)||((*pd)==0x27)){SBUF=0x27;while(TI==0);TI=0;}pd++;}SBUF=0xff;//sendendflagwhile(TI==0);TI=0;SBUF=0xff;while(TI==0);TI=0;}数据发送子程序利用指针指向要发送数据,然后根据数据占用字节数,确定循环次数,在循环体内发送。由于我们定义的指针是字符型,在其指向整型数据、浮点型数据在内存的首地址时,编译器会给出WARNING性提示:“pointertodifferentobjects”,它并不会影响程序的执行效果,可不予理会。要避免出现WARNING性提示,可采用计算机端的方法定义联合体型数据来解决,但代码会很长;另外编译器一般会按定义的次序顺序为变量分配内存,所以指针只要指向要发送的第一个数据,再根据全部数据占用字节数进行循环可极大减少代码长度。三、计算机端设计VisualC++6.0是Windows环境下的一种简单、高效的可视化编程语言开发系统,以其可视化界面设计风格和面向对象的程序设计等特点在工程实践中得到了广泛的应用,其简洁性和实用性已经受到了众多计算机用户和程序员的欢迎,尤其是其6.0版本,功能强大且易于掌握。它不但提供了良好的界面开发环境,而且具有功能强大的通信控件MicrosoftCommunicationsControl(MSComm)实用性强、功能完善,是实现计算机与外部设备数据交换的强有力工具,提供了很强的串口通信能力。计算机端设计过程如下:1、在程序中嵌入通讯控件启动VisualC++6.0,利用MFC的AppWizard新建一个项目文件,并命名为CommTe。在Appwizard第一步选择基于对话框的应用程序类型(Dialogbased)。在第二步将ActiveXControls复选框选中,表示本程序支持ActiveXControls控件。其他均接收缺省设置,AppWizard将自动生成一个以对话框为主窗口的应用程序。单击Progect菜单,从菜单中选AddtoProject,再单击CommponentsandControl,从弹出对话框中单击RegisteredActiveXControls,在列表框中选MicrosoftCommunicationsControl,单击OK。这时会询问你是否加入CMSComm类,单击OK,返回后看到控件工具条上添加了一个通讯控件(在图中用标有“电话”的方框表示),将其拖放到对话框中此时项目中增加一个类MSComm。2、设置通讯控件的属性值通过设置MSComm控件的属性对串口实例进行初始化,在OnInitDialog()中填入如下代码:m_comm.SetCommPort(1);//指定串口号m_comm.SetSettings("9600,n,8,1");//通信参数设置m_comm.SetInBufferSize(256);//指定接收缓冲区大小m_comm.InputMode(1);//设置数据获取方式m_comm....

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

串行口传输各种数值数据

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部