matlab与51单片机的串口通信

matlab与51单片机的串口通信

ID:1205593

大小:3.79 MB

页数:20页

时间:2017-11-08

matlab与51单片机的串口通信_第1页
matlab与51单片机的串口通信_第2页
matlab与51单片机的串口通信_第3页
matlab与51单片机的串口通信_第4页
matlab与51单片机的串口通信_第5页
资源描述:

《matlab与51单片机的串口通信》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数字信号处理2012电子信息工程专业答辩报告姓名杨全任伟学号201252241201251779成绩2014-----2015秋冬季学期Matlab与51单片机的串口通信一、简介从Matlab6.0版本开始,Mathworks公司在软件中增加了设备控制箱(instrumentcontroltoolbox),提供了对RS-232/RS-485通信标准串口(九针串口)通信正式支持(本实验采用USB转串口)利用该工具箱serial类及instrcallback()回调函数,能可靠地进行实时串地通信。Matlab支持

2、面向对象技术,用一个对象将计算机串口封装起来,只要创建串口对象,对串口对象操作就是对串口操作,非常方便。使用serial函数就可创建串口对象,通过定义串口对象的属性,能定义串口的通信模式,从串口对象属性也能了解串口的状态,即可以通过MATLAB的串口通讯函数读写数据。二、Matlab串口函数serial创建一个串口对象,格式:s=serial('coml')fopen打开串口对象,格式:fopen(s)fwrite其他程序能对该串口进行读写操作fwrite(s,’’)fread读取串口数据,格式:fread(

3、s)fclose关闭串口对象,格式:fclose(s)free  解除Matlab对串口对象的控制,使delete删除对象s,格式:delete(s)clear从工作空间中删除对象s,格式:clear(s)三、实现功能利用MATLAB串口通信函数,读写51单片机(STC89C52R+)数据,运用keil编写时钟程序,烧录到单片机中,时钟程序实现的功能是实现时钟的显示,并且能用开发板上的三个按钮进行时钟的修改,一个按钮进入修改模式(复位),另两个实现时间的增减。编辑MATLAB程序,实现对单片机的控制。读写串口

4、操作。初始化并打开串口调协对象之后,现在可以对串口设备对象进行读写操作,串口读写操作支持二进制和文本(ASCII)两种方式。当Matlab通信数据采用西方(ASCII)方式时,读写串口设备命令分别是fscanf、fpritf;当Matlab通信数据采用二进制方式时,读写串口设备命令分别是fread、fwrite。2014-----2015秋冬季学期一、具体实现4.1开发板4.2实现流程先创建创建串口设备对象,配置串口初始化的对象属性,连接窗口物理设备(开发板),写发送通信握手信号;进行读写操作(串口发送接收数

5、据)。4.3时钟程序见附录(添加串口接收部分)4.4Matlab的操作如下%%%%%%默认COM4属性设置%%%%%s=serial('com4')%开启串口COM4的函数并设置属性SerialPortObject:Serial-COM4CommunicationSettingsPort:COM4BaudRate:9600Terminator:'LF'CommunicationState2014-----2015秋冬季学期Status:closedRecordStatus:offRead/WriteState

6、TransferStatus:idleBytesAvailable:0ValuesReceived:0ValuesSent:0>>fopen(s);%打开s(COM4串口)>>fwrite(s,'00000000')>>fwrite(s,'00000000')%显示清零;及时拍下数码管显示如下图fwrite(s,'000CFE')%数码管显示00010及时拍下数码管显示如下图>>fwrite(s,'000CFE')%写入数据2014-----2015秋冬季学期>>v=fread(s,30);%读取前30个数据

7、>>dec2hex(v)%转换成16进制输出ans=8080A0888080A889808008808080MATLAB串口输出的数据与串口输出的数据作比较可以发现读取的数据一样,由于时钟程序反馈的数是变化的所以不能够比较准确的将它们一个不差的比较出来。五、总结:2014-----2015秋冬季学期用MATLAB的串口功能与一般的串口调试助手的功能是一样的,都能准确的读写数据,可以接受和发送一般十六进制的数。总的来说本实验还有一些要改的地方比如说,在51程序的设计方面有些地方编写的不太好(基本功能:波特率96

8、00,发出十六进制的数据,触发串口中断,接收十六进制数完成功能调试),用MATLAB串口和超级串口来接收和发送数据的时候不太理想,会出现一些误差使得反馈值计算错误,由于MATLAB的GUI(图形用户界面)的设计上知识的不足没能完成,如果编写好回调函数,使用MATLAB的GUI做一个电子时钟显示就更好了。六、附录51程序(添加串口发送和接收功能可以进行MATLAB的GUI设计)#include

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

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

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