新闻中心

EEPW首页>嵌入式系统>设计应用> AVR单片机和Matlab串口通信的计时器系统

AVR单片机和Matlab串口通信的计时器系统

作者: 时间:2013-11-12 来源:网络 收藏

Bytes available事件需要事先设置。可以使用函数set(obj,“By tesAvailableFcnMode”,“byte”)和set(obj,“BytesAvailableFcnCount”,3)。以上两个函数设置为当串口检测到输入缓存中达到了3个字符的数据时,则触发串口中断。

② 串口中断处理函数。串口中断处理函数可以根据用户需要自行定义。如串口读中断处理函数可以这样定义:obj.BytesAvailableFcn=@receiveData。receiveData即为串口读中断处理函数。在读中断处理函数中可以进行串口读操作,即将输入缓存区中的数据读到用户自定义的存储变量中,以备后续的数据处理与分析。[7]

4.2基于GUI界面的计时器实现

  利用的GUI设计出整体的控制界面,界面功能包括:可以设置串口参数如端口号、波特率、数据位、校验位和停止位;计时器显示窗口,能实时显示计时器的时间;还具有实现打开串口、开始计时、停止、重置等功能的按钮。设计的GUI控制界面如图5所示。

AVR单片机和Matlab串口通信的计时器系统

图5 GUI控制界面

  单片机发过来的信号,触发上的串口中断,标志FLAGA/FLAGB置位,进而可以使计时器停止计时。同时,在GUI界面上,也可以通过手动按键使标志FLAGA/FLAGB置位,停止计时。计时部分的程序流程图如图6所示。

AVR单片机和Matlab串口通信的计时器系统

图6 计时部分的程序流程图

  Matlab文件编译完毕后,生成的可执行程序还需要Matlab环境的支持。为了使本设计更广泛地应用到一般用户,需要发布到没有安装Matlab的机器上运行,还要进行最后一项工作,即打包Matlab组件运行环境(Matlab Component Runtime,MCR)。将MCR与可执行程序一起打包,拷贝到其他没有安装Matlab的机器上,在该机器上安装MCR,安装完毕即可直接在该机器上运行编译的Matlab可执行程序。[8]

5 系统设计及应用中需注意的问题

实际测试时,光电开关在环境照度较高时,一般都能稳定工作。但应回避将传感器光轴正对太阳光、白炽灯等强光源。在不能改变传感器(受光器)光轴与强光源的角度时,可在传感器上方四周加装遮光板或套上遮光长筒,以确保光电开关可靠工作。

  另外,在ZigBee无线通信模块配置时,应注意选择合适的通信信道,以避免WiFi的干扰。在同一个网络中,无论是终端设备还是中心节点,ID设置必须相同,模块间才能正常通信。同一个网络中,所有模块的串口超时时间设置必须相同,否则不能同步,通信也会失败。

结语

  在本设计中,主要以ATmega16单片机作为信号采集系统,通过串口和上位机的Matlab进行信号通信,通信采用ZigBee无线通信模块实现,使系统灵活性、可扩展性大大增强。本文利用Matlab GUI进行了包含一般界面元素的界面开发,在此基础上,加入功能和计时器计时功能。GUI设计出的人机友好界面,使得系统简单易懂,操作起来更加方便。

单片机相关文章:单片机教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理


通信相关文章:通信原理


光电开关相关文章:光电开关原理

上一页 1 2 3 下一页

关键词:AVR单片机Matlab串口通信计时器系统

评论


相关推荐

技术专区

关闭