51单片机的压力传感器毕业设计 - 图文

更新时间:2023-10-06 21:45:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕业 任务书

设计 论文

一、题目

智能压力传感器系统设计

二、指导思想和目的要求

1. 培养学生综合运用所学职业基础知识、职业专业知识和职业技能,提高解决实际问题的能力,从而达到巩固、深化所学的知识与技能;

2. 培养学生建立正确的科学思想,培养学生认真负责、实事求是的科学态度和严谨求实作风;

3. 培养学生调查研究,收集资料,熟悉有关技术文件,锻炼学生的科研工作能力和培养学生的团结合作攻关能力。

三、主要技术指标

1. 培养学生综合运用所学职业基础知识、职业专业知识和职业技能,提高解决实际问题的能力,从而达到巩固、深化所学的知识与技能;

2. 培养学生建立正确的科学思想,培养学生认真负责、实事求是的科学态度和严谨求实作风;

3. 培养学生调查研究,收集资料,熟悉有关技术文件,锻炼学生的科研工作能力和培养学生的团结合作攻关能力。

三、主要技术指标

本设计主要设计一个智能压力传感器的设计,要求如下: 被测介质: 气体、液体及蒸气 量程: 0Pa~500pa 综合精度:±0.25%FS

供电: 24V Dc(12~36VDC) 介质温度:-20~150℃ 环境温度:-20~85℃ 过载能力: 150%FS 响应时间:≤10mS

稳定性:≤±0.15%FS/年

能实时显示目标压力值和保存参数,并能和上位机进行通信,并具有较强的抗干扰能力。

所需要完成的工作:

1.系统地掌握控制器的开发设计过程,相关的电子技术和传感器技术等,进行设计任务和功能的描述;

I

2.进行系统设计方案的论证和总体设计;

3.从全局考虑完成硬件和软件资源分配和规划,分别进行系统的硬件设计和软件设计;

4.进行硬件调试,软件调试和软硬件的联调;

5. 查阅到15篇以上与题目相关的文献,按要求格式独立撰写不少于15000字的设计说明书及1.5万(或翻译成中文后至少在3000字以上)字符以上的英文翻译。

四、进度和要求

第01周----第02周:查阅相关资料,并完成英文翻译;

第03周----第04周:进行市场调查,给出系统详细的设计任务和功能,进行系统设计方案的论证和总体设计;

第05周----第07周:完成硬件电路设计,并用PROTEL画出硬件电路图; 第08周----第10周:完成软件模块设计与调试;

第11周----第12周:进行硬件调试,软件调试和软硬件的联调; 第13周----第14周:撰写毕业设计论文;

五、主要参考书及参考资料

1. 单片机原理及应用,张鑫等,电子工业出版社 2. MCS51单片机应用设计,张毅刚等,哈尔滨工业大学

3. MCS51系列单片机实用接口技术,李华等,北京航天航空大学 4. PROTEL2004电路原理图及PCB设计,清源科技,机械工业出版社

学,2005.5

6. 单片机应用技术选编,何立民,北京航空航天大学出版社,2000 7. 检测技术与系统设计,张靖等,中国电力出版社,2001

5. 基于MCS-51系列单片机的通用控制模块的研究,曹卫芳,山东科技大

II

摘要

压力是工业生产过程中的重要参数之一。压力的检测或控制是保证生产和设备安全运行必不可少的条件。实现智能化压力检测系统对工业过程的控制具有非常重要的意义。本设计主要通过单片机及专用芯片对传感器所测得的模拟信号进行处理,使其完成智能化功能。介绍了智能压力传感器外围电路的硬件设计,并根据硬件进行了软件编程。

本次设计是基于AT89C51单片机的测量与显示。是通过压力传感器将压力转换成电信号,再经过运算放大器进行信号放大,送至8位A/D转换器,然后将模拟信号转换成单片机可以识别的数字信号,再经单片机转换成LED显示器可以识别的信息,最后显示输出。而在显示的过程中通过键盘,向计算机系统输入各种数据和命令,让单片机系统处于预定的功能状态,显示需要的值。

本论文根据压力传感器零点补偿与非线性补偿原理,设计出了测量压力传感器的硬件,应用单片机技术测量电路简单,成本低,应用面广,但是由于自身的稳定性其测量结果仍存在误差。

关键词: 压力;AT89C51单片机;压力传感器;A/D转换器;LCD显示;

III

Abstract

Pressure is one of the important parameters in the process of industrial production. Pressure detection or control is an essential condition to ensure production and the equipment to safely operating, which is of great significance. The single-chip is infiltrating into all fields of our lives, so it is very difficult to find the area in which there is no traces of single-chip microcomputer. In this graduation design, primarily through by using single-chip and dedicated chip, handling of analog signal measured by the sensor to complete intelligent function. This design illustrates external hardware circuit design of intelligent pressure sensor, and conduct software development to the hardware.

The design is based on measurement and display of AT89C51 single-chip. This

is the pressure sensors will convert the pressure into electrical signals. After using operational amplifier, the signal is amplified, and transferred to the 8-bit A/D converter. Then the analog signal is converted into digital signals which can be identified by single-chip and then converted by single-chip into the information which can be displayed on LED monitor, and finally display output. In the course of show, through the keyboard to input all kinds of data and commands into the computer, the single-chip will locate in a predetermined function step to display required values.

In addition,based sensor thermal drift and nonlinearity principle,this paper has designed Intelligent sensor hardware circuit and edited a C51Program.The circuit with micro-Process is simple and cheap,though the result has still a little error.

Key words: pressure; AT89C51 single-chip; pressure sensor; A/D converter; LCD monitor;

IV

目录

第一章 绪 论 ............................................................................................................... 1 1.1前言 ..................................................................................................................... 1 1.2选题的背景和意义 ............................................................................................. 1 1.3智能压力传感器的发展方向 ............................................................................. 2 1.4本文研究的内容 ................................................................................................. 3 第二章 系统总体方案设计 ......................................................................................... 4 2.1系统任务描述 ..................................................................................................... 4

