ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:181.89KB ,
资源ID:5390036      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5390036.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的压力传感器系统的设计与实现.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的压力传感器系统的设计与实现.docx

1、基于单片机的压力传感器系统的设计与实现毕业设计报告(论文)报告(论文)题目:基于单片机的压力传感器 系统的设计与实现 作者所在系部: 电子工程系 作者所在专业: 电子信息工程 作者所在班级: B10212 作 者 姓 名 : 雷宇 作 者 学 号 : 20104020419 指导教师姓名: 王喜斌 完 成 时 间 : 2014年6月3日 北华航天工业学院教务处制北华航天工业学院毕业设计(论文)任务书(理工类)学生姓名: 雷宇 专 业: 电子信息工程 班 级: B10212 学 号:20104020419 指导教师: 王喜斌 职 称: 副教授 完成时间: 2014.6 毕业设计(论文)题目:基于

2、单片机的压力传感器系统的设计与实现题目来源教师科研课 题纵向课题( )题目类型理论研究()注:请直接在所属项目括号内打“”横向课题()应用研究()教师自拟课题()应用设计()学生自拟课题()其 他()总体设计要求及技术要点:依托于单片机的控制原理,设计控制程序和相关电路,实现对AD转换电路和液晶显示器的控制,使之能够基本实现对压力的测量和显示。整体设计的关键部分有两点:1.对传感器输入模拟信号的放大与转换。2.对液晶显示电路的控制。工作环境及技术条件:个人计算机一台,相关开发软件,单片机最小系统开发板一套,液晶显示屏一块。工作内容及最终成果: 1、编写出控制程序。 2、调试AD转换以及液晶显示

3、电路。 3、焊接出放大电路,AD转换模块和LCD显示模块电路 4、连接各个模块,并调试程序,使之能够与已有压力传感器配合测量压力时间进度安排:1、第七学期第6周第15周,查阅资料,完成开题报告、文献综述、外文文献翻译;2、第七学期第16周第17周,开题报告审阅、答辩;3、第八学期第1周第4周,分析系统功能确定各个模块的核心器件;4、第八学期第5周第7周,搜集整理各模块核心器件的使用方法,并设计硬件原理图;5、第八学期第8周第14周,完成控制程序的编制;6、第八学期第15周第17周,完成电路的焊接,并调试功能,完成毕业论文。指导教师签字: 年 月 日教研室主任意见:教研室主任签字: 年 月 日北

4、华航天工业学院本科生毕业设计(论文)原创性及知识产权声明本人郑重声明:所呈交的毕业设计(论文)环道控制系统下位软件设计方案二是本人在指导教师的指导下,独立进行研究工作取得的成果。除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品或成果。对本设计(论文)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。因本毕业设计(论文)引起的法律结果完全由本人承担。本毕业设计(论文)成果归北华航天工业学院所有。本人遵循北华航天工业学院有关毕业设计(论文)的相关规定,提交毕业设计(论文)的印刷本和电子版本。本人同意北华航天工业学院有权保存毕业设计(论文)的印刷本和电子

5、版,并提供目录检索与阅览服务;可以采用影印、缩印、数字化或其它复制手段保存论文;在不以营利为目的的前提下,可以公布非涉密毕业设计(论文)的部分或全部内容。特此声明毕业设计(论文)作者: 指导教师: 年 月 日 年 月 日摘 要在现实生活与工业生产中几乎随时随地都要测量各种物理量,例如压力,温度,长度等等。然而这些不同的物理量的测量与处理过程是大同小异的,主要包括传感器,放大电路,AD转换电路,控制器,以及输出部分,这就给我们的模块化设计提供了先天条件。这样我们就可以很方便在不同测量设备中进行模块化移植。关键词 单片机,AD转换电路,液晶显示 AbstractAlmost whenever an

6、d wherever possible to measure various physical quantities, in real life and in industrial production, such as pressure,temperature, length, etc. However, measurement and process these different physical quantity is very much the same, mainly consists of sensor,amplifier circuit, AD conversion circu

