基于单片机的压力超限报警系统设计.docx

上传人:b****8 文档编号:23758496 上传时间:2023-05-20 格式:DOCX 页数:22 大小:329.95KB
下载 相关 举报
基于单片机的压力超限报警系统设计.docx_第1页
第1页 / 共22页
基于单片机的压力超限报警系统设计.docx_第2页
第2页 / 共22页
基于单片机的压力超限报警系统设计.docx_第3页
第3页 / 共22页
基于单片机的压力超限报警系统设计.docx_第4页
第4页 / 共22页
基于单片机的压力超限报警系统设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

基于单片机的压力超限报警系统设计.docx

《基于单片机的压力超限报警系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的压力超限报警系统设计.docx(22页珍藏版)》请在冰豆网上搜索。

基于单片机的压力超限报警系统设计.docx

基于单片机的压力超限报警系统设计

沈阳航空航天大学

课程设计

(论文)

 

题目基于单片机的压力超限报警系统设计

 

班级

学号

学生姓名

指导教师

 

基于单片机的压力超限报警系统

沈阳航空航天大学自动化学院

摘要:

压力是工业生产过程中的重要参数之一。

压力的检测或控制是保证生产和设备安全运行必不可少的条件,现压力检测与报警有常重要的意义。

本设计主要通过单片机及专用芯片对传感器所测得的模拟信号进行处理,使其完成对压力的测量与报警,报警上线是通过按键值设定的。

关键字:

压力;AT89C51单片机;压力传感器;A/D转换器;LED显示。

1.前言

近年来,随着微型计算机的发展,他的应用在人们的工作和日常生活中越来越普遍。

工业过程控制是计算机的一个重要应用领域。

其中由单片机构成的嵌入式系统已经越来越受到人们的关注。

现在可以毫不夸张的说,没有微型计算机的仪器不能称为先进的仪器,没有微型计算机的控制系统不能称其为现代控制系统的时代已经到来。

压力测量对实时监测和安全生产具有重要的意义。

在工业生产中,为了高效、安全生产,必须有效控制生产过程中的诸如压力、流量、温度等主要参数。

由于压力控制在生产过程中起着决定性的安全作用,因此有必要准确测量压力。

通过压力传感器将需要测量的位置的压力信号转化为电信号,再经过运算放大器进行信号放大,送至8位A/D转换器,然后将模拟信号转换成单片机可以识别的数字信号,再经单片机转换成LED显示器可以识别的信息,最后显示输出并判断是否超过警戒线,选择的单片机是基于AT89C51单片机的测量与显示,将压力经过压力传感器变为电信号,再通过运放将电信号放大为标准信号为0-5V的电压信号,然后进入A/D转换器将模拟量转换为数字量,我们所采样的A/D转换器为ADC0804,ADC0804的辨率最高分辨可达256级,可以适应一般的模拟量转换要求。

其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。

键盘是单片机系统实现人机对话的常用输入设备。

我们通过键盘,向计算机系统输入各种数据和命令,亦可通过使用键盘,让单片机系统处于预定的功能状态。

要想实现压力的显示需硬件与软件配合,最终调试出来。

1.总体方案设计

本次设计是以单片机组成的压力测量,系统中必须有前向通道作为电信号的输入通道,用来采集输入信息。

压力的测量,需要传感器,利用传感器将压力转换成电信号后,再经放大并经A/D转换为数字量后才能由计算机进行有效处理。

然后用LED进行显示,并判断是否超过警戒压力,键盘则是用来设定警戒压力大小的原理图如图1所示。

 

图1压力报警系统原理图

2.硬件电路的设计

2.1单片机系统

标准型89系列单片机是与MCS-51系列单片机兼容的。

在内部含有4KB或8KB可重复编程的Flash存储器,可进行1000次擦写操作。

全静态工作为0~33MHz,有3级程序存储器加密锁定,内含有128~256字节的RAM、32条可编程的I/O端口、2~3个16位定时器/计数器,6~8级中断,此外有通用串行接口、低电压空闲模式及掉电模式。

AT89C51相当于将8051中的4KBROM换成相应数量的Flash存储器,其余结构、供电电压、引脚数量及封装均相同,使用时可直接替换。

AT89C51在内部采用40条引脚的双列直插式封装,引脚排列如图2所示:

 

 

图2AT89C51芯片引脚

管脚说明:

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口:

P3口管脚备选功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2/INT0(外部中断0)

P3.3/INT1(外部中断1)

P3.4T0(记时器0外部输入)

P3.5T1(记时器1外部输入)

P3.6/WR(外部数据存储器写选通)

P3.7/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

2.2MPX4115压力传感器