2.1.1控制系统要求 ............................................................................................................... 4 2.1.2主要仪器的选择............................................................................................................ 4 2.2系统总体设计 ..................................................................................................... 6 2.2.1系统组成 ....................................................................................................................... 6 2.2.2基于单片机的智能压力检测的原理 ............................................................................ 6 第三章 压力传感系统硬件设计 ............................................................................... 7 3.1压力传感器 ......................................................................................................... 7 3.1.1金属应变片的工作原理................................................................................................ 7 3.1.2 电阻应变片的基本结构............................................................................................... 8 3.1.3电阻应变片的测量电路................................................................................................ 8 3.1.4电桥电路的工作原理.................................................................................................... 9 3.1.5非线性误差及温度补偿.............................................................................................. 10 3.2信号放大电路 ................................................................................................... 11 3.2.1三运放放大电路.......................................................................................................... 11 3.3 A/D转换器 ....................................................................................................... 12 3.3.1 A/D转换器的简介 ..................................................................................................... 12 3.3.2 配置位说明 ................................................................................................................ 13 3.3.3 工作时序图 ................................................................................................................ 14 3.3.4 单片机对ADC0832的控制原理................................................................................. 15 3.4 单片机 .............................................................................................................. 17 3.4.1 AT89C51单片机简介 ................................................................................................. 17 3.4.2主要特性 ..................................................................................................................... 17 3.4.3管脚说明 ..................................................................................................................... 18 3.4.4振荡器特性 ................................................................................................................. 19 3.4.5芯片擦除 ..................................................................................................................... 20 3.5 液晶屏LCD简介 ............................................................................................. 20 3.5.1液晶显示器原理.......................................................................................................... 20 3.5.2液晶显示器分类.......................................................................................................... 20 3.5.3字符的显示 ................................................................................................................. 21 3.5.4 LM016L引脚功能说明 ............................................................................................... 21 3.6 报警模块 .......................................................................................................... 22 第四章 软件设计 ....................................................................................................... 23 4.1 系统的主程序 .................................................................................................. 23 4.2 A/D转换器的软件设计 ................................................................................... 25 4.2.1 ADC0832芯片接口程序的编写 ................................................................................. 26 4.3 LCD数码管显示程序设计 ............................................................................... 27 4.3.1 LM016LCD的RAM地址映射及标准字库表.............................. 错误!未定义书签。 第五章 PROTEUS 仿真调试................................................................................... 29 5.1仿真软件了解 ................................................................................................... 29

5.1.1proteus软件介绍 ....................................................................................................... 29 5.1.2protuse功能和特点 ................................................................................................... 29 5.2本次设计仿真过程 ............................................................................................ 30 5.2.1 创建原理图 ................................................................................................................ 30 5.2.2 绘制仿真原理图......................................................................................................... 30 5.2.3 系统调试 .................................................................................................................... 31 5.2.4 开始仿真 .................................................................................................................... 31 第六章 总结 ............................................................................................................... 33 6.1 设计总结 .......................................................................................................... 33 6.2展望和不足 ....................................................................................................... 34 致谢 ............................................................................................................................. 35 参考文献 ..................................................................................................................... 35 附录一 PROTEL图 .................................................................................................. 36 附录二 源程序 ......................................................................................................... 38

第一章 绪 论

1.1前言

在信息高速发展的今天,传感器检测系统的智能化和集成化成为其发展的两个重要方向,而传感器检测系统智能化和集成化的程度主要取决于与之相结合的微处理器的性能。具有数据处理能力,能够进行自动检测、自动校准、自动误差补偿、自动抽样、以及标度变换功能的智能压力传感器检测系统已成为国内外开发和研究的热点。传感器技术是现代测量和自动化技术的重要技术之一。 从宇宙探索到海洋开发,从生产过程的控制到现代文明生活,几乎每一项现代科学技术都离不开传感器。在工业、农业、国防、科技等各个领域,传感器技术都得到了广泛的应用,并展现出极其广阔的前景。因此,许多国家对传感器技术的发展十分重视。例如在日本传感器技术被列为六大核心技术(传感器、通信、激光、半导体、超导和计算机)之一,并且是将传感器列为十大技术之首;美国将90年代看作是传感器时代,将传感器技术列为90年代22项关键技术之一。我国对传感器的研究也有二十多年的历史并取得了很大的成就。目前,在\科学技术就是第一生产力\的思想指引下,各项科学技术取得了突飞猛进的发展,传感器技术也越来越受到各方面的重视,虽然在某些方面已赶上或者接近世界先进水平。但是从总体来看,与国外传感器技术的发展相比,我国对传感器技术的研究和生产还比较落后,现正处于方兴未艾的阶段。由于智能传感器系统的研究起步较晚,其理论和实践远未成熟,离实际应用需求差距很大,尤其是用于压力测量的高性能、小体积、低成本智能压力传感器系统更是有待于进一步开发。因此,研究开发高性能的智能压力传感器系统对于促进信息技术及自动化技术的发展、提高设备的性能及自动化水平具有不可低估的意义。

1.2选题的背景和意义

近年来,随着微型计算机的发展,他的应用在人们的工作和日常生活中越来越普遍。工业过程控制是计算机的一个重要应用领域。其中由单片机构成的嵌入式系统已经越来越受到人们的关注。现在可以毫不夸张的说,没有微型计算机的仪器不能称为先进的仪器,没有微型计算机的控制系统不能称其为现代控制系统的时代已经到来。

1

压力测量对实时监测和安全生产具有重要的意义。在工业生产中,为了高效、安全生产,必须有效控制生产过程中的诸如压力、流量、温度等主要参数。由于压力控制在生产过程中起着决定性的安全作用,因此有必要准确测量压力。为了测到不同位置的压力值,本次设计为基于单片机智能压力测量系统。通过压力传感器将需要测量的位置的压力信号转化为电信号,再经过运算放大器进行信号放大,送至8位A/D转换器,然后将模拟信号转换成单片机可以识别的数字信号,再经单片机转换成LCD显示器可以识别的信息,最后显示输出。基于单片机的智能压力检测系统,选择的单片机是基于AT89C51单片机的测量与显示,将压力经过压力传感器变为电信号,再通过三运放放将电信号放大为标准信号为0-5V的电压信号,然后进入A/D转换器将模拟量转换为数字量,我们所采样的A/D转换器为ADC0832,ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。

正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。

为了提高单片机系统I/O口线的利用效率,利用单片机AT87C51的串行口和液晶显示屏LM016L来显示.

1.3智能压力传感器的发展方向

