【毕业设计】25-基于单片机控制的数字气压计_电子气压报警器的设计与研究(原理图工程+仿真工程+源代码工程+答辩论文)


typora-root-url: ./

【毕业设计】25-基于单片机控制的数字气压计/电子气压报警器的设计(原理图工程+仿真工程+源代码工程+答辩论文)

任务书

一、 主要研究内容: 1.数字气压计系统的工作原理,大气压传感器模拟信号的采集、转换、处理和显示。 2.数字气压计系统的单片机编程,用Proteus仿真实现。

二、方法和要求: 1.阅读大量基于单片机数字气压计系统的相关文献资料,掌握其技术的原理和电路的结构,理解程序实现的核心思想; 2.积累相关资料确定论文的主体内容,重点进行研究; 3.每一周进行一次论文进度的汇报,指导老师解答遇到的问题; 4.把握好论文的进度,按照学校的要求完成各个阶段目标。

原理图工程文件
原理图截图
仿真模型工程文件
仿真截图
答辩论文低重复率文档,18930字
英文文献及翻译
visio流程图

设计说明书

摘要

第一章主要讲述了基于单片机控制的数字气压计的设计与研究的现状、对于目前气压计的使用场所、近期发展调研分析与研究现状分析。第二章主要讲述了基于单片机控制的数字气压计的设计与研究的系统框图、元器件组成。第三章主要讲述了基于单片机控制的数字气压计的设计与研究的硬件设计,气压计的硬件主要由四部分组成,分别为单片机最小系统、气压信号采集电路、ADC转换电路和数码管电路,最后并对整个电路进行了总结。第四章主要讲述了基于单片机控制的数字气压计的设计与研究的软件设计,编程软件Keil进行了详细的介绍,对整个软件系统的程序流程图进行绘制,通过流程图来编写程序。第五章主要讲述了基于单片机控制的数字气压计的设计与研究的实现,本设计是通过仿真软件Proteus仿真实现,按照电路图连接好电路并将程序烧写入单片机中运行仿真调试电路。

设计框架架构

前 言… 1

第一章 绪论… 2

第一节 研究背景… 2

第二节 研究意义… 3

第三节 研究现状… 4

第四节 国内外发展情况… 5

第五节 本文的主要研究内容… 5

第六节 本章小结… 6

第二章 基于单片机控制的数字气压计的设计与研究方案分析… 7

第一节 系统功能框架… 7

第二节 系统设计主要元器件介绍… 7

一、MPX4115气压计… 7

二、AD0808模数转换器… 8

第三节 系统结构总框图… 9

第四节 本章小结… 10

第三章 基于单片机控制的数字气压计的设计与研究硬件电路设计… 11

第一节 单片机最小系统模块设计… 11

一、单片机的简介… 11

二、复位电路… 12

二、晶振电路… 13

第二节 电源模块设计… 13

第三节 MPX4115模块设计… 14

第四节 AD0808模块设计… 15

第五节 数码管显示模块设计… 16

第六节 系统总电路图… 17

第七节 本章小结… 17

第四章 基于单片机控制的数字气压计的设计与研究的软件设计… 18

第一节 Keil软件介绍… 18

第二节 软件总设计流程设计… 19

第三节 气压计采集程序流程设计… 19

第四节 数码管显示程序流程设计… 20

第五节 本章小结… 21

第五章 基于单片机控制的数字气压计的设计与研究的仿真… 22

第一节 仿真仿真软件介绍… 22

第二节 仿真功能验证… 23

一、仿真电路连接… 23

二、仿真功能验证… 24

第三节 本章小结… 26

结 论… 27

致 谢… 28

参考文献… 29

附 录… 31

一、英文原文… 31

二、英文翻译… 33

三、工程图纸… 35

四、程序源码… 36

设计说明书及设计文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

源码展示

#include <reg51.H> 
#include "intrins.h"
#define uint unsigned int
#define uchar unsigned char
#define OUTPORT P2
sbit EOC=P3^0;  
sbit START=P3^1;
sbit pd  =P1^7;
unsigned char dispbitcode[8]={0xf7,0xfb,0xfd,0xfe,0xef,0xdf,0xbf,0x7f};  //位扫描
unsigned char dispcode[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};  //共阳数码管字段码
unsigned char dispbuf[4];
uint temp;
uchar getdata; //获取ADC转换回来的值
void delay_1ms(void)  //12mhz delay 1.01ms
{
   unsigned char x,y;   
   x=3;
   while(x--) 
  {
       y=40;
       while(y--);
    }
}
void delayms(int z)
{
   int x,y;
   for(x=z;z>0;z--)
		{
							
		     for(y=114;y>0;y--);
					
		}
}  
void display(void)  //数码管显示函数
{
  char k;
  for(k=0;k<4;k++)
  {
  P1 = dispbitcode[k];
  P0 = dispcode[dispbuf[k]];
  if(k==1)	  //加上数码管的dp小数点
  	P0&=0x7f;
  delay_1ms();	  
  }
}
unsigned int Adc0808()//unsigned char channel)
{
	unsigned int uiResult;
	//if(channel==0);
	START=1;			 //启动AD转换。
	START=0;
	while(EOC==0);		 //等待转换结束。
	uiResult=OUTPORT;	 //出入转换结果。
	//uiResult=(uiResult*200)/51;		   //处理运算结果。
	return uiResult;
}
void main(void) 
{  
  while(1)
  {	  unsigned int temp;
      float  press;	   		  
	  getdata=Adc0808();
	  if(14<getdata<243)			               //当压力值介于15kpa到115kpa之间时,遵循线性变换
	 	{			    
		    int vary=getdata;						//y=(115-15)/(243-13)*X+15kpa	
			press=((10.0/23.0)*vary)+9.3;			//测试时补偿值为9.3				 
			temp=(int)(press*10);	                //放大10倍,便于后面的计算
			dispbuf[3]=temp/1000;			     	//取压力值百位
			dispbuf[2]=(temp%1000)/100;		    	//取压力值十位
			dispbuf[1]=((temp%1000)%100)/10;	    	//取压力值个位
			dispbuf[0]=((temp%1000)%100)%10;			//取压力值十分位
			display();
	   	   }	    
  	  if(press>100)
        {
				pd=0;
	     delayms(90);
             display();
	     delayms(90);
             display();
	     delayms(90);
             display();
	     delayms(90);
             display();
	     delayms(90);
             display();
	     delayms(90);
             display();
				pd=1;
             delayms(90);
             display();
             delayms(90);
             display();
             delayms(90);
             display();
             delayms(90);
             display();
             delayms(100);
             display();
             delayms(90);
             display();
	    } 
      if(press<=100)
	  {
		pd=1;
	  }  
  }
} 



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值