微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 霍尔传感器应用于采集与显示信号系统中的设计方案

霍尔传感器应用于采集与显示信号系统中的设计方案

时间:06-09 来源:中国IC网 点击:

串行口,当工作于方式1,2和3时,UART(通用异步接收和发送)可以实现单片机系统与PC机之间的串行通信。PC机串行通信主要是通过串行口芯片8251实现的。8251有10个寄存器,端口地址从3F8H~3FEH(c0M1),可以通过对8251编程来指定通信协议即通信的波特率、数据位数、奇偶类型和停止位长度。另外由于Pc机串口的电平是RS 232电平,不与单片机串口的TTL电平兼容,因此需要在它们之间进行电平转换。传统的方法是使用MCl488将TTL电平转换成RS 232电平,用MCl488实现反向转换,由于MCl488需要±12 V电压,使用中非常不便,故该设计采用MAXIM公司的产品片MAX232来实现,由单+5 V的电压供电,既可实现TTL到RS 232的电平转换,也可实现RS 232到TTL电平的转换,使用十分方便,具体的线路如图5所示。

  

  3 软件实现部分

  3.1 单片机部分

  AT89C51系列单片机的串行口可工作于4种不同的方式。在该程序中,单片机串行口工作设定为方式1,即数据经TxD端发送,RxD端接收,波特率2 400 b/s,10位构成一帧,l位起始位,8位数据位,1位停止位,初值0F3H,SMOD=1。

  由于单片机多应用于实时性较强的控制场合,为了尽量少占用CPU的时间,充分发挥CPU的功能。该系统在单片机程序设计中采用中断方式与PC机进行通信。主程序只进行串行通信、数码管实时显示、模/数转换结果的初始化和循环等待串行中断工作,当接收到PC机发来的信号时,就转人中断服务程序,进行A/D转换,并向Pc机发送数据。中断服务子程序流程图如图6所示。

  

  以下仅给出串行通信初始化和中断服务子程序代码:

  串行通信初始化程序为:

  

  3.2 PC机部分

  在Windows中,串行口的硬件设备通过通信驱动程序comm.drv与windows进行连接,通过使用标准的windows API函数发送和接收数据。而MSComm控件通信功能的实现,是调用windows API函数,并通过设置其属性和事件,来定义windows通信驱动程序的API函数接口,为应用程序提供了通过串行接口收发数据的简便方法。

  MSCOmm控件提供了2种处理通信的方法:一是事件驱动方法,也就是利用OnComm事件,这是一种处理串行端口活动非常有效的方法,不仅能够利用MSCOmm控件来侦测并处理通信事件和错误,而且还具有程序响应及时、可靠性高等优点;另一种方法是查询法,MSComm控件的C0mmEvent属性返回通信中产生的事件和错误类型,由通信控件自动检测和跟踪通信状态后设置。因此可以直接读取CommEvent属性的值来检测通信中产生的事件和错误类型,这种方法比较简单,常用在小的自含程序中。

  该设计程序即采用查询法读取InBufferCount的属性值来接收单片机发来的数据。实验主程序对串口初始化并画出坐标系;每单击‘绘点’键程序向单片机发送一个任意数,告诉单片机将模数转换结果发送过来,然后采用查询方式接收该数据,进行相应的转化后把该点绘在坐标系上,一次数据采集结束。

  MSComm控件的常用属性:CommPort:设置并返回通信端口号;Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位;Pott()pen:设置并返回通信端口的状态也可以打开和关闭端口;Input:从接收缓冲区返回和删除字符;Output:向传输缓冲区写1个字符串。

  该实验的Coml口串行通信初始化程序如下:

  

  从图7中PC机界面显示位移一电压坐标图,表1记录的数据以及图8在示波器上显示的霍尔线性电路理想电压一位移曲线图相比较,可以发现由于传感器实验台受外界干扰等原因使得输出信号输出误差在所难免,而且没有电平转换,使得VB绘图中得到的数值存在负值;但是可以在图中看到传感器输出的电压值在正负之间有明显的对称性,与要求输出的理想输出信号波形相符合,证明本系统运行良好,设计的非常成功。

  

  4 结 语

  对于目前广泛应用的WindOWs环境下实现PC机与单片机之间的通信问题具有重要的参考价值。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top