(1)向高智能高精度发展:随着自动化生产程度的不断提高,对传感器的要求也在不断提高,必须研制出具有灵敏度高、精确度高、响应速度快、互换性好的新型传感器以确保生产自动化的可靠性。目前能生产精度在万分之一以上的传感器的厂家为数很少,其产最也远远不能满足要求。

(2)向高可靠性、宽温度范围发展:传感器的可靠性直接影响到电子设备的抗干扰等性能,研制高可靠性、宽温度范围的传感器将是永久性的方向。提高温度范围历来是大课题,大部分传感器其工作范围都在一20℃~70℃,在军用系统

2

中要求工作温度在一40OC一85OC范围,而汽车锅炉等场合要求传感器工作在一20OC~1200C,在冶炼、焦化等方面对传感器的温度要求更高,因此发展新兴材料(如陶瓷)的传感器将很有前途。

(3)向微型化发展:各种控制仪器设备的功能越来越人,要求各个部件体积能占位置越小越好,因而传感器本身体积也是越小越好,这就要求发展新的材料及加工技术,目前利用硅材料制作的传感器体积己经很小。如传统的加速度传感器是由重力块和弹簧等制成的,体积较大、稳定性差、寿命也短,而利用激光等各种微细加工技术制成的硅加速度传感器体积非常小、互换性可靠性都较好。

(4)高智能化:将压力传感器和单片机联系在一起,使其能够在实际应用中能更好地实现人机互换交流,增加仪器的数字化和智能化。

1.4本文研究的内容

研究开发一个智能压力传感器,要实现的主要目标是:

1.系统地掌握单片机的开发设计过程,相关的电子技术和传感器技术等,进行设计任务和功能的描述。

2.进行系统设计方案的论证和总体设计。

3.从全局考虑完成硬件和软件资源分配和规划,分别进行系统的硬件设计和软件设计。

4.进行硬件调试,软件调试和软硬件的联调。

3

第二章 系统总体方案设计

2.1系统任务描述

该系统的任务是能够测量出被测物的压力并能实时显示目标压力值和保存

参数,并能和上位机进行通信,并具有较强的抗干扰能力。 2.1.1控制系统要求

该控制系统要求满足以下几点要求:

(1)被测介质: 气体、液体及蒸气 (2)量程: 0Pa~500pa (3)综合精度:±0.25%FS (4)供电: 24V Dc(12~36VDC) (5)介质温度:-20~150℃ (6)环境温度:-20~85℃

(7)当压力超过一定范围是可以报警

(8)能实时显示目标压力值和保存参数,并能和上位机进行通信,并具有较强的抗干扰能力。 2.1.2主要仪器的比较选择 1、压力传感器的选择

压力传感器是压力检测系统中的重要组成部分,由各种压力敏感元件将被测压力信号转换成容易测量的电信号作输出,给显示仪表显示压力值,或供控制和报警使用。力学传感器的种类繁多,如电阻应变片压力传感器、半导体应变片压力传感器、压阻式压力传感器、电感式压力传感器、电容式压力传感器谐振式压力传感器及电容式加速度传感器等。 而电阻应变式传感器具有悠久的历史。由于它具有结构简单、体积小、使用方便、性能稳定、可靠、灵敏度高动态响应快、适合静态及动态测量、测量精度高等诸多优点,因此是目前应用最广泛的传感器之一。电阻应变式传感器由弹性元件和电阻应变片构成,当弹性元件感受到物理量时,其表面产生应变,粘贴在弹性元件表面的电阻应变片的电阻值将随着弹性元件的应变而相应变化。通过测量电阻应变片的电阻值变化,可以用来测量各种参数。

4

2、放大器的选择

被测的非电量经传感器得到的电信号幅度很小,无法进行A/D转换,必须对这些模拟电信号进行放大处理。为使电路简单便于调试,本设计采用三运算放大器,因为在具有较大共模电压的条件下,仪表放大器能够对很微弱的差分电压信号进行放大,并且具有很高的输入阻抗。这些特性使其受到众多应用的欢迎,广泛用于测量压力和温度的应变仪电桥接口、热电耦温度检测和各种低边、高边电流检测。

3、A/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转换器具有功耗低、性价比较高、芯片引脚少等特点。 4、主控制器的选择

单片机是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。它拥有基于复杂指令集(CISC)的单片机内核,虽然其速度不快,12个振荡周期才执行一个单周期指令,但其端口结构为准双向并行口,可兼有外部并行总线,故使其扩展性能非常强大。51的内部硬件预设,可用特殊功能寄存器对其进行编辑。 2.1.3总体方案的选择

经过上述总结,本设计采用89C51单片机作为控制芯片,采用电阻应变片压力传感器采集压力信号。通过压力传感器将采集的压力信号转换成与之对应的电信号,经过ADC0832放大处理,通过89C51在LCD屏幕上显示压力数据,在超过压力限制时由蜂鸣器报警。

5

2.2系统总体设计

2.2.1系统组成

压力 传感器 放大器 显示 单片机 A/D转换 报警

图2.1 智能压力传感器原理方框图

2.2.2基于单片机的智能压力检测的原理

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

的输入通道,用来采集输入信息。压力的测量,需要传感器,利用传感器将压力转换成电信号后,再经放大并经A/D转换为数字量后才能由计算机进行有效处理。然后用LCD进行显示。

我们这次主要做的是A/D转换,单片机和显示,我们选用的A/D转换器是ADC0832,单片机为AT89C51,,显示为液晶显示LCD。根据硬件电路编程,调试出来并显示结果。

6

第三章 压力传感系统硬件设计

3.1压力传感器

3.1.1金属应变片的工作原理

应变式压力传感器是把压力的变化转换成电阻值的变化来进行测量的,应变片是由金属导体或半导体制成的电阻体,是一种将被测件上的应变变化转换成为一种电信号的敏感器件。它是压阻式应变传感器的主要组成部分之一。电阻应变片应用最多的是金属电阻应变片和半导体应变片两种。金属电阻应变片又有丝状应变片和金属箔状应变片两种。通常是将应变片通过特殊的粘和剂紧密的粘合在产生力学应变基体上,当基体受力发生应力变化时,电阻应变片也一起产生形变,使应变片的阻值发生改变,从而使加在电阻上的电压发生变化。这种应变片在受力时产生的阻值变化通常较小,一般这种应变片都组成应变电桥,并通过后续的仪表放大器进行放大,再传输给处理电路(通常是A/D转换和CPU)显示或执行机构。其阻值随压力所产生的应变而变化。金属电阻应变片的工作原理是吸附在基体材料上应变电阻随机械形变而产生阻值变化的现象,俗称为电阻应变效应。对于金属导体,一段圆截面的导线的金属丝,设其长为L,截面积为A(直径为D) ,原始电阻为 R,金属导体的电阻值可用下式表示:

R=ρL∕A (3.1)

式中:ρ——金属导体的电阻率(Ω·cm2/m) S——导体的截面积(cm2) L——导体的长度(m)

当金属丝受到轴向力 F而被拉伸或压缩产生形变 ,其电阻值会随之变化 ,通过对(3.1)式两边取对数后再取全微分得:

dRdLdAd???? (3.2) RLA?式中

dLdAdD??为材料轴向线应变 ,且 ?2跟据材料力学 ,在金属丝单LAD向受力状态下 ,有

dDdL??? (3.3) DL

7

式中μ为导体材料的泊松比。因此 ,有

d???(1?2?)dLd?? (3.4) L?试验发现 ,金属材料电阻率的相对变化与其体的相对变化间的关系为

d???cdV (3.5) V式中 , c为常数(由一定的材料和加工方式决定)式 (3.5)代入 (3.4) ,且当ΔR=R时 ,可得

dVdLdA???(1?2?)?将VLA?R?[(1?2?)?c(1?2?)]??K? (3.6) R式中,k=(1+2μ)+c(1-2μ)为金属丝材料的应变灵敏系数。

上式表明 ,金属材料电阻的相对变化与其线应变成正比。这就是金属材料的应变电阻效应。

电阻变化率 △R/R 的表达式为:K=ΔR/Rμ/ε,式中μ—材料的泊松系数;ε—应变量。

当金属丝受外力作用时,其长度和截面积都会发生变化,从上式中可很容易看出,其电阻值即会发生改变,假如金属丝受外力作用而伸长时,其长度增加,而截面积减少,电阻值便会增大。当金属丝受外力作用而压缩时,长度减小而截面增加,电阻值则会减小。只要测出加在电阻的变化(通常是测量电阻两端的电压),即可获得应变金属丝的应变情。 3.1.2 电阻应变片的基本结构

电阻应变片主要由四部分组成。电阻丝是应变片敏感元件;基片、覆盖片起定位和保护电阻丝的作用,并使电阻丝和被测试件之间绝缘;引出线用以连接测量导线。

3.1.3电阻应变片的测量电路

应变片可以将应变转换为电阻的变化,为了显示于记录应变的大小,还要将电阻的变化再转换为电压或电流的变化,因此需要有专用的测量电路,通常采用直流电桥和交流电桥。

8

3.1.4电桥电路的工作原理

由于应变片的电桥电路的输出信号一般比较微弱,所以目前大部分电阻应

变式传感器的电桥输出端与直流放大器相连,如图3.1所示。

图3.1直流电桥

设电桥的各臂的电阻分别为R1R3R2R4 它们可以全部或部分是应变片。由于直流放大器的输入电阻比电桥电阻大的多,因此可将电桥输出端看成开路,这种电桥成为电压输出桥,输出电压U0 为

U0=

R1R3?R2R4US (3.7)

(R1?R2)(R3?R4)由上式可见:若R1R3=R2R4,则输出电压必为零,此时电桥处于平衡状态,称为平衡电桥。

平衡电桥的平衡条件为:

R1R3=R2R4 应变片工作时,其电阻变化ΔR,此时有不平衡电压输出。

U0?U?R1 (3.8) 4R1由式(3.8)表明:ΔR《 R1 时,电桥的输出电压于应变成线性关系。若相邻两桥臂的应变极性一致,即同为拉应变活压应变时,输出电压为两者之差,若不同时,则输出电压为两者之和。若相对两桥臂的极性一直,输出电压为两者之和,反之则为两者之差。

电桥供电电压U越高,输出电压U0 越大,但是,当U大时,电阻应变片通过的电流也大,若超过电阻应变片所允许通过的最大工作电流,传感器就会出现蠕变和零漂。基于这些原因可以合理的进行温度补偿和提高传感器的测量灵敏度。

9

3.1.5非线性误差及温度补偿

由式(3.8)的线性关系是在应变片的参数变化很小,ΔR《 R1 的情况下得出的,若应变片承受的压力太大,则上述假设不成立,电桥的输出电压应变之间成非线性关系。在在这种情况下,用按线性关系刻度的仪表进行测量必然带来非线性误差。为了消除非线性误差,在实际应用中,常采用半桥差动或全桥差动电路,如图3.2所示,以改善非线性误差和提高输出灵敏度。

U U

图3.2 差动电桥

(a)半桥差动电路 (b) 全桥差动电路

图3.2(a)为半桥差动电路,在传感器这中经常使用这种方法。粘贴应变片时,使两个应变片一个受压,一个受拉。应变符号相反,工作时将两个应变片接入电桥的相邻两臂。设电桥在初始时所示平衡的,且为等臂电桥,考虑到ΔR=ΔR1=ΔR2 则得半桥差动电路的输出电压为

U???RU (3.9) 2R?由上式可见,半桥差动电路不仅可以消除非线性误差,而且还使电桥的输出灵敏度提高了一倍,同时还能起到温度补偿的作用。如果按图3.2(b)所示构成全桥差动电路同样考虑到 ΔR=ΔR1=ΔR2=ΔR3=ΔR4时得全桥差动电路的输出电压为

U???RU (3.10) R?可见,全桥的电压灵敏度比单臂工作时的灵敏度提高了4倍非线性误差也得到了消除,同时还具有温度补偿的作用,该电路也得到了广泛的应用。

10

3.2信号放大电路

3.2.1三运放放大电路

本次设计的放大器采用了三运放,因为它具有高共模抑制比的放大电路。它由三个集成运算放大器组成,如图3.3所示。

反向输入端 VIN1

VIN2 同向输入端

3.3 三运放高共摸抑制比放大电路

