《光电检测技术及系统》课程设计 ----气体流速测试系统设计 日 期:2017 年 11 月 21 日 目录 摘 要 1 引 言 2系统总体设计 2.1总体框图: 3 硬件电路设计 3.1 主电路 3.2 开关和电源 4 制作与调试 4.1 硬件电路的布线与焊接 4.2 调试 4.3 实测及误差分析 测试方案: 测试结果: 5 结论 参考文献 附录 附录1: 原理图 附录2: 源程序
摘要 在供热和空气调节中,常需对流体尤其是气流的速度进行测量。通过它,可以了解飞流的流动规律,也可经过一定计算得到其休积流量、质量流盈或动压等有关参数。该气体流速测试系统以传感器与单片机STC12C5A60S2组成的气体流速测试系统。流速传感器将采集到的流速数据传给单片机,单片机再对接受到的数据进行处理,将数据传送到LCD1602液晶显示屏上进行显示。
1 引 言气体流速的检测和控制关系着产品的性能,是装置能否安全运行的一个重要指标,气体流速对一些大型反应装置起着控制作用,可以通过检测气体流速来实现对反应的控制。可见气体流速的检测对人们的重要性,本设计就是对气体流速的测量。气体流速测试系统以传感器、单片机STC12C5A60S2与LCD1602液晶组成的气体流速测试系统。 2系统总体设计2.1总体框图: 如图2-1所示,该气体流速测试系统总共由传感器、单片机、显示模块组成。传感器采集数据,输入单片机内部A/D、D/A,将数据处理后输出液晶显示,存入EEPROM存储。
2.2流速仪的测量方法
在供热和空气调节中,常需对流体尤其是气流的速度进行测量。通过它,可以了解飞流的流动规律,也可经过一定计算得到其休积流量、质量流盈或动压等有关参数。 在此要特别指出流速有线流速w与平均流速w之分,如未特殊声明,流速常指平均流速w。测量风速的方法有气压法、机械法与散热率法。气压法是通过测员压差来侧及流速的。 用机械方法测量风速的仪表有翼式风速仪、杯式风速仪,流速测算仪,它是利用流动气体的动压推动机械装置,如图所示。这两种均由叶片带动叶轮回转,其转速与气流速度成正比。“叶轮转速通过机械传动连接到显示或计数装置,以显示其所测风速的大小。 散热率法是利用流速与散热率成对应关系原理而设计的,或测相等散热暇的时间(卡它温度计),或测温度的变化,或保持原温度的加热电流讯的变化(热线 风速仪)来确定其风速,这一类方法所测最小流速为0.05-0.5m/s,适宜于低流速测量。随着现代科学技术的发展,激光、超声波.射流,甚至利用流体 在特定流道条件下产生旋涡均可精确地进行测速,但此类仪表仪格昂贵、专业性强、在实际推广中受到限制,故此不及以上介绍的几种普及。 流速是一个十分重要的控制变量,通过调节这一变俄,可使其它过程条件维持所需的值,保证生产定额和产品质量,它虽常见,但较难精确测量,一般仅有1-5%精度。
NH-TYJ水文流速测算仪是为试用全国缆道整改技术要求,统一解决各种转子式流速仪在测杆、测船、缆道测流等环境条件下流速测算、显示而研制的新型测算 仪。该仪器由单片机、液晶显示屏和多用途流速仪信号接口等电路组成。所有流速信号的抗干扰处理采用相关流速信号不突变原理,均由软件技术完 成。 利用超声波多普勒原理测量液体流速,利用压力传感器测量液位来检测流量。速度面积模块是ATEX(欧盟潜在爆炸性环境指令)认证1G设备(具有非常高的防护水平) 2.3单片机STC12C5A60S2 STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。 单片机STC12C5A60S2不但和8051指令、管脚完全兼容,而且其片内的具有大容量程序存储器且是FLASH工艺的,内部就自带高达60K FLASHROM,这种工艺的存储器用户可以用电的方式瞬间擦除、改写。而且STC系列单片机支持串口程序烧写。显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护了你的劳动成果。 1. 增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051; 2. 工作电压:STC12C5A60S2系列工作电压:5.5V-3.3V(5V单片机)STC12LE5A60S2系列工作电压:3.6V-2.2V(3V单片机); 3. 工作频率范围:0 - 35MHz,相当于普通8051的 0~420MHz; 4. 用户应用程序空间8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字节; 5. 片上集成1280字节RAM; 6. 通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏,每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55Ma; 7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片; 8. 有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM); 9. 看门狗; 10. 内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接 1K电阻到地); 11. 外部掉电检测电路:在P4.6口有一个低压门槛比较器,5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%; 12. 时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内) 1用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟,常温下内部R/C振荡器频率为:5.0V单片机为:11MHz~15.5MHz,3.3V单片机为:8MHz~12MHz,精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准; 13. 共4个16位定时器 两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器 做串行通讯的波特率发生器 再加上2路PCA模块可再实现2个16位定时器; 14. 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟; 15. 外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块, Power Down模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4, T1/P3.5, RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2 ), CCP1/P1.4 (也可通过寄存器设置到P4.3); 16. PWM(2路)/PCA(可编程计数器阵列,2路): ——也可用来当2路D/A使用 ——也可用来再实现2个定时器——也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持); 17.A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次) 18.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口; 19. STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3);
20. 工作温度范围:-40 - +85℃(工业级) / 0 - 75℃(商业级)21.封装: PDIP-40,LQFP-44,LQFP-48 I/O口不够时,可用2到3根普通I/O口线外接 74HC164/165/595(均可级联)来扩展I/O口, 还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。2.4 LCD1602液晶显示器 LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符。LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。1602液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。 市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 管脚(图2.4.1)功能: 图2.4.1 1602采用标准的16脚接口,其中: 第1引脚:GND为电源地 第2引脚:VCC接5V电源正极 第3引脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4引脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5引脚:RW为读写信号线,高电平(1)时进行读操作, 低电平(0)时进行写操作。 第6引脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳 变时执行指令。 第7~14引脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电 源。第15引脚背光正极,第16引脚背光负极。 特性: 3.3V或5V工作电压,对比度可调 内含复位电路 提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能 有80字节显示数据存储器DDRAM 内建有192个5X7点阵的字型的字符发生器CGROM 8个可由用户自定义的5X7的字符发生器CGRAM 特征应用 微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。 操作控制 注:关于E=H脉冲——开始时初始化E为0,然后置E为1。 字符集 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 在单片机编程中还可以用字符型常量或变量赋值,如'A’。因为CGROM储存的字符代码与我们PC中的字符代码是基本一致的,因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1=‘A’这样的方法。PC在编译时就把'A'先转换为41H代码了。 CGROM中字符码与字符字模关系对照表
字符代码0x00~0x0F为用户自定义的字符图形RAM(对于5X8点阵的字符,可以存放8组,5X10点阵的字符,存放4组),就是CGRAM了。 0x20~0x7F为标准的ASCII码,0xA0~0xFF为日文字符和希腊文字符,其余字符码(0x10~0x1F及0x80~0x9F)没有定义。
3 硬件电路设计3.1 主电路如图3-1所示,整个电路包括流速计、单片机、显示模块这几部分。 系统原理是:通过检测系统中的传感器采集信号,提取有效信号然后单片机将模拟信号转换数字信号,同时在显示模块中显示出气体的流速。
图3-1 总体电路
3.2 开关和电源如图3-2所示,为本电路的开关和电源设计。 图3-2开关和电源 4 制作与调试
4.1 硬件电路的布线与焊接
4.2 调试为了检测气体流速测试系统的可行性,我们做了以下实验:测试系统主电路板及附属电源组成。 对不同地方的气体做出检测。 4.3 实测及误差分析测试方案:第一次在教室内测量空气的流速,第二次在室外测量空气的流速。 测试结果:
5 结论本文设计的气体流速测试系统能计算出不同情况下气体流速。它的应用能准确、高效的反映出当前气体的流速,为一些产品的性能提供保障。气体流速的检测和控制关系着产品的性能,是装置能否安全运行的一个重要指标,气体流速对一些大型反应装置起着控制作用,可以通过检测气体流速来实现对反应的控制。 计量是生产的眼睛。流量计量是计量科学技术的组成部分之一,它于国民经济有着密切的关系。对气体流速测量的研究和开发认知,有着广泛的意义和作用。 参考文献 【1】夏继强。单片机实验与实践教程。 北京:北京航空航天大学出版社, 2001 【2】 孙涵芳。MCS-51系列单片机原理及应用[M] 。北京航空航天大学出版社。1996-4 【3】雷玉堂.《光电检测技术》.北京:中国计量出版社,1997 【4】浦昭邦.《光电测试技术》.北京:机械工业出版社,2005 【5】梁铨廷.《物理光学》.北京:机械工业出版社,2012 【6】朱勇.《光通信原理与技术》.北京:科学出版社,2011 附录附录1: 原理图
附录2: 源程序
单片机源程序如下:
- #include <string.h>
- #include "Lcd12864.h"
- #include "Lcd1602.h"
- #include "PWM.h"
- #include "config.h"
- #include <ds18b20.h>
- #include "ds1302.h"
- #include "eeprom.h"
- #include "uart.h"
- #include "key.h"
- #include "Time.h"
- #include "BH1750.h"
- #include "PulseSensor.h"
- #include "hcsr501.h"
- #include "dht11.h"
- #include "ADC.h"
- void InitTimer0(void);
- unsigned char str[20];
- extern unsigned long PluNum;
- extern unsigned long time_ms;
- extern float ShunShi;
- extern float LeiJi;
- //char displaytemp[16];
- extern unsigned char DealSudu;
- void Init_Timer0(void)
- {
- TMOD |= 0x01;
- TH0 = 0xB1;
- TL0 = 0xE0;
- EA=1;
- ET0=1;
- TR0=1;
- EX0=1;
- IT0=1;
- }
- void Sys_Init()
- {
- Init_Timer0();
- InitLcd1602();
- }
- void main(void)
- {
- EA=1;
- Sys_Init();
- ShowInit();
- while(1)
- {
- KeyScan();
- KeyDriver();
- watar_action();
- }
- }
- void Int0_Routine(void) interrupt 0
- {
- PluNum++;
- }
- void Timer0_Routine() interrupt 1
- {
- static unsigned char Count=0;
- TH0 = 0xB1;
- TL0 = 0xE0;
-
- time_ms++;
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
|