7、it, controller, and output part, this will give our modular design provides congenital conditions. So we can easily bemodular grafting in different measuring equipment Key words Microcontroller, AD conversion circuit, liquid crystal display 第1章 绪论1.1 课题设计背景随着社会科技的进步,人们对生活的品质要求的提高,以及工业生产中日益精确的控制要求,现在

8、几乎随时随地都需要对各种物理量进行测量。我们从很早就开始了对现实物理世界的观察与描述,而测量则是我们探索物理世界的一个重要手段。随着电子技术的迅速发展,我们开始在测量中大量引入电子技术,其测量的便捷性,智能性都得到了广泛的认可,从而促进了传感器技术的迅速发展。各种传感器种类繁多,形态各异,其测量机理也不尽相同,但是不论其测量的是何种物理量,基于哪一种测量机理,其最终的转换结果都是电信号。那么我们若除去传感器的部分的非电量部分,而只关注其电器性能部分,则我们只要关注对电子量的处理与识别就可以。这里我们引入“网口”的概念,即对于网络内部的构造于运行机理并不投入过多的注意力,转而关注整个网络于网络外

9、部的接口部分的电量变换规律,这样就大大降低了设计与使用的难度。这个课题的目的就是想通过压力传感器系统这一个例的设计与研究,总结出一个行之有效的,可以应用于其他传感器类型的调理控制电路。1.2 传感器系统简介依据上文所说到的“网口”概念,我们抛开其内部工作机理对系统进行简单的划分与介绍。这里的“网口”其实也可以理解为系统,我们生活中会遇到很多系统,而系统与系统之间又相互交汇,存在着信息与能量的交换,即与外部存在着“网口”。例如传感器系统,一端与物理世、世界相连,将物理量采集到其系统内部,经过系统内的一系列运作,最终变成人可识别的信息输出给人。物理世界就是它的输入,人能看到的输出终端就是他的输出。

10、而对于传感器系统内部而言,又可以划分为一连串的小系统,其中包括放大电路,AD转换电路,单片机控制电路,LCD显示电路。其连接结构如下: 1.3 本文内容提要本文主要包括以下内容:1整体系统的的实现方法。2各个模块的设计连接与实现方案。3为其他传感器的测量变送系统提供设计思路。第2章 调理电路硬件设计在课题设计中我们采用的控制芯片为STC89C52单片机,AD转换采用AD0804,显示模块采用LCD1602,由于这几种芯片已经是很成熟的设备,各种技术资料的介绍已经很完备,所以在本文中我们不对各个芯片的技术参数再做赘述,而侧重于实际设计的思路分析。文中仅引用一些我们设计时需要关心的内容,在设计思路

11、上,我们先对各个模块进行独立设计,在最后再将各部分组装到一起。2.1 传感器电路分析由于传感器输出信号很小,一般是几十到几百毫伏,而且为保证下一级电路的介入不影响传感器的工作状态我们要选择输入阻抗较高的放大电路,防止放大电路的输入级从传感器吸收过多的电流从而导致传感器输出的电压下降,造成测量误差。其机理如下图:如图,我们取c,d两端作为输出级当电桥处于不平衡状态时c,d两点间存在电位差,取为输出,则经过简单的三角形星形变换后可知输出负载阻抗越高,对桥型电路影响越小。2.2选用放大电路及其电路分析采用的放大电路如图1所示,对上图电路进行分析,LM324的1引脚输出为VO1,7引脚输出为VO2,8