其中AR1和AR2为两个性能一致(主要指输入阻抗,共模抑制比和增益)的同相输入通用集成运算放大器,构成平衡对称差动放大输入级,AR3构成双端输入单端输出的输出级,用来进一步抑制AR1和AR2的共模信号,并适应接地负载的需要。由于每个放大器求和点的电压等于施加在各自正输入端的电压,因此,整个差分输入电压现在都呈现在RG两端。因为输入电压经过放大后(在A1 和A2的输出端)的差分电压呈现在R5,RG和R6这三只电阻上,所以差分增益可以通过仅改变RG进行调整。如果R5 = R6,R1= R3和R2 = R4,则VOUT = (VIN2-VIN1)(1+2R5/RG)(R2/R1)。

由于RG两端的电压等于VIN,所以流过RG的电流等于VIN/RG,因此输入信号将通过A1 和A2 获得增益并得到放大。然而须注意的是对加到放大器输入端的共模电压在RG两端具有相同的电位,从而不会在RG上产生电流。由于没有电流流过RG(也就无电流流过R5和R6),放大器AR1 和AR2 将作为单位增益跟随器而工作。因此,共模信号将以单位增益通过输入缓冲器,而差分电压将按〔1+(2 RF/RG)〕的增益系数被放大。这也就意味着该电路的共模抑制比相比与原来的差分电路增大了〔1+(2 RF/RG)〕倍。

11

在理论上表明,得到所要求的前端增益(由RG来决定),而不增加共模增益和误差,即差分信号将按增益成比例增加,而共模误差则不然,所以比率〔增益(差分输入电压)/(共模误差电压)〕将增大。因此CMR理论上直接与增益成比例增加,这是一个非常有用的特性。

最后,由于结构上的对称性,输入放大器的共模误差,如果它们跟踪,将被输出级的减法器消除。这包括诸如共模抑制随频率变换的误差。

3.3 A/D转换器

模拟量输入通道的任务是将模拟量转换成数字量。能够完成这一任务的器件称之为模数转换器,简称A/D转换器。本次设计的中A/D转换器的任务是将放大器输出的模拟信号转换位数字量进行输出。 3.3.1 A/D转换器的简介

本次设计A/D转换器选用两通道输入的八位ADC0832,它是美国国家半导体公司生产的一种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 电源输入及参考电压输入(复用)。

12

正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。它的结构示意图如图3.4所示。

图3.4 ADC0832结构示意图

3.3.2 配置位说明

ADC0832工作时,模拟通道的选择及单端输入和差分输入的选择,都取决于输入时序的配置位。当差输入时,要分配输入通道的极性,两个输入通道的任何一个通道都可作为正极或负极。ADC0832的配置位逻辑表如表3.1所示。

输入格式 CH0 差分 L L 单端

表3.1的配置位逻辑表

配置位 CH1 L H L H 选择通道号 CH0 + + + + CH1 — — — — H H

表中“+”表示输入通道的端点为正极性;“-”表示输入端点为负极性H或L表示高、低电平。输入配置位时,高位(CH0)在前,低位(CH1 )在后。

13

3.3.3 工作时序图

当 CS由高变低时,选中ADC0832 。在时钟的上升沿,DI 端的数据移入 ADC0832内部的多路地址移位寄存器。在第一个时钟期间,DI为高,表示启动位,紧接着输入两位配置位。当输入启动位和配置位后,选通输入模拟通道,转换开始。转换开始后,经过一个时钟周期延接着在第一个时钟周期延迟,以使选定的通道稳定。ADC0832紧接着在第4个时钟下降沿输出转换数据。数据输出时先输出最高位(D7~D0)输出完转换结果后,又以最低位开始重新遍数据(D7~D0 ),两次发送的最低位共用。当片选CS为高时,内部所有寄存器清 ,输出变为高阻态。如果要再进行一次模 数转换,片选 必须再次从高向低跳变,后面再输入启动位和配置位。

图3.5 ADC083工作时序图

14

for(i=8;i>0;i--) { data_f|=Do; data_f<<=1; CLK=1; _nop_(); _nop_(); CLK=0; _nop_(); } for(i=8;i>0;i--) { data_c<<=1; data_c|=Do; _nop_(); CLK=1; _nop_(); _nop_(); CLK=0; _nop_(); } CLK=0; _nop_(); _nop_(); CLK=1; _nop_(); _nop_(); CLK=0; _nop_(); _nop_(); CLK=1; _nop_(); CS=1; _nop_(); _nop_(); return data_f; }

void xs_int(unsigned int shuju)//将一个数据各个位分开并存放在H C[]数组中 { if(shuju < 10) BZ = 1; else if(shuju < 100) BZ = 2; else if(shuju < 1000) BZ = 3; else if(shuju < 10000) BZ = 4; else if(shuju < 65535) BZ = 5; switch(BZ) { case 5:HC[5] = shuju/10000; //百位 case 4:HC[3] = shuju000/1000;//十位 case 3:HC[2] = shuju00/100;//个位

40

case 2:HC[1] = shuju0/10;//小数点后一位 case 1:HC[0] = shuju; break; default:break; } }

void main(void)//主函数 { unsigned int data_temp=0; init(); TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%6; ET0=1; TR0=1; while(1) { data_temp=ADconv(); if(data_temp>128)//报警数值 { EA=1; } else { EA=0; buzzer=0; } P3=~data_temp; xs_int(196*data_temp); if(KEY==0) { delay_1ms(10); if(KEY==0) while(!KEY); key_count++; if(key_count==3) key_count=1; xiezhiling(0x01,0); } if(key_count==1) { xiezhiling(0x80,1);//LCD第一行 xieshuju('P'); xieshuju('R); xieshuju('E'); xieshuju('S); xieshuju('S');

41

}

xieshuju('U'); xieshuju('R); xieshuju('E'); xieshuju('-');

xieshuju(HC[5]+0x30); xieshuju(HC[3]+0x30); xieshuju(HC[2]+0x30); xieshuju('.');

xieshuju(HC[1]+0x30); xieshuju('P'); xieshuju('a');

xiezhiling(0x80+0x40,1);//LCD第二行 xieshuju('A'); xieshuju('l'); xieshuju('a'); xieshuju('r'); xieshuju('m'); xieshuju(' '); xieshuju('S'); xieshuju('t'); xieshuju('a'); xieshuju('t'); xieshuju('u'); xieshuju('s'); xieshuju('-'); xieshuju('-'); xieshuju('O'); xieshuju('N');

if(key_count==2) { xiezhiling(0x80,1);//LCD第一行 xieshuju('P'); xieshuju('r'); xieshuju('e'); xieshuju('s'); xieshuju('s'); xieshuju('u'); xieshuju('r'); xieshuju('e'); xieshuju(' '); xieshuju('i'); xieshuju('s'); xieshuju(' '); xieshuju('O'); xieshuju('K'); xieshuju(' '); xieshuju(' '); xiezhiling(0x80+0x40,1);//LCD第二行 xieshuju('m '); xieshuju('a'); xieshuju('d');

42

xieshuju('e'); xieshuju(' '); xieshuju('B'); xieshuju('Y'); xieshuju(' '); xieshuju('y'); xieshuju('u'); xieshuju('a'); xieshuju('n'); xieshuju('s'); xieshuju('h'); xieshuju('u'); xieshuju('o'); xieshuju(' '); } } }

