自学内容网 自学内容网

基于51单片机风速仪风速测量台风预警数码管显示


基于51单片机风速仪风速测量报警数码管显示( proteus仿真+程序+设计报告+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0070

1. 主要功能:

基于51单片机的风速测量仪proteus仿真设计

1.数码管显示检测到的风速等级和风速等级报警值;

2.可以通过按键调整风速等级报警值;

3.风速等级低于报警值工作指示灯绿灯亮。

风速等级高于阈值蜂鸣器报警,工作指示灯红灯亮;

4.可以实时调整风速等级并显示。

img

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

2. 讲解视频:

讲解视频包含仿真运行讲解和代码讲解

3. 仿真

本设计中使用ADC0832+风扇传感器做ADC转换检测风速。

风速传感器采用小型直流有刷电机与三杯式旋转风杯组装而成,其工作原理为,当环境有水平流动风时,旋转风杯能够产生旋转,并带动小型电机产生电压,其电压与旋转速度基本成正比。利用此信号电压,可以对环境风速进行测量。这款风速传感器采用海洋军用的高精度测量风速传感器,与传统产品先别,具有更高精度:是建筑机械(起重机、履带吊、门吊、塔吊)、铁路、港口、码头、风力发电、光伏发电、电厂、气象、索道、环境、温室、养殖等领域不可缺少的风速检测装置。用它可以实现设备风速指示数字化及自动化,是相关设备不可缺少的风速检测设备。

img

在单片机系统中,ADC0832可以将外部模拟信号转换为数字信号,便于单片机进行处理和控制。以风速测量为例,ADC0832可以将风速传感器的电压输出转换为数字信号,单片机通过读取ADC0832的输出值即可获取当前的风速级别。Proteus仿真软件没有对应的风速传感器,使用滑动变阻器替代。

img

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后数码管显示当前测量的风速级别是8级风,风速级数报警值8级,工作指示灯绿灯亮。

img

通过点击滑动变阻器的阻值调整,风速高于上限值后,蜂鸣器报警,工作指示灯红灯亮。

img

可以通过按键调整报警值

img

4. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。

img

程序设计包含以下几点关键程序

a. 编写单片机程序,读取风速传感器的数据,并通过数码管显示屏显示当前风速浓度。

void main()
{
TMOD|=0X01;
TH0=0X3C;
TL0=0XB0;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
beepflag = 0;
{
P0=smgduan[num/1000];//显示风速度
P2=0xfe;
delay(100);
P2=0xff;
P0=smgduan[num%1000/100];//显示风速度
P2=0xfd;
delay(100);
P2=0xff;
P0=smgduan[num%100/10];//显示风速度
// P0 =P0|0x80; //加小数点
P2=0xfb;
delay(100);
P2=0xff;
P0=smgduan[num%10];//显示风速度
P2=0xf7;
delay(100);
P2=0xff;
P0=smgduan[limit/1000];//显示风速度阀值
P2=0xef;
delay(100);
P2=0xff; 
P0=smgduan[limit%1000/100];//显示风速度阀值
P2=0xdf;
delay(100);
P2=0xff;
P0=smgduan[limit%100/10];//显示风速度阀值
P2=0xbf;
delay(100);
P2=0xff;
P0=smgduan[limit%10];//显示风速度阀值
P2=0x7f;
delay(100);
P2=0xff;  
}

void Timer0() interrupt 1//定时器中断
{


TH0=0X3C; //50ms中断
TL0=0XB0;
if(cnt==20){//1秒一次
cnt = 0;
if(num>limit*10){//报警
if(beepflag<10)beepflag++;//10秒计数
}else{
beep=1;
beepflag = 0;
}

if(beepflag<10&&num>limit*10){//响10秒
beep=0;
}else{
beep=1;
}
}
num=ADC();
num=num*2;//(10.1/128)*128;
cnt++;


}

void Timer0() interrupt 1//定时器中断
{
TH0=0X3C; //50ms中断
TL0=0XB0;
if(cnt==20){//1秒一次
cnt = 0;

if(num>limit){//报警
 beep=0;
 LED_RED=0; //红色报警灯 亮
 LED_GREEN=1;  //绿色报警灯 灭
}else{
 beep=1;
 LED_RED=1;    //红色报警灯  灭
 LED_GREEN=0;  //绿色报警灯  亮
}
}
num=ADC()*2; //有分压电路
//num=num*20;//(10.1/128)*128;
num=num*5.0*100*2/255;                      //AD值转换为相应电压值
num=num*0.027;
cnt++;


}

在外部中断设置风速浓度上下限值。

void jia() interrupt 0//按键 外部中断0处理函数
{
    if(limit<20)
        limit=limit+1;
    else
        limit=0;
}
void jian() interrupt 2//按键 外部中断1处理函数
{
    if(limit>0)
        limit=limit-1;
    else
        limit=20;
}

5. 设计报告

5667字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

img

在气象监测领域,风速测量仪作为一种重要的工具,其精确度和智能化程度对气象预报和环境监测具有深远的影响。传统的风速测量仪往往存在着测量精度不高、智能化程度低等问题,无法满足现代气象预报和环境监测的需求。因此,本研究致力于设计一款基于51单片机的风速测量仪,以解决这些问题。

本研究的核心目标是利用51单片机的高度集成性和可编程性,设计一款精确度高、智能化程度高的风速测量仪。我们将利用Proteus软件进行仿真设计,以验证设计的可行性和正确性。通过Proteus软件,我们可以模拟实际的工作环境,对风速测量仪进行全面的测试和优化。

除了基本的测量功能外,这款风速测量仪还将具备实时测量与显示功能。用户可以通过显示屏随时查看当前的风速等级,了解气象状况。此外,风速测量仪还将具备风速等级报警功能。当风速超过预设的安全阈值时,仪器将自动发出警报,提醒用户采取相应的措施。

6. 设计资料内容清单&&下载链接

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法–必读!!!!

1、程序

2、proteus仿真

3、功能要求

4、软硬件流程图

5、开题报告

6、设计报告

7、讲解视频

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

MQ-2烟雾传感器.pdf

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

img

资料下载链接:

https://docs.qq.com/doc/DS0p5SkdwTmV4aUNr

原文地址:https://blog.csdn.net/weixin_52733843/article/details/136458268

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!