单片机数字温度计的设计课程设计_第1页
单片机数字温度计的设计课程设计_第2页
单片机数字温度计的设计课程设计_第3页
单片机数字温度计的设计课程设计_第4页
单片机数字温度计的设计课程设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、郑州航空工业管理学院单片机原理及应用课程设计论文 2009 届 自动化 专业 0906* 班级题 目 数字温度计的设计 姓 名 * 学号 * 指导教师 程琤 二一二 年 六 月 二 日一、 数字温度计的基本原理数字温度计工作的基本原理是: 采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即AD转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系

2、起来,成为可以显示出来的温度数值数字温度计根据使用的传感器的不同,AD转换电路,及处理单元的不同,它的精度,稳定性,测温范围等都有区别,这就要根据实际情况选择符合规格的数字温度计。二、设计方案 本设计以检测温度并显示温度提供上下限报警为目的,按照系统设计功能的要求,确定系统由4个模块组成:主控器、测温电路,报警电路,显示电路。系统以为传感器用以将温度模拟量转化为电压数字量以总线传入单片机,以AT89C51为主芯片,在主芯片对DS18B20传入的温度值进行处理,由单片机程序控制,将经处理后的温度由LED显示器显示出来。LED温度显示电路AT89C51单片机DS18B20测温电路上下线报警电路电源

3、、时钟复位电路 测温电路的总体系统框图三、硬件设计温度检测每次测温由单片机向测温传感器发出特定脉冲,测温传感器能够检测到脉冲并做相应的工作。传感器将模拟温度信号经过采集,数字处理,放大后输出。DS18B20使用一个单线接口发送或接受信息,因此在单片机和DS18B20之间只需要有一个模数转换电路,把传感器采集到的模拟信号转化为数字信号传递给单片机,用于读写和温度转换的电源可以从数据线获得,无需外接电源。数字信号的处理及温度显示送入单片机内部的数字信号经过单片机的处理,将数据用LED显示屏显示出来。其处理过程主要由单片机能存储的程序进行控制。报警功能在单片机程序内设置了报警温度的上下限值,当所测得

4、的温度超过了这一数值,将会由蜂鸣器发出报警。报警功能是本系统的重要功能之一,在工业应用中常常需要在特定的温度条件下进行报警,当温度超出范围时及时的报警是十分必要的。AT89C51简介 对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。所以,我们选用51系列单片机AT89C51。AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4KB的可编程的Flash只读程序存储器,兼容标准8051指令系统及引脚,并集成了 Flash 程序存储器,既可在线编程(ISP),也可用传统方法进行编程,因此,低价位A

5、T89C51单片机可应用于许多高性价比的场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。AT89C51的主要特性如下:与MCS-51 兼容; 4K字节可编程闪烁存储器;三级程序存储器锁定;1288位内部RAM; 32根可编程I/O线;两个16位定时器/计数器; 5个中断源;可编程串行通道; 片内振荡器和时钟电路。DS18B20简介DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。具有3引脚

6、TO92小体积封装形式,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出。其工作电源既可在远端引入,也可采用寄生电源方式产生。CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源

7、。DS18B20支持“一线总线”接口,测量温度范围为 -55C+125C,在-10+85C范围内,精度为0.5C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。根据本设计的要求,根据多次比较和选择,决定采用DS18B20温度传感器。显示电路设计发光二极管是半导体二极管的一种,可以把电能转化成光能,常简写为LED。发光二

8、极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。发光二极管的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流。发光二极管的特点是:工作电压很低(有的仅一点几伏);工作电流很小(有的仅零点几毫安即可发光);抗冲击和抗震性能好,可靠性高,寿命长;由于有这些特点,发光二极管在一些光电控制设备中用作光源,在许多电子设备中用作信号显示器。把它的管心做成条状,用7条条状的发光管组成7段式半导体数码管,每个数码管可显示09十个数字。

9、时钟电路的设计本电路选石英晶振作为时钟组件,接至AT89C51的XTAL1,XTAL2引脚组成时钟电路。石英晶片所以能做振荡电路(谐振)是基于它的压电效应,从物理学中知道,若在晶片的两个极板间加一电场,会使晶体产生机械变形;反之,若在极板间施加机械力,又会在相应的方向上产生电场,这种现象称为压电效应。如在极板间所加的是交变电压,就会产生机械变形振动,同时机械变形振动又会产生交变电场。一般来说,这种机械振动的振幅是比较小的,其振动频率则是很稳定的。石英晶体振荡器是利用石英晶体的压电效应来起振,振荡器直接应用于电路中。蜂鸣器电路的设计目前,在许多情况下需要对环境的温度进行限定,随着人民生活的改善和

10、工业的发展,安全问题变的就更加的重要。环境温度一旦超过限定值,势必会对所处环境的人或设备造成影响,更甚者将会给个人和社会造成巨大的损失和社会影响。因此,在某些特定环境内安装温度报警器进行监控也成为一种必然的需要。设计要求到上下限温度限制时有声音提醒信号产生,可选择一只蜂鸣器来实现这一功能。蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于电子产品中作发声器件。电压式蜂鸣器(HA)工作时约需10mA的驱动电流,并设计一个相应的驱动及控制电路。数字温度计设计的原理图如下:四、软件设计编程语言选择:51的编程语言常用的有两种,一种是汇编语言,一种是C语言。汇编语言的机器代码生成效率很高