void timer0() interrupt 1 // 中断方式1 { TH0=(65536-50000)/256; TL0=(65536-50000)%6; buzzer=!buzzer; }

43

3.3.4 单片机对ADC0832的控制原理

图3.6 ADC0832与单片机的接口电路

正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。

当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能。其功能项见表3.2。

MUX Address SGL/ DIF ODD/ SIGN Channel 0 1 1 1 0 1 + - - + 表3.2ADC0832的功能表

15

如表3.2所示,当此2位数据为“1”、“0”时,只对CH0进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当2位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。

到第3个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。

作为单通道模拟信号输入时ADC0832的输入电压是0~5V且8位分辨率时的电压精度为19.53mV。如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压则转换后的数据结果始终为00H。

16

3.4 单片机

随着电子技术的发展,单片机的功能将更加完善,因而单片机的应用将更加普及。它们将在智能化仪器、家电产品、工业过程控制等方面得到更广泛的应用。单片机将是智能化仪器和中、小型控制系统中应用最多的有种微型计算机。

3.4.1 AT89C51单片机简介

AT89C51是一种带4K字节闪烁可编程可擦除只读存储(FPEROM—Falsh

Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,

俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本,如图3.7所示。AT89C51单机为很多嵌入式控制系统提供灵活性高且廉价的方案。

图3.7AT89C51单片机的结构示意图

3.4.2主要特性

1、与MCS-51 兼容。 2、4K字节可编程闪烁存储器 。 3、寿命:1000写/擦循环。 4、数据保留时间:10年 5、全静态工作:0Hz-24Hz 6、三级程序存储器锁定 7、128*8位内部RAM 8、32可编程I/O线 9、两个16位定时器/计数器 10、5个中断源

11、可编程串行通道 12、低功耗的闲置和掉电模式 13、片内振荡器和时钟电路

17

3.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的一些特殊功能口: P3口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通)

18

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:来自反向振荡器的输出。 3.4.4振荡器特性

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

19

3.4.5芯片擦除

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

3.5 液晶屏LCD简介

本次设计是利用89C51单片机串行口和一个LM016L实现压力测量数据的显示。液晶显示器(LCD)具有功耗低、体积小、质量轻、功耗小的特点。这类液晶模块不仅可以显示数字、字符,还可以显示各种图形符号以及少量自定义符号,并且可以实现屏幕的上下左右滚动、文字的闪烁等功能;人机界面友好,使用操作也更加灵活、方便,使其日益成为各种仪器仪表等设备的首选。 3.5.1液晶显示器原理

液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。 3.5.2液晶显示器分类

液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种

20

3.5.3字符的显示

用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。 3.5.4 LM016L引脚功能说明

编号 1 2 3 4 5 6 7 符号 VSS VDD VL RS R/W E D0 引脚说明 电源地 电源正极 液晶显示偏压 数据/命令选择 读/写选择 使能信号 数据 编号 8 9 10 11 12 13 14 符号 D1 D2 D3 D4 D5 D6 D7 引脚说明 数据 数据 数据 数据 数据 数据 数据 表3.3:引脚接口说明表

LMO16LCD采用标准的14脚接口,各引脚接口说明如表3.3所示: 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。

第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比

度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选指令寄存器。 第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS

和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 LCD同单片机的连接如下图3.8

21

图3.8 LCD接口电路

3.6 报警模块

本设计报警模块的采用的是蜂鸣器和一个三极管组成。当压力超出设计的范围时,单片机会给一个高电平,蜂鸣器发出声音进行警报,同时液晶屏上作出提示。当压力在正常范围内时,单片机输出信号为低电平。蜂鸣器不工作。蜂鸣器与单片机连接如图3.9。

图3.9

22

第四章 软件设计

4.1 软件编程

软件是真个系统的重要责成部分,数据的输入输出,数据的处理等功能都通过软件来完成,所以是整个系统正常可靠运行的重要前提。本设计采用c编程语言,对系统的智能功能进行设计。

C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。C语言先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。

4.2软件程序组成

这次设计软件是由主程序和一个个子程序模块组成,这样方便编写和运行整理。软件的主要部分由主程序、AD转换数据子程序、LCD显示子程序、中断和延时子程序等组成。

4.2.1 系统的主程序

流程图如下图4.1 void main(void) { unsigned int data_temp=0; init(); TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%6; ET0=1; TR0=1; while(1) { data_temp=ADconv(); if(data_temp>128)//报警数值 { EA=1; } else { EA=0; buzzer=0; } P3=~data_temp; xs_int(196*data_temp); if(KEY==0)

23

{ delay_1ms(10); if(KEY==0) { while(!KEY); key_count++; if(key_count==3)

主函数 key_count=1;

xiezhiling(0x01,0); } }

液晶屏和定时计数器初始化

if(key_count==1) {

使能定时计数器T0中断 xiezhiling(0x80,1);//LCD第一行

xieshuju('P'); xieshuju('I'); xieshuju('C');

开启定时计数器 xieshuju('3'); xieshuju('0'); xieshuju('0'); xieshuju('1');

While(1) xieshuju('-');

xieshuju('-'); xieshuju(HC[5]+0x30); xieshuju(HC[3]+0x30);

读取AD转换数据 xieshuju(HC[2]+0x30);

xieshuju('.'); xieshuju(HC[1]+0x30); xieshuju('P'); 大于限值 xieshuju('a'); 判断压力 xiezhiling(0x80+0x40,1);//LCD第二行 小于限值 xieshuju('A'); xieshuju('l'); 关闭全局中断关使能全局中断 xieshuju('a'); 闭报警器 xieshuju('r'); xieshuju('m'); xieshuju(' '); xieshuju('S'); xieshuju('t');

判断按键 xieshuju('a'); xieshuju('t'); xieshuju('u'); xieshuju('s'); xieshuju('-'); 等于2 判断key-count xieshuju('-'); xieshuju('O'); xieshuju('N'); 等于1 } 显示AD采样数据 显示预设文字 if(key_count==2) { xiezhiling(0x80,1);//LCD第一行 主程序流程图4.1

24

}

}

}