12、引脚为VO,对上图所示为一个仪用放大器电路原理图,具有高输入阻抗和高电压增益的特点,图中U2:A和U2:B构成了同相并联差动放大器,第一级输出为:VO=1+(R2+R3)/RV2VI;由于反馈的作用使第一级的两个运放的vp和vn几乎相等即虚短,进而使其输入端几乎没有电流流过,这意味着它不从上一级的传感器桥式电路中吸收电流,具有高输入阻抗。U2:C构成第二级差动放大,在这一级放大电路中,欲有效抑制共模干扰,需使R1=R4=R;R5=R6=Rf;则总的放大输出为VO=(Rf/R)VO=1+(R2+R3)/RV2(Rf/R)VI。其中RV2为滑动变阻器,可调节放大增益。2.3 AD转换电路的设计由于

13、传感器输出信号为模拟信号,我们使用的处理芯片只识别数字信号,所以需要将模拟量转换为数字量,对于使用者而言我们不必过多关心起内部的构造与原理,而把注意力放到其控制接口与接口性能上,本文以AD0804为例来设计AD转换电路,2.3.1AD0804的外围接口的功能:/CS:芯片片选信号,低电平有效,即/CS=0,该芯片才能正常工作,当外接多个AD芯片是可以通过这个接口来控制是哪一个芯片在工作;如在多通道采集电路中,当我们使用到AD转换时,就可以通过片选信号的控制来完成通道的选择。/WR:启动ADC0804进行ADC采样,该信号低电平有效,我们在程序的初始化时该接口给低电平,使用时当整个电路初始换完成

14、后,准备开始数据采集时,给该接口低电平信号,AD芯片开始进行转换。DB0DB7:由于AD0804是8位转换芯片,即将AD所能采集到的最大模拟量分成28分,结果以二进制形式存储到DB0DB7,等待控制芯片的读取。/RD:低电平有效,当转换完成后,转换结果已经存到DB0DB7后,由单片机控制给出低电平信号,这时单片机可以从数据接口读出转换结果。UIN(+)和UIN(-):模拟电压输入端,模拟电压输入接UIN(+)端,UIN(-)端接地。双边输入时UIN(+)、UIN(-)分别接模拟电压信号的正端和负端。当输入的模拟电压信号存在“零点漂移电压”时,可在UIN(-)接一等值的零点补偿电压,变换时将自动

15、从UIN(+)中减去这一电压。本电路中直接将传感器的两个输出端接到芯片的两个模拟输入端上。VREF/2:参考电压接入引脚,参考电压值是AD输出的最大值该引脚可外接电压也可悬空,若外界电压,则ADC的参考电压为该外界电压的两倍,如不外接,则Vref与Vcc共用电源电压,此时ADC的参考电压即为电源电压Vcc的值,。CLKR和CLKIN:外接RC电路产生模数转换器所需的时钟信号,时钟频率CLK = 1/1.1RC,一般要求频率范围100KHz1.28MHz。AGND和DGND:分别接模拟地和数字地,电路中有时会出现数字部分与模拟部分相互干扰的情况,这时我们要实行数模隔离,地线需相对独立。 /INT

16、:中断请求信号输出引脚,该引脚低电平有效,当一次A/D转换完成后,将引起/INT=0,应用时,将这一接口与单片机中断入口相连接,当中断触发时单片机处理中断程序,读取AD转换结果。2.3.2外围电路的设计1.需要单片机控制的引脚:/CS、/WR、DB0DB7、/RD,以上几个接口用于与单片机的数据通信,实现单片机对数据转换的控制和结果的读取。2.电源电路的接法:电源部分包括VCC、VREF/2、AGND、DGND。VCC使用5V电压,VREF/2悬空这样参考电压即为电源电压,AGND和DGND可根据实际情况选择公用地线,或者进行隔离。3.CLKR和CLKIN接口可根据实际工作电路的运行情况选择R

17、C震荡电路的频率。若不影响实际的使用,可以将频率设计的地一些,给单片机留出工作反应时间,以免中断请求过于频繁而影响到整个系统程序的执行。仿真电路如下:我们进行电路设计时此图中C4选取的值较大,实际设计时可根据CLK = 1/1.1RC进行换算选取合适的时钟频率。且由于设计时是分模块进行的,所以上图的UIN(+)和UIN(-)两个模拟输入量未接入上级的放大电路输出接口,仅以一个可控的电源输入来代替。实际应用时UIN(+)接放大电路的输出接口,UIN(-)接地。2.3.3控制程序的设计:在进行程序设计时我们需要用到数据手册中的时序图:结合前文的接口功能我们读时序图,时序图由两个部分组成,转换时序和

