风速风向记录仪设计与实现报告
更新时间:2023-04-23 00:32:01 阅读量: 实用文档 文档下载
- 风速风向记录仪的使用方法推荐度:
- 相关推荐
实验项目名称:风速风向记录仪设计与实现指 导 老 师:张腾飞项 目 成 员: 姓名:许 姓名: 姓名:朱惠娟结 题 时 间:
实验报告
彬 学号:B08050613 孙 强 学号:B08050112 学号:B08050107 2010—12-26
风速风向记录仪设计与实现
——项目报告
一:实验名称
风速风向记录仪设计与实现
二:实验目的
通过实验创新环节来巩固和加深对嵌入式单片机系统的理解,具备嵌入式单片机测控系统软硬件调试和系统设计的开发技能。综合利用所学知识提高分析问题、解决问题的实际动手能力和研究能力。
三:实验要求
1.量程范围要求风速0-60m/s,风向0-360度 2.分辨率要求风速0.1m/s,风向0.1度 3.精确度要求风速±0.6m/s,风向±0.6度 4.启动风速≤0.5m/s
5.系统能够记录历史数据信息,记录间隔2秒-24小时连续可调
6.提供与上位机的通讯接口。
四:实验内容
根据风向、风速监测系统的要求,基于嵌入式单片机完成风向、风速记录仪的设计与实现。
五:实物简介
风向风速仪简介
风向、风速仪用于测量瞬时风速风向,具有自动显示功能。主要
由支杆,风标,风杯,风速风向感应器组成,风标的指向即为来风方向,根据风杯的转速来计算出风速。内置或外接各种进口原装传感器,采用微功耗单片机对外部数据进行采样,并将采集的数据保存在系统不易失存储器内。通过RS-232或USB接口与个人电脑通讯。 用途
风向风速仪由微处理器和高动态特性的测风传感器组成。它适用于气象、能源、环保、农林以及军工等场所测量风向风速。 功能及特点
◆ 数据记录仪全程跟踪记录数据,数据准确、记录时间长。 ◆ 记录风速风向的参数的变化,可以随时记录数据。
◆ 记录时间间隔可以在记录仪应用软件上进行设置,2秒至24小时任意可调,风速风向的变化随着时间的变化而变化,监测过程中风俗风向的变化值实时保存在电脑的硬盘中,十分方便。 使用方法
1、 用随机附带的通讯电缆将记录仪与一般计算机的串行口相连接。
2、 在计算机上运行记录仪应用程序可接收仪器测得的风速风向数据。
3、脱开记录仪与计算机的连接(也可不脱机工作,在机计算机上实时显示记录情况),将记录仪置于需检测的场合。
六:实验原理
YH4系列风速仪主要由YH12X智能风速传感器和YH42X智能风速显示器两部分组成:
风速传感器组成:YH12X系列风速风向传感器主要由风杯、齿轮、用于计数和通讯的控制器,以及风向采集单元组成。
YH12X风速传感器工作原理:当风杯随着气流的运动而转动时,风速轴带动码盘
与风杯成正比地转动,从而输出电脉冲信号,将机械转动信号转换成电信号。风向测量采用进口红外光电管,格雷码盘等器件。当风向标随着气流的运动而转动时,风向轴带动格雷码盘同时转动,从而输出七位格雷码信号,将机械位置信号转换成光电脉冲信号,通过微处理器CPU记录每秒种的产生的光电脉冲的个数,快速运算处理后即可的出气流的运动速度。计算原理如下: 每秒种产生光电脉冲的个数:n 齿轮的圆周半径 : R (m) 齿轮的总个数: N 风杯轴承的传动系数:η 风杯的线速度 : V1 (m/s) 风速:V (m/s)
风速的计算公式为: V =V1*η
风杯的转动线速度: V1 =2∏R *360*n/N
CPU计算完成后通过通讯单元电路将当前风速信息传递给控制中心
或风速显示器。传感器也可通过转换处理将数据以其他形式输出,传递给其他智能设备。
YH42X风速显示器工作原理:风速显示器对接收到的风速信息进行处理,换算转化成实际风速风级显示到对应的显示器中,风速显示器还可以针对预先设定的报警参数,当风速超过其参数时发出对应的报警信息,本显示器可以设置三组报警参数,分别对应三组控制输出.同时风速显示器还能将风速值转化为电流信号或电压信号,以传输给PLC终端联动控制系统。
系统原理图:
PCB印制电路板设计图:
系统各单元电路的说明:
一、4个独立按钮的按键用来调节时间。
二、LCD1602---主要是显示实时时间、采样时间以及风向风速数据。 三、74LS245---是对风向传感器输出的7位格雷码进行整形驱动。 四、RS232---主要负责数据的传输发送。 仿真结果:
上位机运行:
传感器接口:
表5-4风速传感器管脚接口
表5-5风向传感器的管脚接口
元器件清单:
源程序代码:
#include<reg52.h> #include<stdio.h>
#include <intrins.h>
#define uint unsigned int #define uchar unsigned char //uchar table[20];
uchar temp,tp=0,timecon,time,X,set_flag=0,t_flag=0,key_flag=0; uchar key1=0,key2=0,key3=0,key4=0; uchar B0,B1,B2,B3,B4,B5,B6; uint shi,fen,miao;//实时时间 uint th,tl,count;//风速计数器计数值
uint ws_shi,ws_ge,ws_dian;//风速实时显示数据 uint shi_1,fen_1,miao_1;//实时时间显示数据
uint wd_x,wd_bai,wd_shi,wd_ge,wd_dian;//风向实时显示数据 uint s_shi=0,s_fen=0,s_miao=2;//记录数据时的时间数据 long int s_t,ST; //定时时间/s float WD;//风向数据
sbit lcdrs=P3^7;//写命令/数据控制 sbit lcden=P3^6;//LED片选型信号 sbit A0=P2^0; sbit A1=P2^1; sbit A2=P2^2; sbit A3=P2^3; sbit A4=P2^4;
sbit A5=P2^5;
sbit A6=P2^6;
void write_data(uchar date);//写数据 void write_com(uchar com);//写命令 void init(); //系统初始化 void init1(); //通信初始化 void led_init(); //液晶初始化 void led_display(); //液晶初始显示 void set_display() ; // 初始设置显示 void time_display();
//实时时钟
void S_WSpeed(); //风速处理 void S_WDirection(); //风向处理 void fs_display(); //风速显示 void fx_display(); //风向显示 void timesend_data(); //时间数据传输 void fssend_data(); //风速数据传输 void fxsend_data();
//风向数据传输
void write_sfm(uchar add,uchar date); uint keyscan(); void delay(uint z) { }
uint x,y;
for(x=z;x>0;x--) for(y=110;y>0;y--);
void main() { init(); //系统初始化 led_init(); //led初始化 led_display(); //led初始显示
P1=0X0F; while(1) {
if(key_flag==1) {
key_flag = 0; set_display();
//按键标志位
EA=1; }
if(set_flag==1) { }
set_flag=0; TR0=1;
//设置完毕标志位
//按键设置完后开始计时
if(t_flag==1) //采样完毕标志位,采样完毕后进行数据的处理、显示、传输
{
S_WSpeed(); S_WDirection(); fs_display(); fx_display(); timesend_data(); fxsend_data(); fssend_data(); t_flag=0;
}
}
}
void write_com(uchar com) { lcdrs=0; //写命令 P0=com; delay(10);
lcden=1; //EN高脉冲 delay(10);
lcden=0;
}
void write_data(uchar date) { lcdrs=1; //写数据 P0=date; delay(10);
lcden=1; //EN高脉冲 delay(10);
lcden=0;
}
void led_init()
{ lcden=0;
write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01);
write_com(0x80);
}
void ex0() interrupt 0 //键盘 { EA=0; key_flag=1;
//液晶初始化
}
void init() { TMOD = 0x51; //定时器T0工作在方式1
EA=1;
TH0 = (65536-20000)/256; TL0 = (65536-20000)%256; TH1 =0; TL1 =0; EX0=1; ET0=1; ET1=1; TR1=0; TR0=0;
定时20ms ;T1工作于方式1的外部计数
IT0=0; }
void time0() interrupt 1 { }
timecon++;
//定时20ms中断,进行相应的数据处理
TH0 = (65536-20000)/256;
TL0 = (65536-20000)%256;
if(timecon==50) //1秒时间到 {
timecon=0; ST--;
//定时时间到了采集一秒钟的瞬时数据进行处理
time_display(); }
if(ST==1) { }
TMOD = 0x51; TH1=0; TL1=0; TR1=1;
if(ST==0) {
TR1=0; }
ST=s_t; shi_1=shi; fen_1=fen;
miao_1=miao;
t_flag=1; //采样完成标志位
//先把此时的时间数据保存起来,以便后面的数据传输
void S_WSpeed() //风速处理 { tl=TL1; //计数处理
TL1=0; th=TH1; TH1=0; count=th*256+tl; ws_shi=count/100; ws_ge=count%100/10; ws_dian=count%10;
}
void S_WDirection() //风向处理格雷码的转换 {
B6=A6; B5=A5^B6; B4=A4^B5; B3=A3^B4; B2=A2^B3; B1=A1^B2; B0=A0^B1;
WD=(B0+2*B1+4*B2+8*B3+16*B4+32*B5+64*B6)*2.8125; wd_x=WD*10;
wd_bai=wd_x/1000;
wd_shi=wd_x%1000/100; wd_ge=wd_x%100/10;
wd_dian=wd_x%10; }
void write_sfm(uchar add,uchar date) //显示时间的时/分/秒 { } {
uchar shi,ge; shi=date/10; ge=date%10; write_com(0x80+add); write_data(0x30+shi); write_data(0x30+ge);
void time_display()
miao++; if(miao==60) {
miao=0; fen++;
if(fen==60)
}
fen=0; shi++;
if(shi==24) { }
write_sfm(0,shi);
shi=0;
write_sfm(3,fen);
}
write_sfm(6,miao);
}
uint keyscan() //键盘扫描 {
uint num; P1=0xff; temp=P1;
temp=temp&0xff; //消抖
while(temp!=0xff) {
delay(5); temp=P1;
temp=temp&0xff; //消抖 while(temp!=0xff) {
temp=P1; switch(temp) {
case 0xfe:num=1; break;
case 0xfd:num=2; break;
case 0xfb:num=3; break;
case 0xf7:num=4;
break; }
while(temp!=0xff) //松手检测 { }
temp=P1;
temp=temp&0xff;
} {
}
P1=0xff; return num;
void led_display()
//实时时间显示 write_com(0x80); write_data(0x30); write_data(0x30); write_com(0x82); write_data(0x3a); write_com(0x83); write_data(0x30); write_data(0x30); write_com(0x85); write_data(0x3a); write_com(0x86); write_data(0x30); write_data(0x30); //风速显示 write_com(0x88); write_data(0xa0); write_data(0xa0); write_data(0xa0); write_data(0xa0);
write_com(0x8d); write_data('m'); write_data('/'); write_data('s'); //采样时间设置显示
write_com(0x80+0x40); write_data(0x30+2); write_data(0x30+3); write_data(0x3a); write_data(0x30+5); write_data(0x30+9); write_data(0x3a); write_data(0x30+5); write_data(0x30+9); //风向显示
write_com(0x80+0x49); write_data(0xa0);
}
write_data(0xa0); write_data(0xa0); write_data(0xa0); write_data(0xa0); write_com(0x80+0x4f); write_data(0xdf);
void set_display() {
X=keyscan(); switch(X) {
case 1: key1++;
if(key1==2||key1==3) key2=0; key1=key1%3; break;
case 2:
key2++; key2=key2%3; break; case 3: if(key1==1&&key2==0) //设置实时小时
{
shi++;
if(shi==24) shi=0;
write_com(0x80);
write_data((shi/10)+0x30); write_com(0x81);
write_data((shi%10)+0x30);
}
else if(key1==1&&key2==1) //设置实时分钟 {
fen++;
if(fen==60) {
fen=0; shi++; }
write_com(0x83);
write_com(0x84); write_data((fen%10)+0x30); }
else if(key1==1&&key2==2) // 设置实时秒 {
miao++; if(miao==60) { }
miao=0; fen++;
write_com(0x86);
write_data((miao/10)+0x30); write_com(0x87);
write_data((miao%10)+0x30);
}
else if(key1==2&&key2==0) //设置定时小时 {
s_shi++; if(s_shi==24)
s_shi=0;
write_com(0x80+0x40); write_data((s_shi/10)+0x30); write_com(0x80+0x41);
write_data((s_shi%10)+0x30); }
else if(key1==2&&key2==1) //设置定时分钟 {
s_fen++; if(s_fen==60) s_fen=0;
write_com(0x80+0x43);
write_data((s_fen/10)+0x30); write_com(0x80+0x44);
write_data((s_fen%10)+0x30);
}
else if(key1==2&&key2==2) //设置定时秒 {
s_miao++; if(s_miao==60)
s_miao=0;
write_com(0x80+0x46);
write_data((s_miao/10)+0x30);
write_data((s_miao%10)+0x30); } break; case 4: if(key1==1&&key2==0) //设置实时小时
{
shi--;
if(shi==-1)
shi=23;
write_com(0x80);
write_data((shi/10)+0x30); write_com(0x81);
write_data((shi%10)+0x30);
}
else if(key1==1&&key2==1) //设置实时分钟 {
fen--;
if(fen==-1) {
fen=59;
}
write_com(0x83);
write_data((fen/10)+0x30); write_com(0x84);
write_data((fen%10)+0x30); }
else if(key1==1&&key2==2) // 设置实时秒 {
miao--; if(miao==-1) { }
miao=59;
write_com(0x86);
write_data((miao/10)+0x30); write_com(0x87);
write_data((miao%10)+0x30); }
else if(key1==2&&key2==0) //设置定时小时 {
s_shi--;
if(s_shi==-1) s_shi=23;
正在阅读:
风速风向记录仪设计与实现报告04-23
城市规划管理信息系统数据字典 - 图文06-07
组织生活会批评意见汇总表07-21
桩筏基础中筏板厚度的确定05-10
小清新语句02-10
2019热门高考作文话题02-23
美丽的荷塘作文400字07-01
美丽的校园的小学生二年级作文300字06-13
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 记录仪
- 风速
- 风向
- 实现
- 报告
- 设计
- 8.中国长安生产系统CCPS要素评估手册之物流及计划1217
- 人教版高中语文《装在套子里的人》演示课件
- 围护支撑梁拆除技术交底
- 初二农村风景作文大全
- 二年级下册数学口算竞赛题(霞)
- 新视野大学英语读写教程5_课文翻译
- 2022年六年级数学下册期中考试卷(附参考答案)
- 江西省上饶市2022-2022学年高二上学期期末数学(文)试题
- 空心梁汽车吊吊装方案(东津)
- 第五讲、真理标准大讨论
- 说明文课外阅读讲评课
- 聚合物锂离子电池不同化成电压下产生气体的研究
- 2013 年成人高考语文字音字形题目汇编
- USP-NF Glucosamine Hydrochloride
- 山东省中小学英语骨干教师高端培训项目
- 中考现代文阅读考点分析及解题思路
- 第四章 会计科目、会计核算形式设计
- 3年级期末补充复习题汇编(二)答案1
- 进口可用作原料的固体废物放射性污染检验规程
- 工程制图样卷含部分答案