xieshuju('P'); xieshuju('r'); xieshuju('e'); xieshuju('s'); xieshuju('s'); xieshuju('u'); xieshuju('r'); xieshuju('e'); xieshuju(' '); xieshuju('i'); xieshuju('s'); xieshuju(' '); xieshuju('O'); xieshuju('K'); xieshuju(' '); xieshuju(' ');

xiezhiling(0x80+0x40,1);//LCD第二行 xieshuju('M'); xieshuju('a'); xieshuju('d'); xieshuju('e'); xieshuju(' '); xieshuju('B'); xieshuju('Y'); xieshuju(' '); xieshuju('y'); xieshuju('u'); xieshuju('a'); xieshuju('n'); xieshuju('s'); xieshuju('h'); xieshuju('u'); xieshuju('o'); xieshuju(' ');

4.3系统子程序设计

4.3.1 A/D转换器的软件设计

单片机控制系统中通常要用到AD转换,根据输出格式,常用的AD转换方式可分为并行AD和串行AD。并行方式一般在转换后可直接接收,但芯片的引脚比较多;串行方式所用芯片引脚少,封装小,但需要软件处理才能得到所需要的数据。可是单片机I/O引脚本来就不多,使用串行器件可以节省I/O资源。

ADC0832是8位逐次逼近模数转换器,可支持两个单端输入通道和一个差分输入通道。相同功能的器件还有ADC0834,ADC0838,ADC0831。所不同的是它们的输入通道数量不同。它们的通道选择和配置都是通过软件设置。

25

4.3.2ADC0832芯片接口程序的编写

单片机串行工作方式时 ,串行口是作为同步移位寄存器使用。这时以 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转换结束后,单 片机读取数值,如果没转换完,又回到使能开始。 使能芯片 AD程序流程图如图4.2

产生时钟信号 输入通道控制字 读取2字节数据开始转换 N A/D转换结束 Y 读取转换数据值 结束 图4.2 ADC0832数据读取程序流程

26

4.3.3 LCD数码管显示程序设计

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图4.3是LM016的内部显示地址。

图4.3 LM016LCD内部显示地址

在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图10-58所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。如表4.1。

00110001~00111001 01000001~01001111 01010001~01011010~01011111 01100001~01101111 01110001~01111010

表4.1 字符代码与图形对应表

27

数字1~9 字母A~O 字母Q~Z~[ ¥ ] ~ - 字母a~o 字母q~z

LM016LCD的一般初始化(复位)过程 延时15mS

写指令38H(不检测忙信号) 延时5mS

写指令38H(不检测忙信号) 延时5mS

写指令38H(不检测忙信号)

以后每次写指令、读/写数据操作均需要检测忙信号 写指令38H:显示模式设置 写指令08H:显示关闭 写指令01H:显示清屏 写指令06H:显示光标移动设置 写指令0CH:显示开及光标设置 LCD显示程序流程如图4.4所示

开始 LCD初始化 延时 设第一行显示位置 显示第一行内容 设第二行显示位置 显示第二行内容 结束

图4.4 LM016L的显示流程图

28

第五章 proteus 仿真调试

5.1仿真软件了解

5.1.1proteus软件介绍

Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

5.1.2protuse功能和特点

(1)功能 1.原理布图

2.PCB自动或人工布线 3.SPICE电路仿真 (2)特点

1.互动的电路仿真

用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 2.仿真处理器及其外围电路

可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型

上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。

29

5.2本次设计仿真过程

5.2.1 创建原理图

启动Proteus软件,单击挑选元件按钮,在元件库中选出所需元器件,出现如图5.1所示:

图5.1

5.2.2 绘制仿真原理图

绘制仿真原理图如图5.2所示

图5.2

30

5.2.3 系统调试

双击单片机出现下图所示画面图5.3,在Program File一栏中选取仿真项目的源程序代码,点击确定。

图5.3

5.2.4 开始仿真

1、单击Play按钮,进入仿真状态。

调整压力传感器,屏幕的压力数值开始变化,如图5.4所示。当超过压力上限,报警器开始发出相声报警。

图5.4

31

按压按键一次,显示器显示预设界面。如图5.5所示。

图5.5

2、总结

(1)本次仿真有两个仿真结果。

第一种,在不按按钮,使得键值是1的情况下,调节压力传感器,显示器正常显示压力值。当压力增大,超过界限压力的时候,蜂鸣器开始蜂鸣报警。 第二种,按下按钮,使得键值达到2的情况下,系统继续工作,但是显示器会显示预定的画面。有这个画面我们可以对其进行利用,比如阐述系统功能、制作单位、开发人员等。

(2)在本次仿真中还是出现了一定问题。由于本设计要求是要完成气体,液体等压力的测量,所以要用到电阻应变片做为传感器,但是在protuse中并没有这样的组键,所以我选用了滑动变阻器来实现仿真结果。而且,在初次仿真中并没有获得成功,自己就对照程序发现自己在连接硬件电路的时候不注意排版导致连接端口错误的现象,并进行了重新摆放硬件位置,使得画面简洁明了。最后,在多次仿真不正常的情况下,发现protuse的源文件不能放置在中文文件夹下,不然会出现仿真失败或者异常的现象。

32

第六章 总结

在查阅大量资料与文献的基础上,经过几个月的努力,基本完成了对本课题的所有设计工作并达到了预期的设计要求,现将工作总结如下。

6.1 设计总结

本文从理论设计出发,参考多种成熟的智能压力传感技术和前人的研究成果,对智能压力传感系统展开分析与研究。本设计分析了当前智能压力传感系统的现状,阐述了基于单片机的智能压力传感系统设计的必要性和现实意义,论述了基于单片机的智能压力传感系统的硬件电路组成及其工作原理,并详细分析了各组成单元电路的性能及其工作原理,同时编写了与硬件密切相关的几个模块程序,基本满足了设计要求。

