基于Proteus平台带存取功能的风速风向 测量仪的仿真研究
2019-09-10张志强付佳周文浩邹静
张志强 付佳 周文浩 邹静
摘 要:本文基于Proteus仿真平台研究了一款风速風向测量仪。该测量仪以STC12C5A60S2单片机为主控处理器,采用555时基振荡器模拟风速传感器信号,通过设置时钟源频率调节风速,采用ADC0832转换芯片模拟采集风向数据,采用24C02系列EEPROM存储器存取风速风向等数据,最终在数据显示终端LCD1602上显示。
关键词:单片机;555时基振荡器;ADC0832
中图分类号:TP368.1 文献标识码:A 文章编号:1003-5168(2019)01-0065-03
Simulation of Wind Speed and Wind Direction Measuring Instrument
with Access Function Based on Proteus Platform
ZHANG Zhiqiang FU Jia ZHOU Wenhao ZOU Jing
(School of Information Engineering, Wuchang Institute of Technology,Wuhan Hubei 430065)
Abstract: Based on Proteus simulation platform, a wind speed and direction measuring instrument was studied in this paper. STC12C5A60S2 MCU was used as the main control processor, 555 time-base oscillator was used to simulate the wind speed sensor signal, the wind speed was regulated by setting the clock source frequency, and ADC0832 conversion chip was used to simulate the acquisition of wind direction data, 24C02 series EEPROM memory was used to access wind speed and direction data, and finally displayed on the data display terminal LCD1602.
Keywords: single chip microcomputer;555 time base oscillator;ADC0832
风作为一种自然现象,是影响气候变化的最重要因素之一。本身又蕴藏着巨大的能量,能对人类活动产生重大影响。近年来,随着人类对风的认识不断加深,越来越多的场合需要对瞬时风速风向值、平均风速风向值、最大风速、极大风速等数据进行测量,如气象(如台风数据)、民航(飞机起飞、降落时风的可靠数据)、公路、桥梁(建造公路、桥梁需要的风参数)、新能源(风能发电前期需要的风数据)等领域[1]。因此,设计一款风向风速测量仪具有重大意义。
1 整体设计方案
本设计采用STC12C5A60S2单片机作为主控制核心,通过风向采集模块采集风的流向,通过A/D转换模块处理得到的模拟信号量,之后将转换后的信号发送给STC12C5A60S2单片机,而风速的采集是直接通过风速采集模块发送给STC12C5A60S2单片机的,在经过STC12C5A60S2单片机处理后,将处理后的信息显示在显示模块上[2-5]。
本设计应用的风速风向测量仪的系统框图如图1所示,包含风向采集模块、风速采集模块、A/D转换处理模块、STC单片机模块、LCD显示模块等。
2 仿真设计
风速风向测量仪的整体仿真电路如图2所示。
当进行仿真时,风速风向模拟信号均需经过单片机的处理,才能在LCD显示屏上显示测量出的风速风向数据。
A/D风向转换模块采取外挂式,通过调试void AD_read()、void AD_display()AD程序模块,将AD值均等转换为0°~360°风向值,并正常显示在LCD1602的适当位置。
调节可变电阻RV1,改变风向度,信号经过A/D转换后,通过单片机处理后显示风向度数。
风速脉冲信号是通过按键K1和K2进行模拟产生的。首先,将K2锁定并释放K1,通过运行void Timer0_isr(void)interrupt 1定时中断程序和void EXIT0_isr(void)interrupt 0外部中断程序,同时调整555时基振荡器的主要元件R1、C1以及RV2的值,可使接收的模拟风速信号在0~80m/s,并通过LCD液晶屏显示出来。本仿真设计中,R1值为750Ω,C1值为1.5[μF]。其次,将K1锁定并释放K2,可切换到DC时钟模式,此模式只需修改DC时钟的频率值即可调整其风速值,该值为0~80m/s。
EEPROM存储模块也采用外挂式,通过调用写函数void WriteSet(unsigned char add,unsigned char dat),可将风向风速值写入24C02存储器中。调用读函数unsigned char ReadSet(unsigned char set_add),可将风向风速值读出,此模块只要写入和读出地址一一对应,就可以正常运行。
3 程序流程
主程序流程如图3所示。
<F:\欢欢文件夹\201904\河南科技201901\河南科技(创新驱动)2019年第01期_103595\Image\9H_N)1Y(IR]1D{CTP5[NLCD.png>[开始][定时器初始化][LCD初始化][Flag=1显示风速][显示风向值][按键检测][W=0存储风速风向值][R=0读取上次
风速方向值并显示3s]
图3 主程序流程图
该仿真风速风向测量仪的主要模块是风速信号采集部分,采用测频法对输入信号的频率加以识别。
在本系统中,已知风速为0~80m/s,所以T/C1编程为定时方式时,在12MHz晶振作用下,其最大定时时间为65.536ms,在计数范围内,设计定时器每隔50ms进入一次中断,片内RAM的内容加一计数,当RAM计数到20次时(50ms),即表示1s时间到,这能扩大单片机的计数范围。但是,同时也引进了中断响应的时间误差,我们称之为“软件误差”。频率计的核心是时间基准的正确性,因此,在中断后重置定时器时间常数时,不能简单地采用重置办法。从单片机的中断响应系统及其响应过程可得出以下结论。
①定时器每次溢出中断时,WAIT语句必须执行完才能响应,该条指令的执行时间为2μs,笔者取其均匀延迟时间为1μs。
②CPU响应中断到执行中断服务程序首条指令至少需要3个完整的机器周期,即延时3μs。
③中断服务程序中实际的定时时间是在执行完时间常数的装载指令后才开始的,两条装载指令占用4μs。根据以上分析,每次中斷后,将延迟约8μs后才开始定时。实际获得的定时时间必须考虑8μs的延迟,所以,需要采用软件补偿的处理方法来降低其影响,即减小TH0、TL0的值来达到补偿要求。由于软件修正相当方便,在仪器调试中可作进一步的调整,因此基本上可消除软件误差。
④开外部和定时中断后,外部中断设置为上升沿触发,随时检测外部中断请求信号,一旦有则转进相应的中断服务程序开始计数,同时启动定时器开始计数,否则返回显示程序。当定时器计数到1s时间时,对外部中断计数值进行处理并显示到LCD1602显示屏上,显示所测的风速值。
4 结语
本文介绍了风速风向测量仪整体的设计流程、系统器件的选择以及预期达到的功能,对软硬件分别进行分析,详细讲解了各电路的设计原理以及程序实现等。
整个仿真的设计是本着以可靠性为目标,尽力做到和实物接近的思想,仿真程序和实物程序可能存在差别,但修改量不会太大,主要体现在外部器件的驱动时序上,毕竟仿真是模拟性质的,而实物是实在的硬件。在移植到硬件上时,需对相关部分进行相应修改。在仿真时,风速风向的测量值经过精心调试,其精度还是比较满意的。本电路虽然完成了想要的基本功能,但还存在很多不足的地方,由于自己水平有限,对其中的原理和实际操作方法还是有待继续深入学习研究和提高。
参考文献:
[1]楚航,赵佳佳.基于STM32F4的超声波测风速风向仪的设计[J].自动化技术与应用,2017(7):133-136.
[2]陈燕鹏.一种新的风速风向测试方法研究[D].昆明:云南师范大学,2015.
[3]贾玉凤,宋成祥.一种光电式风速风向测量系统[J].电子技术与软件工程,2014(20):84-85.
[4]陆健.基于超声波的风速风向测量研究[D].南京:南京信息工程大学,2015.
[5]梁家怡.超声波二维风速风向测量系统设计[D].哈尔滨:哈尔滨理工大学,2013.