18、输出时序,1.转换时序:由转换时序图可知,当/CS给低电平的情况下,/WR由高电平变成低电平并保持TW(/WR)的时间后再拉高,即启动一次转换,启动之后需等待转换完毕这一段的时间最少是8+73=81个时钟周期,结合前文提到的CLK = 1/1.1RC公式我们可以计算出这一延时的长度。转换完成之后芯片自动将结果存到D0 D7的寄存器中。这时中断输出位拉低。2.输出时序:采样转换完毕后,再/CS信号为低的前提下,将/RD脚由高电平拉成低电平后,经过tACC的延时即可从DB脚读出有效的采样结果。根据以上分析结果我们就可以进行程序的编写了,以下为AD转换模块的控制程序:#include#define

19、uchar unsigned char#define uint unsigned intsbit cs=P01;sbit wr=P03;sbit rd=P02;void init();/初始化程序void start();/启动转换程序void read();/结果读取程序void delay(uint z);/延时函数void main() init(); while(1) start(); read(); void init() /初始化程序 cs=1; wr=1; void delay(uint z)/延时函数 uint x,y; for(x=z;x0;x-) for(y=110;y0;

20、y-); void start()/启动转换程序 cs=0; wr=0; delay(1); wr=1; delay(3); void read()/结果读取程序 uchar dd; cs=0; rd=0; delay(10); dd=P1; 我们现在编写的仅仅是针对于AD转换的一部分,但是C语言程序有很高的可移植性。所以讲几个模块的程序编写出来以后再进行程序的“组装”。2.4 LCD显示电路的设计LCD显示乍一看好像很麻烦,实际上来讲其设计思路与AD电路的设计思路是非常相似的,其区别在于AD0804芯片是靠其外围接口的控制来完成控制工作,不同之处在于,LCD显示模块中有存储功能,需要对其内部

21、的存储空间具有一定的了解。下面我们从LCD1602的数据手册开始逐步的了解其使用方法。等我们将数据手册分析明白后,我们的硬件电路接线图和程序就基本上设计出来了。2.4.1LCD的介绍这里我们任然秉承前文的“网络”概念,关于其内部一些不必要的构造以及运行原理全部摒弃不要,只介绍我们使用时需要了解的部分,即,主要技术参数、外围电路接口、指令、时序图,供电电源设计外围电路时我们因注意这些使用参数,暂且称之为运行条件吧,其内容如下:芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V设计电路时,参照这几个参数以保证电路的正常运行,避免损坏芯片。硬件接口第1脚:VSS为

22、地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,LCD1602模块中集成了寄存器,以存储指令和数据,我们写入的内容是放到数据寄存器来显示,还是放到程序寄存器来进行模块控制,由此引脚的状态来决定。RS高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。本系统只进行写操作,所以此引脚一直给低电平。第6脚:E端为使能端,当E端由高电平时读取信息;由高电平跳变成低电平时,液晶模

23、块执行命令。第714脚:D0D7数据线,我们通过这八个I/O口进行单片机和LCD的数据传输。第15脚:背光源正极。第16脚:背光源负极。有了以上内容我们就可先进行硬件电路的设计了,因为LCD与单片机之间只有信号的交流,其显示功率由模块内部的驱动电路提供所以省去了数码管的外围驱动电路。这样大大简化了硬件电路的设计难度。其连接图如下由于我们只进行写操作所以RW引脚一直给低电平,直接接地控制指令序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001