相对于大多数压力传感器系统的研究,本设计有以下几个方面的特点: (1)本设计也用了AT89C51单片机,充分利用了该单片机的在系统编程(ISP)功能和可擦写Flash芯片技术,大大提高了设计和改进设计效率,降低的投资成本。

(2)本设计在传感器方面应用的是电阻应变式传感器,他有结构简单、体积小、使用方便、性能稳定、可靠、灵敏度高动态响应快、适合静态及动态测量、测量精度高等诸多优点,虽然不是现代继续的尖端,但他的成本也是起很大的优势,是一种性价比比较高的选择。

(3)该装置的可扩展性较强,留有大量的I/O口,非常方便系统的扩展。 (4)这个系统的通用性也很强,只要系统中的传感加加以改变就可以用于温度、重量等方面的测量。

实践证明,基于51单片机的压力压力传感器系统的设计方法是可行的,工作稳定,成本较低,并且系统的扩展和升级也很方便。因此,系统的应用范围不仅仅局限于压力测量,还可以做为其他领域测量系统的解决方案。

33

6.2展望和不足

随着计算机软硬件技术的飞速发展,新产品与新技术日新月异,每一产品都面临着新的挑战。同时,由于作者经验上的不足,技术水平有限,本文设计的智能压力传感系统也有其不足之处函待改进,主要体现在以下几个方面:

(1)压力采样点的问题

由于时间问题以及设计的局限性,在本设计中仅使用了一个电阻应变式传感器进行压力值采样。而在实践压力测量中,应采取多点采样,多点控制。不然在实际测量中很难得到更具有说服力的数据。

(2)人机交换的问题

本次设计中,由于我专业只是不够强,所以并未设置一个用于人机交换的按键系统,无法在测量过程中对系统进行更准确和更实时的调节,这也也使得本设计的快速可操作性受到了很大的局限。

(3)我自身的不足

在进行本实验的过程中我遇到了不少的困难,这些都是在老师和同学的帮助下才一步步的进行了下来,并获得了成功,但是这也是我发现了自身在理论知识上的很大不足,而且在作图中也了解的了自己对作图工具的不熟悉,这些都是我在以后工作过程中会遇到的致命伤,所以我应该更加努力的完善和提高自己的专业理论。

34

致谢

参考文献

[1]单片机原理及应用,张鑫等,电子工业出版社 [2]MCS51单片机应用设计,张毅刚等,哈尔滨工业大学

[3]MCS51系列单片机实用接口技术,李华等,北京航天航空大学 [4]PROTEL2004电路原理图及PCB设计,清源科技,机械工业出版社 [5]基于MCS-51系列单片机的通用控制模块的研究,曹卫芳,山东科技大学,

2005.5

[6]单片机应用技术选编,何立民,北京航空航天大学出版社,2000 [7]检测技术与系统设计,张靖等,中国电力出版社,2001

[8]田捷,杨鑫.智能设计基础[M],北京:电子工业出版社,2005 [9]何立民. 单片机应用技术选编[M]. 北京航空航天大学出版社,2003 [10]童长飞. C8051F系列单片机开发与 C语言编程 [M ].北京:北京航空航天

大学出版社,2005. 38~43.

[11]王雪文, 传感器原理及应用.北京[M]:北京航空航天出版社,2004 [12]赖麒文.8051 单片机 C语言彻底应用. 北京[M]:科学技术出版社, [13]杨振江等编著. 智能仪器与数据采集系统中的新器件及应用[M]. 西安

电子科技大学出版社.

[14]王幸之,钟爱琴,王雷等. AT89系列单片机原理与接口技术 [M ].北京:北

京航空航天大学出版社,2004:345~346

[15]朱定华.单片机原理及接口技术[M]. 北京:电子工业出版社 ,2001.6 [16]8位串行A/D转换器 0832[J ]. 电子世界, 2002,

35

附录一 protel图

36

37

附录二 源程序

#include\头文件 #include #define DD P2

sbit CS=P1^0; //定义端口 sbit CLK=P1^1; sbit Do=P1^2; sbit Di=P1^3; sbit KEY=P1^7; sbit buzzer=P0^0;

sbit Rs=P1^4;//LCD定义端口 sbit Rw=P1^5; sbit E=P1^6;

sbit busy_p=ACC^7;

unsigned char CH=0x02,key_count=1; unsigned char HC[6]={0}; unsigned char BZ=0;

void delay_1ms(unsigned char i) //延时函数1ms { unsigned char j; while(i--) for(j=0;j<125; j++); }

void delay_10ns(unsigned char i)//延时函数10ns { unsigned char j; while(i--) for(j=0;j<10; j++); }

void xiezhiling(unsigned char com,bit p)//写命令函数 { if(p) delay_10ns(5); E=0; Rs=0; Rw=0; DD=com; delay_10ns(50); E=1; delay_1ms(2); E=0; delay_10ns(4); }

void xieshuju(unsigned char DATA)//写数据函数 { delay_10ns(50); E=0; Rs=1; Rw=0; DD=DATA; delay_10ns(50); E=1;

38

delay_10ns(50); E=0; delay_10ns(4); }

void init(void)//初始化函数 { delay_1ms(15); xiezhiling(0x38,0); delay_1ms(5); xiezhiling(0x38,0); delay_1ms(5); xiezhiling(0x38,0); delay_1ms(5); xiezhiling(0x38,1); //功能设定(8位,2行,5*7点矩阵) xiezhiling(0x08,1); xiezhiling(0x01,1); //清除屏幕 xiezhiling(0x06,1); //加1 xiezhiling(0x0c,1);//显示器ON,光标OFF,闪烁OFF }

unsigned char ADconv(void)//AD转换子程序 { unsigned char i; unsigned int data_f=0,data_c=0; Di=1; CS=1; _nop_(); CS=0; Di=1; ; CLK=1; _nop_(); _nop_(); CLK=0; _nop_(); _nop_(); CLK=1; Di=(bit)(0x02&CH); _nop_(); CLK=0; _nop_(); _nop_(); CLK=1; Di=(bit)(0x01&CH); _nop_(); _nop_(); CLK=0; Di=1; CLK=1; _nop_(); _nop_(); CLK=0; _nop_(); CLK=1;

39

本文来源:https://www.bwwdw.com/article/2w7d.html

Top