您当前的位置:五五电子网电子知识单片机-工控设备单片机通信Matlab环境下PC与单片机的串行通信 正文
Matlab环境下PC与单片机的串行通信

Matlab环境下PC与单片机的串行通信

点击数:7699 次   录入时间:03-04 11:37:01   整理:http://www.55dianzi.com   单片机通信
4.png

    Matlab安装目标下有两个instrcallback.m文件,我们只需要修改@instrument目录下的instrcallback.m文件即可。当然,在修改instrcallback.m文件之前,最好对其做一个备份。另外,需要注意的是:程序调试过程中如果再次修改了该回调函数,要重新启动Matlab配置该文件,才能使得新的回调函数文件生效。 修改后的instrcallback.m文件见网站www.dpj.com.cn。该修改后的回调函数能够完成如下任务: ①实时接收单片机实时5ms发送的33个串行通信数据,其中包括1个握手信号和32个A/D转换数据(这些数据是PIC单片机系统采集到的传感器信号,每个数据占1字节),并存储在out数组中; ②对接收到的数据进行处理,由于PIC单片机的A/D转换值为10位,占2字节,而单片机每次只能传送1个字节的数据,故将收到的每两个通信数据整合成为 1个真实的A/D转换数据,共16个A/D转换数据,并存储在Dataout数组中; ③将接收到的串口数据存储到serialdata.txt文件中,将整合后的单片机A/D转换数据存储到一个以中断事件发生的时间为文件名的txt文件中; ④根据A/D转换数据,利用Matlab求其最大值、最小值和平均值,并利用FIR滤波器对传感器信号A/D转换值作FIR滤波处理,得到窗格为5的滑动滤波平均值; ⑤利用Matlab中的plot()函数实时绘制单片机采集到的传感器信号的原始波形图和FIR滤波后波形图,如图5所示,可以看到经过FIR滤波后的传感器动态信号值较为稳定,精度大幅提高。 实验证明,基于Matlab中断方式的PC机与单片机的实时串行通信稳定可靠,处理数据方便,编程简单,开发效率大大提高。

4 结论 本文介绍的基于Matlab环境下PC机与PIC单片机串行通信的实现方法,利用Matlab的Instrument Control Tollbox的serial类及instrcallback()回调函数,实现基于事件驱动的实时中断通信。使开发人员可以充分利用Matlab工具箱中的现有函数,方便地实现串行通信、数据分析处理和图形显示,大大简化系统上位机软件的编程工作量。



上一页  [1] [2] 


本文关键字:单片机  通信  单片机通信单片机-工控设备 - 单片机通信