压力检测系统设计.docx
《压力检测系统设计.docx》由会员分享,可在线阅读,更多相关《压力检测系统设计.docx(28页珍藏版)》请在冰豆网上搜索。
压力检测系统设计
单片机系统
课程设计
成绩评定表
设计课题:
压力检测系统设计
学院名称:
电气工程学院
专业班级:
自动1304
学生姓名:
赵博
学号:
2
指导教师:
王黎周刚李攀峰
设计地点:
31-505
设计时间:
2015-12-28~2016-01-08
指导教师意见:
成绩:
签名:
年月日
单片机系统
课程设计
课程设计名称:
压力检测系统设计
专业班级:
自动1304
学生姓名:
赵博
学号:
2
指导教师:
王黎周刚李攀峰
课程设计地点:
31-505
课程设计时间:
2015-12-28~2016-01-08
单片机系统课程设计任务书
学生姓名
赵博
专业班级
自动1304
学号
2
题目
压力检测系统设计
课题性质
工程设计
课题来源
自拟
指导教师
王黎周刚李攀峰
主要内容
(参数)
利用89C51单片机设计一个压力检测系统设计,实现功能如下:
通过压力传感器将压力转换成电信号,再经过运算放大器进行信号放大,送至8位A/D转换器,然后将模拟信号转换成单片机可以识别的数字信号,再经单片机转换成LED显示器可以识别的信息,最后显示输出。
而在显示的过程中通过键盘,向计算机系统输入各种数据与命令,让单片机系统处于预定的功能状态,显示需要的值。
任务要求
(进度)
第1-2天:
熟悉课程设计任务及要求,查阅技术资料,确定设计方案。
第3-4天:
按照确定的方案设计单元电路。
要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。
第5-6天:
软件设计,编写程序。
第7-8天:
实验室调试。
第9-10天:
撰写课程设计报告。
要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。
主要参考
资料
[1]张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:
国防工业出版社,2004
[2]伟福LAB6000系列单片机仿真实验系统使用说明书
[3]阎石.数字电路技术基础(第五版).北京:
高等教育出版社,2006
审查意见
系(教研室)主任签字:
年月日
1绪论
1、1压力检测系统概述
压力就是工业生产过程中的重要参数之一。
压力的检测或控制就是保证生产与设备安全运行必不可少的条件。
实现智能化压力检测系统对工业过程的控制具有非常重要的意义。
本设计主要通过单片机及专用芯片对传感器所测得的模拟信号进行处理,使其完成智能化功能。
介绍了智能压力传感器外围电路的硬件设计,并根据硬件进行了软件编程。
本次设计就是基于AT89C51单片机的测量与显示。
就是通过压力传感器将压力转换成电信号,再经过运算放大器进行信号放大,送至8位A/D转换器,然后将模拟信号转换成单片机可以识别的数字信号,再经单片机转换成LED显示器可以识别的信息,最后显示输出。
而在显示的过程中通过键盘,向计算机系统输入各种数据与命令,让单片机系统处于预定的功能状态,显示需要的值。
本设计的最终结果就是,将软件下载到硬件上调试出来了需要显示的数据,当输入的模拟信号发生变化的时候,通过A/D转换后,LED将显示不同的数值。
2总体方案设计原理
2、1基于单片机的智能压力检测的原理
本次设计就是以单片机组成的压力测量,系统中必须有前向通道作为电信号的输入通道,用来采集输入信息。
压力的测量,需要传感器,利用传感器将压力转换成电信号后,再经放大并经A/D转换为数字量后才能由计算机进行有效处理。
然后用LED进行显示,而键盘的作用就是改变输入量的系数的。
它的原理图如图1、1所示。
压力
传感器
放大器
显示
单片机
A/D转换
键盘
图1、1压力测量仪表原理方框图
我们这次主要做的就是A/D转换,单片机键盘与显示,我们选用的A/D转换器就是ADC0832,单片机为AT89C51,键盘为4乘4的键盘,显示为4位数码管显示。
根据硬件电路编程,调试出来并显示结果。
2、2压力传感器
2、2、1压力传感器的选择
压力传感器就是压力检测系统中的重要组成部分,由各种压力敏感元件将被测压力信号转换成容易测量的电信号作输出,给显示仪表显示压力值,或供控制与报警使用。
力学传感器的种类繁多,如电阻应变片压力传感器、半导体应变片压力传感器、压阻式压力传感器、电感式压力传感器、电容式压力传感器谐振式压力传感器及电容式加速度传感器等。
而电阻应变式传感器具有悠久的历史。
由于它具有结构简单、体积小、使用方便、性能稳定、可靠、灵敏度高动态响应快、适合静态及动态测量、测量精度高等诸多优点,因此就是目前应用最广泛的传感器之一。
电阻应变式传感器由弹性元件与电阻应变片构成,当弹性元件感受到物理量时,其表面产生应变,粘贴在弹性元件表面的电阻应变片的电阻值将随着弹性元件的应变而相应变化。
通过测量电阻应变片的电阻值变化,可以用来测量位移加速度、力、力矩、压力等各种参数。
2、2、2金属电阻应变片的工作原理
应变式压力传感器就是把压力的变化转换成电阻值的变化来进行测量的,应变片就是由金属导体或半导体制成的电阻体,就是一种将被测件上的应变变化转换成为一种电信号的敏感器件。
它就是压阻式应变传感器的主要组成部分之一。
当金属丝受外力作用时,其长度与截面积都会发生变化,从上式中可很容易瞧出,其电阻值即会发生改变,假如金属丝受外力作用而伸长时,其长度增加,而截面积减少,电阻值便会增大。
当金属丝受外力作用而压缩时,长度减小而截面增加,电阻值则会减小。
只要测出加在电阻的变化(通常就是测量电阻两端的电压),即可获得应变金属丝的应变情。
2、3A/D转换器
模拟量输入通道的任务就是将模拟量转换成数字量。
能够完成这一任务的器件称之为模数转换器,简称A/D转换器。
本次设计的中A/D转换器的任务就是将放大器输出的模拟信号转换位数字量进行输出。
2、3、1A/D转换模块器件选择
目前单片机在电子产品中已得到广泛应用,许多类型的单片机内部已带有A/D转换电路,但此类单片机会比无A/D转换功能的单片机在价格上高几元甚至很多,我们采用一个普通的单片机加上一个A/D转换器,实现A/D转换的功能,这里A/D转换器可选ADC0832、ADC0809等;串行与并行接口模式就是A/D转换器诸多分类中的一种,但却就是应用中器件选择的一个重要指标。
在同样的转换分辨率及转换速度的前提下,不同的接口方式会对电路结构及采用周期产生影响。
对A/D转换器的选择我们通过比较ADC0809与ADC0832来决定。
这两个转换器都就是常见的A/D转换器,其中ADC0809的并行接口A/D转换器,ADC0832就是串行接口A/D转换器。
我们所做的设计选择ADC0832,A/D转换在单片机接口中应用广泛,串行A/D转换器具有功耗低、性价比较高、芯片引脚少等特点。
2、3、2A/D转换器的简介
在这次设计中我们A/D转换器选用两通道输入的八位ADC0832,ADC0832[3]就是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。
由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。
其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。
芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。
独立的芯片使能输入,使多器件挂接与处理器控制变得更加方便。
通过DI数据输入端,可以轻易的实现通道功能的选择。
有关引脚说明如下:
•CS片选使能,低电平芯片使能。
•CH0模拟输入通道0,或作为IN+/-使用。
•CH1模拟输入通道1,或作为IN+/-使用。
•GND芯片参考0电位(地)。
•DI数据信号输入,选择通道控制。
•DO数据信号输出,转换数据输出。
•CLK芯片时钟输入。
•Vcc/REF电源输入及参考电压输入(复用)。
正常情况下ADC0832与单片机的接口应为4条数据线,分别就是CS、CLK、DO、DI。
它的结构示意图如图2、6所示。
图2、3ADC0832结构示意图
2、4单片机
随着电子技术的发展,单片机的功能将更加完善,因而单片机的应用将更加普及。
它们将在智能化仪器、家电产品、工业过程控制等方面得到更广泛的应用。
单片机将就是智能化仪器与中、小型控制系统中应用最多的有种微型计算机。
2、4、1AT89C51单片机简介
AT89C51就是一种带4K字节闪烁可编程可擦除只读存储的低电压,高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集与输出管脚相兼容。
由于将多功能8位CPU与闪烁存储器组合在单个芯片中,ATMEL的AT89C51就是一种高效微控制器,AT89C2051就是它的一种精简版本,如图2、9所示。
AT89C51单机为很多嵌入式控制系统提供灵活性高且廉价的方案。
图2、4AT89C51单片机的结构示意图
2、4、2主要特性
·与MCS-51兼容
·4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置与掉电模式
·片内振荡器与时钟电路
2、4、3管脚说明
VCC:
供电电压。
GND:
接地。
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的一些特殊功能口。
2、5单片机于键盘的接口技术
2、5、1键盘功能及结构概述
键盘就是单片机系统实现人机对话的常用输入设备。
操作员通过键盘,向计算机系统输入各种数据与命令,亦可通过使用键盘,让单片机系统处于预定的功能状态。
键盘按照其内部不同电路结构,可分为编码键盘与非编码键盘二种。
编码键盘本身除了带有普通按键之外,还包括产生键码的硬件电路。
使用时,只要按下编码键盘的某一个键,硬件逻辑会自动提供被按下的键的键码,使用十分方便,但价格较贵。
由非编码键盘组成的简单硬件电路,仅提供各个键被按下的信息,其她工作由软件来实现。
由于价格便宜,而且使用灵活,因此广泛应用在单片机应用系统中。
非编码键盘按照其键盘排列的结构,又可分为独立式按键与行列式按键两种类型。
2、5、2单片机与键盘的连接
键盘与单片机的连接在单片机系统中键盘中按钮数量较多时,为了减少I/O口的占用,常常将按钮排列成矩阵形式,如2、13图所示。
在矩阵式键盘中,每条水平线与垂直线在交叉处不直接连通,而就是通过一个按钮加以连接。
这样,一个端口(如P1口)就能组成4*4=16个按钮,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就能组成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘就是合理的。
在实际应用中,4×4键盘主要由数字0~9与功能键组成。
这里给出一个比较常用的键盘排列方式,如表2、5所示。
表2、5按键表
1
2
3
命令
4
5
6
功能
7
8
9
确认
0
上移
下移
退出
按照键盘与单片机的连接方式可分为独立式键盘与矩阵式键盘。
独立式键盘相互独立,每个按键占用一根I/O口线,每根I/O口线上的按键工作状态不会影响其她按键的工作状态。
如图2、12所示这种按键软件程序简单,但占用I/O口线较多(一根口线只能接一个键),适用于键盘应用数量较少的系统中。
图2、5、1独立式按键接口电路
于独立就是按键接口电路要比较矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些如图2、13所示。
图2、5、2单片机矩阵式键盘接口电路
上图中列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按钮没有按下时,所有的输出端都就是高电平,代表无键按下。
行线输出就是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知就是否有键按下了。
具体的识别及编程办法如下所述。
矩阵式键盘的按钮识别办法确定矩阵式键盘上何键被按下介绍一种“行扫描法”。
行扫描法行扫描法又称为逐行(或列)扫描查询法,就是一种最常用的按钮识别办法,如上图所示键盘,介绍过程如下。
判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按钮之中。
若所有列线均为高电平,则键盘中无键按下。
判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。
其办法就是:
依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。
在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。
若某列为低,则该列线与置为低电平的行线交叉处的按钮就就是闭合的按钮。
2、6LED显示接口
本次设计就是利用89C51单片机串行口与74LS164移位寄存器实现多个LED显示的一种方法,利用该方法设计的多路LED显示系统具有硬件结构简单、软件编程容易与价格低廉等特点、
2、6、1LED显示器
LED显示器中的发光二极管共有两种连接方法:
·共阳极接法
把发光二极管的阳极连在一起构成公共阳极。
使用时公共阳极接+5V。
阴极端输入低电平的段发光二极管导通点亮,输入高电平的则不点亮。
·共阴极接法
把发光二极管的阴极连在一起构成公共阴极。
使用时会共阴极接地,阳极端输入高电平的段发光二极管导通点亮,输入低电平的则不点亮。
图2、6、1LED显示
用LED显示器显示十六进制数的字型代码如下表所示:
表2、6十六进制数字形代码
2、6、2七段数码显示器
七段LED显示器需要由驱动电路驱动。
在七段LED显示器中,共阳极显示器,用低电平驱动;共阴极显示器,用高电平驱动。
点亮显示器有静态与动态两种方式。
2、6、3动态显示
所谓动态显示就就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。
在同一时刻只有一位显示器在工作(点亮),利用人眼的视觉暂留效应与发光二极管熄灭时的余辉效应,瞧到的却就是多个字符“同时”显示如图2、17所示。
图2、6、1 四位动态显示的电路
显示器亮度既与点亮时的导通电流有关,也与点亮时间与间隔时间的比例有关。
调整电流与时间参数,可实现亮度较高较稳定的显示。
动态显示器的优点就是节省硬件资源,成本较低。
但在控制系统运行过程中,要保证显示器正常显示,CPU必需每隔一段时间执行一次显示子程序,占用CPU大量时间,降低了CPU的工作效率,同时显示亮度较静态显示器低。
若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位I/O口(称为扫描口或字位口),控制各位LED显示器所显示的字形也需要一个8位口(称为数据)。
2、6、4LED数码管静态显示接口
在单片机应用系统中,数码管显示器显示常用两种办法:
静态显示与动态扫描显示。
基于LED的优点在本次设计中采用了数码管的静态显示。
所谓静态显示,就就是每一个数码管显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。
这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种办法单片机中CPU的开销小。
能供给单独锁存的I/O接口电路很多,常用的串并转换电路74LS164,她的电路如图2、18所示。
图2、6、2静态LED显示电路
MCS-51单片机串行口方式为移们寄存器方式,外接4片74LS164作为4位LED数码管显示器的静态显示接口,把AT89C51的RXD作为数据输出线,TXD作为移位时钟脉冲。
74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。
其中A、B(第1、2脚)为串行数据输入端,2个管脚按逻辑与运算规律输入信号,共公一个输入信号时可并接。
CLK(第8脚)为时钟输入端,可连接到串行口的TXD端。
每一个时钟信号的上升沿加到CLK端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。
R(第9脚)为复位端,当R=0时,移位寄存器各位复0,只有当R=1时,时钟脉冲才起作用。
Q1…Q8(第3-6与10-13管脚)并行输出端分别接LED数码管显示器的hg---a各段对应的管脚上。
在74LS164获得时钟脉冲的瞬间(就是在脉冲的下降沿),如果数据输入端(第1,2管脚)就是高电平,则就会有一个1进入到74LS164的内部,如果数据输入端就是低电平,则就会有一个0进入其内部。
在给出了8个脉冲后,最先进入74LS164的第一个数据到达了最高位,再来一个脉冲,第一个脉冲就会从最高位移出。
6片7LS164首尾相串,而时钟端则接在一起,这样,当输入8个脉冲时,从单片机RXD端输出的数据就进入到了第一片74LS164中了,而当第二个8个脉冲到来后,这个数据就进入了第二片74LS164,而新的数据则进入了第一片74LS164,这样,当第六个8个脉冲完成后,首次送出的数据被送到了最左面的74LS164中,其她数据依次出现在第一、二、三、四、五片74LS164中。
3软件设计
3、1A/D转换器的软件设计
单片机控制系统中通常要用到AD转换,根据输出格式,常用的AD转换方式可分为并行AD与串行AD。
并行方式一般在转换后可直接接收,但芯片的引脚比较多;串行方式所用芯片引脚少,封装小,但需要软件处理才能得到所需要的数据。
可就是单片机I/O引脚本来就不多,使用串行器件可以节省I/O资源。
ADC0832就是8位逐次逼近模数转换器,可支持两个单端输入通道与一个差分输入通道。
相同功能的器件还有ADC0834,ADC0838,ADC0831。
所不同的就是它们的输入通道数量不同。
它们的通道选择与配置都就是通过软件设置。
3.1.1ADC0832芯片接口程序的编写
单片机串行工作方式时,串行口就是作为同步移位寄存器使用。
这时以P3、3端作为数据移位的入口与出口,而由P3、6端提供移位时钟脉冲。
单片机串行口方式0与ADC0832的接口,单片机P2、0接ADC0832的CS,P3、6接0832的CLK作为时钟信号输出端,P3、7接0832的DO与DI作为启动位、配置位的发送端以及A/D转换后输出数据的接收端。
由于ADC0832在CS变低后的前3个周期内,DO端为高阻态;转换开始后,DI线禁止,因此,DI端与DO端可连接在一起。
ADC0832的时钟频率最高为400kHz,单片机晶振可选用4MHz,在TXD的输出频率为4MHz/12=333、3kHz,符合要求。
ADC0832输出的串行数据共15位,由两段8位数据组成,前一段就是最高位在先,后一段就是最高在后,两段数据的最低位共用。
只有在时钟的下降沿,ADC0832的串行数据才移出一位。
由单片机控制时钟信号的发送,并由P3、6发出,以达到控制ADC0832输出数据位的目的。
为了得到一列完整的8位数据,单片机分两次采集含有不同位的数据,再合成一列完整的8位数据。
ADC0832通过内部多路器来控制选择通道,处理器的控制命令通过DI引脚输入。
如下流程图所示,当模拟信号输入开始后,首先就是CS使能信号也就就是片选信号有效,这时就是低电平有效,如果片选就是高电平时停止转换。
当时钟信号有效时输入通道的控制字来确定所选择的通道,读取数据后就开始将模拟量转换位数字量,A/D转换结束后,单片机读取数值,如果没转换完,又回到使能开始。
图3、1ADC0832数据读取程序流程
3、2单片机与键盘的接口程序设计
AT89C51单片机的P1口用作键盘I/O口,键盘的列线接到P1口的低4位,键盘的行线接到P1口的高4位。
列线P1、0-P1、3分别接有4个上拉电阻到正电源+5V,并把列线P1、0-P1、3设置为输入线,行线P1、4-P、17设置为输出线。
4根行线与4根列线形成16个相交点。
检测当前就是否有键被按下。
检测的办法就是P1、4-P1、7输出全“0”,读取P1、0-P1、3的状态,若P1、0-P1、3为全“1”,则无键闭合,不然有键闭合。
去除键抖动。
当检测到有键按下后,延时一段时间再做下一步的检测判断。
若有键被按下,应识别出就是哪一个键闭合。
办法就是对键盘的行线进行扫描。
P1、4-P1、7按下述4种组合依次输出:
P1、71110P1、61101P1、51011P1、40111在每组行输出时读取P1、0-P1、3,若全为“1”,则表示为“0”这一行没有键闭合,不然有键闭合。
由此得到闭合键的行值与列值,然后可采用计算法或查表法将闭合键的行值与列值转换成所定义的键值。
为了保证键每闭合一次CPU仅作一次处理,必须却除键释放时的抖动。
从以上分析得到单片机键盘扫描程序的流程图如图3、2所示。
程序如下
图3、2单片机矩阵式键盘接口流程图
3、3LED数码管显示程序设计
利用单片机内部的串行接口,可以实现静态的显示处理。
这样不仅可以节省单片机的并行接口资源,而且在大多数不使用串行接口的情况下,可以减少或就是免去扩展接口。
在这种设计中,串行口工作于方式0,数据的输入输出都通过RxD实现,移位脉冲则由TxD发出。
每次传送一个字节数据。
每输出一个字节数据,单片机自动使串行中断请求标志TI置。
通过测试该状态,即可确定该字节就是否发送完毕。
由硬件电路图可知,74LS164就是串行输入并行输出的移位寄存器。
它具有两个串行输入端与8位并行输出端(QA~QH)。
当显示数据从RxD端输出到