基于单片机的风速风向检测系统设计
0 0 0 米, 数据输入接M A X 4 8 5 的A 、B 端输出, 并由LPC921 提供休眠控制,电源则共用系统电源模块的3.3 V 或5 V 电源。
4 软件设计
4.1 风速测量程序设计
由测风传感器资料可知,V= 0.1 F,其中F为传感器输入到单片机的脉冲频率。将T1做为定时器, 将T0作为计数器。T1与T0同时工作, 如果T1定时1秒, 则T0计数值即为此刻风速的10倍。由此可知最终的风速测量精度为0.1 m /s。LPC921 的两个定时计数器共有5 种工作模式,本系统选择模式1,即T0,T1 均为16 位定时器/ 计数器,THn 和TLn 级联,无预分频器。
系统选用7.373MHz 外部晶振, 在不预分频情况下, 定时计数器工作频率为:7.373/2MHz。16 位的定时器在初值为0 的情况下, 溢出一次共计时次数为6 5 5 3 5(0xFFFFH),共计时时间为17.777ms,所以在定时器中断56 次之后共计延时约1 秒。
风速测量子程序流程图如图4 所示。
图4 风速测量子程序流程图
4.2 风向测量程序设计
风向测量先测得7 位格雷码的输入, 通过7 位输入值计算出格雷码, 再通过格雷码换算成二进制码, 最后通过查表法得出风向角度。
格雷码(Gray code),又叫循环二进制码或反射二进制码。格雷码属于可靠性编码, 是一种错误最小化的编码方式, 因为, 自然二进制码可以直接由数/ 模转换器转换成模拟信号, 但某些情况, 例如从十进制的3 转换成4 时二进制码的每一位都要变, 使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点, 它是一种数字排序系统, 其中的所有相邻整数在它们的数字表示中只有一个数字不同。它在任意两个相邻的数之间转换时, 只有一个数位发生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。
表1 方位- 角度- 格雷码- 二进制码对照表
n 位格雷码转换到n 位二进制码的逻辑关系式(B 代表二进制码,R 代表格雷码):
在C 语言里面实现风向格雷码到二进制码转换程序如下:
Wind_Tbl 数组里面依次存储的是二进制码对应的角度值, 该值来源于方位- 角度- 格雷码- 二进制码对照表, 该表由传感器资料提供。如表1 所示。
5 结束语
LPC921 本身自带一个全双工的串行口,使用RS485收发器可以与外部进行485 串行通信。通过编写简单通信协议,多个风速风向测量子系统都可以与PC 进行数据通信。最后在PC机上编写上位机程序, 定时或主动给下位机发送请求数据命令,下位机收到命令进行地址,命令类型和校验等检验后给上位机发送数据, 上位机收到命令后进行校验, 然后进行数据存储和显示。实践证明本系统在测量风速风向上有着较高的准确性和可靠性。
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)