MPX4115传感器是一个硅压力传感器。

这个传感器结合了先进的微电子技术,能为高水准模拟输出信号提供一个均衡压力。

压力测量范围为15kp—115kp,电压输出0.27V—4.76V。

气压传感器MPX4115的管脚说明如表1所示,引脚图如图3所示。

表1气压传感器MPX4115的管脚说明

1

2

3

4

5

6

VOUT

GND

VS

N/S

N/S

N/S

图3MPX4115传感器

2.3数据转换模块

ADC0804特性:

工作电压:

+5V,即VCC=+5V。

模拟输入电压范围:

0~+5V,即0≤Vin≤+5V。

分辨率:

8位,即分辨率为1/28=1/256,转换值介于0~255之间。

转换时间:

100us(fCK=640KHz时)。

转换误差:

±1LSB。

参考电压:

2.5V,即Vref=2.5V。

ADC0804的转换原理

ADC0804是属于连续渐进式(SuccessiveApproximationMethod)的A/D转换器,这类型的A/D转换器除了转换速度快(几十至几百us)、分辨率高外,还有价钱便宜的优点,普遍被应用于微电脑的接口设计上。

输出8位的ADC0804,动作步骤如下表示:

第一次寻找结果:

10000000(若假设值≤输入值,则寻找位=假设位=1)

第二次寻找结果:

11000000(若假设值≤输入值,则寻找位=假设位=1)

第三次寻找结果:

11000000(若假设值>输入值,则寻找位=该假设位=0)

第四次寻找结果:

11010000(若假设值≤输入值,则寻找位=假设位=1)

第五次寻找结果:

11010000(若假设值>输入值,则寻找位=该假设位=0)

第六次寻找结果:

11010100(若假设值≤输入值,则寻找位=假设位=1)

第七次寻找结果:

11010110(若假设值≤输入值,则寻找位=假设位=1)

第八次寻找结果:

11010110(若假设值>输入值,则寻找位=该假设位=0)

这样使用二分法的寻找方式,8位的A/D转换器只要8次寻找。

AD0804的具体电路如图4所示。

图4

ADC0804电路图

2.4键盘显示模块

设置键按下时可以通过调节个位、十分位、百分位按键设置报警压力值,松开设置键系统进行压力值的测量显示以及比较,若大于报警压力值则进行报警。

图5键盘显示模块

数码管则使用动态显示。

谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。

在同一时刻只有一位显示器在工作(点亮),利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是多个字符“同时”显示,态显示器的优点是节省硬件资源,成本较低。

2.5整体电路图

本系统整体电路是由单片机最小系统、压力传感器、键盘及显示模块、模数转换模块等组成,具体连接方式如图6所示。

图6整体电路图

3软件设计

3.1报警系统软件实现

压力传感器将输出的模拟信号输送给ADC0804单片机来控制ADC0804的工作状态,使传感器输出的模拟信号转化为数字信号进而输送给单片机,单片机接收到信号后对该信号进行处理再输送到显示数码管端,从而显示压力值,该压力值同时还与按键设置的压力上限值进行比较,若超过压力上限值则进行报警。

3.2程序流程图

 

 

 

N

Y

设置

 

Y

 

N

 

N

 

Y

 

图7程序框图

4.联合调试

在Protues上进行仿真实验。

首先使用Keilvision4编写完成的程序编译生成HEX文件,将HEX文件烧录到单片机中,进行仿真实验,结果如图8所示。

图8运行结果图

5.课设小结及进一步设想

这次课程设计给我最大的收获,应该是仿真过程当中学到的很多东西,这个过程不仅使我重新回顾了Protues仿真软件的运用,也使我更深的了解了一些东西。

其次就是软件编程,这次完全是运用以往积累的经验,完成了仿真程序,其中的滋味,也就自己能体会得到,程序修改了很多次,也失败了不少,花费的时间和在protues画图差错上的时间应该是一样多的,同样都是很费脑筋的。

在编程这一方面,我的感受就是编模块程序不是最难得,最难得是能够连续运行,进行全面的整合,但想要整合好,你还是的写好模块程序,相互制约,相互影响,是比较麻烦的,为了完成完整的键盘控制系统,在这一块是下功夫了的,这也算是自己第一次,这么完整的弄完一个小型的单片机系统。

本次课设也有一些不足之处具体表现如下:

系统的测量精度不能保证,可能是因为ADC0804的转换精度不够。

键盘的消抖问题没有充分考虑。

只能测量一路压力值,无法测量多路压力值。

参考文献

[1]赖麒文.8051单片机C语言彻底应用.北京[M]:

科学技术出版社,2002

