基于单片机的倾角测量系统设计

[09-12 17:58:10]   来源:http://www.88dzw.com  单片机学习   阅读:8528

文章摘要:2.5 电源部分为了减少模拟信号噪声,采用MAXIM公司的低噪声高稳定性MAX6325电源芯片给ADS1211提供参考电源,使用MAX6350芯片给ADS1211提供模拟电源,同时也给传感器提供电源。3.软件设计软件分为下位机软件和上位机软件两部分。3.1单片机软件编程对于51系列单片机,目前有汇编、PL/M、C和BASIC四种语言支持。本文下位机软件采用Keil C51程序编写。主要由主程序、读ADS1211子程序、读SCA100T子程序、串口发送子程序和命令接收子程序等部分组成。图1.4为程序流程图:图4单片机程序流程图如图所示,整个程序采用顺序结构。为了加快系统的响应速度和提高计算精度,

基于单片机的倾角测量系统设计,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

2.5 电源部分

  为了减少模拟信号噪声,采用MAXIM公司的低噪声高稳定性MAX6325电源芯片给ADS1211提供参考电源,使用MAX6350芯片给ADS1211提供模拟电源,同时也给传感器提供电源。

3.软件设计

  软件分为下位机软件和上位机软件两部分。

3.1单片机软件编程

  对于51系列单片机,目前有汇编、PL/M、C和BASIC四种语言支持。本文下位机软件采用Keil C51程序编写。主要由主程序、读ADS1211子程序、读SCA100T子程序、串口发送子程序和命令接收子程序等部分组成。图1.4为程序流程图:




  图4单片机程序流程图

  如图所示,整个程序采用顺序结构。为了加快系统的响应速度和提高计算精度,运算由上位机程序完成,下位机只负责数据采集和数据传输。命令接收子程序通过接收上位机传输的命令进行系统自检、参数修正等等。上位机的命令发送采用间隔10ms反复发送的方式,直到单片机将接收到的命令返回为止。如在1s内单片机没有响应,则设置超时,系统复位单片机。

3.2 上位机软件编程

  单片机与上位机的通讯采用Visual C++6.0编写,程序在Windows XP下编译通过。 

3.2.1串行通讯的实现

  目前串行通讯主要有两种实现方法:一种是利用Windows AP  
I函数或是利用Microsoft Visual Studio的ActiveX控件MSComm。利用Windows API函数进行串口编程实现了设备无关性,但此种不但调用了大量的API函数,还涉及到进程调用问题,编程十分复杂繁琐。

  本文采用MSComm控件,它间接调用Windows API函数,使编程人员在程序设计的时候不必再考虑复杂的系统函数,使编程工作变得简便,同时又能满足实际情况的工控要求。

  实现测量系统与PC机的通讯,首先在程序里嵌入MSComm控件,并设置通讯参数,这里设置波特率为2400bps,8位数据位,无奇偶校验位,接收数据时采用事件驱动方式,响应Oncomm事件,当接收缓冲区中接收到的字符数超过一定值产生缓冲区有字符事件。然后用GetInput()读取缓冲区,用SetInputMode(1)设置输入数据类型为以二进制方式取回数据。这样可以接收ASCII字符‘0’。

3.2.2 倾角的计算

  由上位机取得数据后,按下面的修正公式计算:


4.结束语

  本测量系统研制成功后,已经过了三个月的海试,工作稳定,达到了预期的设计要求,取得了较好的效果。采用加速度计式的倾斜传感器与传统触点电位器式的倾斜传感器相比,有着无可比拟的优点。如加速度计式的倾斜传感器工作寿命长、精度高、响应速度快等优点。

参考文献

  [1]胡汉才 单片机原理及其接口技术 清华大学出版社
    [2]宋跃等 存储示波表中常用电气参数测量设计 微计算机信息 2005年21卷 11s期
  [3]辉格科技 利用加速度传感器测量倾角 技术文档 
  [4] VTI Technologies  Improved Output Filtering  Technical Note 18
  [5]龚建伟、熊光明 Visual C++/Turbo C串口通讯编程实践 电子工业出版社

上一页  [1] [2] 


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行