24、S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容在研究LCD数据手册时,我迷惑了半天始终搞不明白LCD的控制方法,原因之一就是,没有把指令、数据以及控制时序之间的关系搞明白。现在我用自己的话将我对这些操作的理解叙述一遍:在操作LCD模块时其实和操作单片机是一样的,不管我们操作的是单片机的哪一种功能,控制的哪一个引脚,实际上我们并没有对这个引脚进行直接的操作,我们操作的是这一引脚

25、所对应的寄存器。例如:我们想让P11口输出1,我们是把“1”这个数据装入到与P11连接的寄存器中,到时候单片机自动将寄存器中的状态转换成P11接口的高低电平输出。现在回到LCD的操作,我们在操作LCD模块时,本质上也是对其内部的寄存器进行操作,而且,LCD的寄存器有两种,一种是程序寄存器(指令寄存器),一种是数据寄存器,指令寄存器,顾名思义,就是存指令的,而指令的作用我们先前已经介绍了,但是在阅读指令集的时候要弄清楚各个位是做什么的。前面的两位RS和RW是控制位,他们的状态决定了我们是对数据寄存器操作还是对指令寄存器进行操作,和进行的是读操作还是写操作,后面的D0D7八个位才是写到寄存器里面的

26、内容。这样我们的思路就清晰了。:RS,RW,E三个端口的时序配合如下:读状态 输入:RS=L,RW=H,E=H 输出:DB0DB7=状态字写指令 输入:RS=L,RW=L,E=下降沿脉冲,DB0DB7=指令码 输出:无读数据 输入:RS=H,RW=H,E=H 输出:DB0DB7=数据写数据 输入:RS=H,RW=L,E=下降沿脉冲,DB0DB7=数据 输出:无 读操作时序 写操作时序看到这里我们在回头对应先前的指令集,就可以发现,所谓的指令集,是要分开两个部分来看的,第一部分是RS和RW两个控制位,第二部分我们可以称之为指令。我们要做的工作就是按照时序图的要求将需要写入的指令或数据送给LCD。

27、在编写程序时,将rs,rw,e三个端口设置好之后,直接将要写入的内容送给D0D7口就可以了。程序设计由先前的分析我们可知,LCD的主要控制程序分为写指令程序和写数据程序,我们先按照时序图将两个子程序写下来写指令程序void lcdwrite_com(uchar com) lcdrs=0; P0=com; delay(1);/延时函数 lcden=1; delay(5); lcden=0; 写数据程序 void write_data(uchar date) lcdrs=0; P0=date; delay(5); lcden=1; delay(5); lcden=0;利用这两个子程序就可以写入相关

28、指令和程序了下面我们先利用这两个子程序完成LCD的初始化设置。void init() lcdwrite_com(0x06);/指令3,光标右移,文字不移动 lcdwrite_com(0x0c);/指令4,显示器开,无光标,无闪烁 lcdwrite_com(0x14);/指令5,光标右移一格 lcdwrite_com(0x38);/指令6,设置 8 位格式,2 行,5x7 lcdwrite_com(0x01);/清屏 delay(5);延时,令LCD有足够时间完成清屏程序然后我们就可以对先前写成的程序进行组装了,组装结果如下:#include#define uchar unsigned char

29、#define uint unsigned int#define lcd_db P0 sbit lcdrs=P20;sbit lcden=P21;void lcdwrite_com(uchar com);/写指令void lcdwrite_data(uchar date);/写数据void lcd_disp_char(uchar a,uchar b,uchar c);/显示程序void init();void delay(uint z);void main() init(); lcd_disp_char(0,1,A); while(1);void lcd_disp_char(uchar a,uchar b,uchar c)/显示程序 uchar address; if(b=1) address=0x80+a; else address=0xc0+a; lcdwrite_com(address); lcdwrite_data(c); 由于其他子程序内容,前文已经给出,所以这里的程序就不再赘述。第3章 控制程序的设计在之前的对各个硬件电路的控制过程3.1 程序要完成的任务程序即命令,它要担负起整合硬件资源的任务,并且要对信息进分析处理。针对我们这个课题

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

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