[2]朱定华,单片机原理及接口技术[M].北京:

电子工业出版社,2001.6

[3]王雪文,传感器原理及应用.北京[M]:

北京航空航天出版社,2004

[4]张军,梅丽凤.单片机原理接口技术.北京交通大学出版社,2006.5

[5]张婧武,周灵彬.单片机系统的PROTEUS设计与仿真.北京:

电工出版社,2007.4

[6]周佩玲,彭虎.微机原理与接口技术.北京:

电子工业出版社,2005.4

[7]朱定华.单片机原理及接口技术[M].北京:

电子工业出版社,2001.6

 

附录

元件清单

元件名称

型号

数量

压力传感器

MPX4115

1

单片机

AT89C51

1

LED

7seg-mpx4-cc-blue

1

转换芯片

ADC0804

1

电容

1uf

3

电阻

51R

13

导线

 

若干

按键

Button

4

 

附录

整体电路图

 

附录

源程序清单

#include//51列单片机头文件

#include

#defineucharunsignedchar

#defineuintunsignedint

intt1,i;

floatt;

voidanjian();

sbitclock=P3^1;

sbitu=P2^3;

sbituge=P2^0;

sbituxiao=P2^1;

sbituxiao2=P2^2;

sbitcs=P2^4;

sbitadwr=P3^6;//定义AD的WR端口

sbitadrd=P3^7;//定义AD的RD端口

sbitkey1=P1^0;

sbitkey2=P1^1;

sbitkey3=P1^2;

sbitting=P3^0;

uchara,A1,A2,A3,adval;

ucharnum1=5,num2,num3;

ucharcodetable0[]={

0xbf,0x86,0xdb,0xcf,

0xe6,0xed,0xfd,0x87,

0xff,0xef,0xf7,0xfc,

0xb9,0xde,0xf9,0xf1};

ucharcodetable1[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

voiddelayms(uintxms)

{

uinti,j;

for(i=xms;i>0;i--)//i=xms即延时约xms毫秒

for(j=110;j>0;j--);

}

voiddisplay(ucharbai,ucharshi,ucharge)//显示子函数

{

P2=0xe0;

u=1;

P0=0x73;

u=0;

delayms(5);//延时

uge=1;

P0=table0[bai];

uge=0;

delayms(5);//延时

uxiao=1;

P0=table1[shi];

uxiao=0;

delayms(5);//延时

uxiao2=1;

P0=table1[ge];

uxiao2=0;

delayms(5);//延时

}

voiddisplay2(ucharb,uchars,ucharg)//设置显示

{

u=1;

P0=0xff;

u=0;

delayms(5);//延时

uge=1;

P0=table0[b];

uge=0;

delayms(5);//延时

uxiao=1;

P0=table1[s];

uxiao=0;

delayms(5);//延时

uxiao2=1;

P0=table1[g];

uxiao2=0;

delayms(5);//延时

 

}

voidanjian()//按键设定阈值

{

cs=1;

if(key1==0)

{

delayms(20);

if(key1==0)

{

num1++;

if(num1==6)

num1=0;

while(!

key1);

}

}

if(key2==0)

{

delayms(20);

if(key2==0)

{

num2++;

if(num2==10)

num2=0;

while(!

key2);

}

}

if(key3==0)

{

delayms(20);

if(key3==0)

{

num3++;

if(num3==10)

num3=0;

while(!

key3);

}

}

}

voidADAD()

{

cs=0;//置CSAD为0,选通ADCS以后不必再管ADCS

while

(1)

{

adwr=1;

_nop_();

adwr=0;//启动AD转换

_nop_();

adwr=1;

for(a=10;a>0;a--)

{

display(A1,A2,A3);

}

if(ting==0)break;

while(t>num1*100+num2*10+num3)//过线报警

{

clock=0;

if(ting==0)

{

num1=5;

num2=0;

num3=0;

break;

}

}

P1=0xff;//读取P1口之前先给其写全1

adrd=1;//选通ADCS

_nop_();

adrd=0;//AD读使能

_nop_();

//P1=adval;

adval=P1;//AD数据读取赋给P1口

adrd=1;

t=adval;

t=t/255*500;

t1=t;

A1=t1/100;//分出百,十,和个位

A2=(t1%100)/10;

A3=(t1%100)%10;

}

}

voidmain()//主程序

{

while

(1)

{

ADAD();

while

(1)

{

anjian();

display2(num1,num2,num3);

if(ting==1)break;

}

while(t>num1*100+num2*10+num3)//过线报警

{

clock=0;

if(ting==0)

{

num1=5;

num2=0;

num3=0;

break;

}

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1