11、但可读性却并不强,复杂一点的程序就更是难读懂,而C语言在大多数情况下其机器代码生成效率和汇编语言相当,C 语言很好的结构性和模块化更容易阅读和维护,用C 编写程序比汇编更符合人们的思考习惯,开发者可以更专心的考虑算法而不是考虑一些细节问题这样就减少了开发和调试的时间,而且C语言还可以嵌入汇编来解决高时效性的代码编写问题。系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。主程序的设计主程序的主要功能是负责多点温度数据的实时采集、传输,处理和显示。其程序流程图1所示。初始化N读温度数据并存储生成地址字节,循环次数3延时1S以上等待结果启动转换向设置/

12、状态寄存器设置为连续工作方式生成地址字节,循环次数3次地址字节加02H 循环次数减1为0?读温度数据并存储及显示地址字节加02H 循环次数减1为0?图1 主程序流程图NNY发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正?确?移入温度暂存器结束NNY 图2 读温度流程图 读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图2所示温度转换命令字程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延

13、时法等待转换的完成。温度转换命令子程序流程图如下图,图3所示: 开始温度零下?温度值取补码置“”标志计算小数位温度BCD值 计算整数位温度BCD值 结束置“+”标志NY发DS18B20复位命令发跳过ROM命令发温度转换开始命令 结束图3温度转换流程图 图4 温度计算流程图计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图4所示温度采集模块设计为本温度采集系统开发的软件程序,可以对DS18B20内部的寄存器编程控制DS18B20的工作方式,以及从这些数据寄存器读取温度值,最后把经过单片机数据处理后的温度送到LED上显示。AT89C51扮演

14、着上传下达的角色,单片机端的程序采用了C语言。整个软件采用了模块化的程序设计方法。为了实现AT89C51和DS18B20之间的串行通信,编写了一些专用子程序。这些子程序段包括:符号定义、AT89C51的端口初始化、启动信号时序产生、停止信号时序产生、发送字节、读取字节、读取温度、显示。系统电路在上电后开始工作,最先程序单片机进行初始化设置,然后单片机利用模拟I2C总线对DS18B20进行寻址。单片机在接收到DS18B20应答后,紧接着单片机利用命令(AAh、ACh、EEh、22h)将设置/状态寄存器的值通过I2C总线写入DS18B20状态寄存器,该系统中把DS18B20设置为连续温度转换工作方

15、式,之后DS18B20在单片控制下进行温度测量,然后DS18B20把所采集的温度传输给单片机。主程序:#include #include DS18B20.Hsbit beep=P00;/蜂鸣器控制口extern unsigned int wendu;unsigned int H=33,L=30;void main(void) unsigned int temp; unsigned char temp_h,temp_l; Delay(50000); Lcd_Init(); /12864初始化 Lcd_DisplayString(0,2,温度检测); Lcd_DisplayString(1,1,温

16、度:); while(1) temp=read_temp()*0.625;/读取温度if(tempH*10)/温度高于33摄氏度则报警 /上下限报警判断 beep=0; red_H=0;else if(temp0)i-; DS=1; i=4; while(i0)i-; bit tmpreadbit(void) /读一位数据 uint i; bit dat; DS=0;i+; /i+用于延时 DS=1;i+;i+; dat=DS; i=8;while(i0)i-; return (dat); uchar tmpread(void) /读一字节数据 uchar i,j,dat; dat=0; fo

17、r(i=1;i=8;i+) j=tmpreadbit(); dat=(j1); /读出的数据最低位在最前面,这样刚好一个字节在DAT里 return(dat); void tmpwritebyte(uchar dat) /写一字节到DS18B20 uint i; uchar j; bit testb; for(j=1;j1; if(testb) /写1 DS=0; i+;i+; DS=1; i=8;while(i0)i-; else DS=0; /写0 i=8;while(i0)i-; DS=1; i+;i+; void tmpchange(void) /DS18B20 开始转换 dsrese

18、t(); delay(1); tmpwritebyte(0xcc); / 寻址总线上所有的驱动器 tmpwritebyte(0x44); / 开始单个温度转化 uint tmp() /获取温度子程序 float tt; uchar a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); a=tmpread(); b=tmpread(); temp=b; temp=8; /两字节组成一个整型变量 temp=temp|a; tt=temp*0.0625; temp=tt*10+0.5; return temp; void readrom() /读序列 uchar sn1,sn2; dsreset(); delay(1); tmpwritebyte(0x33); sn1=tmpread(); sn2=tmpread(); 五、结论: 数字温度计是一个用途非常广泛的电路,在很多地方都可以看到他们的身影,如:工农业生产、科研、生活中。本文采用AT89C51单片机做主控芯片,利用温度传感器DS18B20测量温度,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论