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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于单片机的数字温度计.docx

1、基于单片机的数字温度计智能仪器工程设计课程设计报告姓 名: 马 波 0902040146 曹 露 0902040142 王 洋 0902040141 学 院: 机电信息学院 系(专业): 测控技术与仪器 题 目: 智能温度测控仪 指导老师: 杨良煜 杨萍 基于单片机的数字温度计设计摘要:随着国民经济的发展,人们需要对各中加热炉、热处理炉、反应炉和锅炉中温度进行监测和控制。采用单片机来对他们控制不仅具有控制方便,简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且

2、重要的物理参数之一。在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。温度控制在生产过程中占有相当大的比例。温度测量是温度控制的基础,技术已经比较成熟。传统的测温元件有热电偶和二电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。我们用一种相对比较简单的方式来测量。本文介绍一种基于AT89C51单片机的一种温度测量及显示电路,该电路以电位器(0+5v)模拟为源温度,以ADC0804代替DS18B20作为温度监测元件,测量范围0-+100,使用LED模块显示。正文着重给出了软硬件系统的各部分电路,介

3、绍了ADC0804的原理,AT89C51单片机功能和应用。该电路设计新颖、功能强大、结构简单。关键词:温度测量;ADC0804;AT89C51;1方案选择该系统主要由温度测量和数据采集两部分电路组成,实现的方法有很多种,下面将列出两种在日常生活中和工农业生产中经常用到的实现方案。1.1方案一采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成,热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分则使用带有A/D 通道的单片机,在将随被测温度变化的电压或电流采集过

4、来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到A/D 转换电路,感温电路比较麻烦。系统主要包括对A/D0809 的数据采集,自动手动工作方式检测,温度的显示等,这几项功能的信号通过输入输出电路经单片机处理。此外还有复位电路,晶振电路,启动电路等。故现场输入硬件有手动复位键、A/D 转换芯片,处理芯片为51 芯片,执行机构有4 位数码管等。【1】系统框图如图 3-1所示。图 1-1 热电偶温差电路测温系统框图

5、1.2方案二采用电位器(代替数字温度芯片DS18B20 )测量温度,通过ADC0804转换输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。在0100 摄氏度时,最大线形偏差小于0.2 摄氏度。ADC0804 的最大特点之一采用了单总线的数据传输,由数字温度计ADC0804和微控制器AT89S51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多ADC0804控制工作,还可以与

6、PC 机通信上传数据,另外AT89S51 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。【1】从以上两种方案,容易看出方案一的测温装置可测温度范围宽、体积小,但是线性误差较大。方案二的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次设计采用了方案二。2.1系统设计原理利用电位器(代替温度传感器DS18B20)可以直接读取被测温度值,进行转换的特性,模拟温度值经过ADC0804处理后转换为数字值,然后送到单片机中进行数据处理,并与设置的温度报警限比较,超过限度后通过扬声器报警。同时处理后的数据送到LED中显示。2.2系统组成本课题以是80C51单片机为

7、核心设计的一种数字温度控制系统,系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成。系统框图主要由主控制器、单片机复位、时钟振荡、LED显示、电位器、ADC0804组成。系统框图如图3-2所示。图2-2 系统基本方框图3.1 单元电路设计3. 1 80C51单片机管脚图图3-1 80C51单片机管脚图3.12时钟电路引脚XTAL1 和XTAL2:XTAL2(18 脚):接外部晶体和微调电容的一端;在8051 片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。要检查8051/8031

8、的振荡电路是否正常工作,可用示波器查看XTAL2 端是否有脉冲信号输出。XTAL1(19 脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。图3-2 80C51单片机晶振电路控制信号引脚RST,ALE,PSEN 和EA:RST/VPD(9 脚):RST 是复位信号输入端,高电平有效。当此输入端保持备用电源的输入端。当主电源Vcc 发生故障,降低到低电平规定值时,将5V 电源自动两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。RST 引脚的第二功能是VPD,即接入RST 端,为RAM 提供备用电源,以保证存储在RAM 中

9、的信息不丢失,从而合复位后能继续正常运行。图3-380C51单片机复位电路3.1.3 89C51单片机的中断系统89C51系列单片机的中断系统有5个中断源,2个优先级,可以实现二级中断服务嵌套。由片内特殊功能寄存器中的中断允许寄存器IE控制CPU是否响应中断请求;由中断优先级寄存器IP安排各中断源的优先级;同一优先级内各中断同时提出中断请求时,由内部的查询逻辑确定其响应次序。3.1.4 80C51单片机的定时/计数器在单片机应用系统中,常常会有定时控制需求,如定时输出、定时检测、定时扫描等;也经常要对外部事件进行计数。80C51单片机内集成有两个可编程的定时/计数器:T0和T1,它们既可以工作

10、于定时模式,也可以工作于外部事件计数模式,此外,T1还可以作为串行口的波特率发生器。3.2 ADC0804介绍3.2.1 ADC0804芯片介绍图3-4ADC0804规格及引脚分配图/CS:芯片片选信号,低电平有效,即/CS=0,该芯片才能正常工作,在外接多个ADC0804芯片时,该信号可以作为选择地址使用,通过不同的地址信号使能不同的ADC0804芯片,从而可以实现多个ADC通道的分时复用。/WR:启动ADC0804进行ADC采样,该信号低电平有效,即/WR信号由高电平变成低电平时,触发一次ADC转换。/RD:低电平有效,即/RD=0时,可以通过数据端口DB0DB7读出本次的采样结果。UIN

11、(+)和UIN(-):模拟电压输入端,模拟电压输入接UIN(+)端,UIN(-)端接地。双边输入时UIN(+)、UIN(-)分别接模拟电压信号的正端和负端。当输入的模拟电压信号存在“零点漂移电压”时,可在UIN(-)接一等值的零点补偿电压,变换时将自动从UIN(+)中减去这一电压。VREF/2:参考电压接入引脚,该引脚可外接电压也可悬空,若外界电压,则ADC的参考电压为该外界电压的两倍,如不外接,则Vref与Vcc共用电源电压,此时ADC的参考电压即为电源电压Vcc的值。CLKR和CLKIN:外接RC电路产生模数转换器所需的时钟信号,时钟频率CLK = 1/1.1RC,一般要求频率范围100K

12、Hz1.28MHz。AGND和DGND:分别接模拟地和数字地。 /INT:中断请求信号输出引脚,该引脚低电平有效,当一次A/D转换完成后,将引起/INT=0,实际应用时,该引脚应与微处理器的外部中断输入引脚相连(如51单片机的INT0,INT1脚),当产生/INT信号有效时,还需等待/RD=0才能正确读出A/D转换结果,若ADC0804单独使用,则可以将/INT引脚悬空。 DB0DB7:输出A/D转换后的8位二进制结果。3.2.2 外围电路设计图3-5 ADC0804的外围电路图4为ADC0804外围电路原理图,其中,AVCC=5V,引脚VREF/2悬空,因此ADC转换的参考电压为AVCC的值

13、,即5V。VIN-接地,而VIN+连接滑动变阻器VR1的输出,因此VIN+的电压输入范围为0V5V,正好处于参考电压范围内。引脚CS_1, WR_1和RD_1分别连接单片机的P3_5,P3_6以及P3_7脚,而DB0DB7连接单片机的P2脚.、3.3LED四位数码显示管简介3.31四位数码显示管与89C51的接口图3-6四位七段数码管外围电路图4. 系统功能说明及其使用说明图4-1该图为数字温度计电路图图4-2电压为5V时显示温度图4-3 电压为3.75V时显示温度图4-4电压为2.5V时显示温度图4-5电压为1.25V时显示温度图4-6 电压为0V时显示温度参考资料1 阎石.数字电子技术基础

14、.高等教育出版社,20062 王卫东.模拟电子电路基础M.西安:西安电子科技大学出版社,20033 曹丙霞,赵艳华.PROTEL 99SE原理图与PCB设计.电子工业出版社,20074 李群芳,张士军,黄建.单片机微型计算机与接口技术.电子工业出版社,20085 赵世强.电子电路EDA技术M.西安:西安电子科技大学出版社,2000 6 郭天祥.新概念51单片机C语言教程.电子工业出版社,2009附录一图4-1该图为数字温度计电路图系统总体原理图附录二系统程序清单#include /* 声明驱动信号阵列 */char code TAB10= 0x3f, 0x06, 0x5b, 0x4f, 0x6

15、6, / 04 0x6d, 0x7d, 0x07, 0x7f, 0x6f ; / 59#define SCANP P1 / 定义扫瞄信号连接埠 #define SEG7P P2 / 定义七节显示器连接埠 sbit INTR=P32; / 定义IRQ接脚 unsigned char xdata adc; / 声明外部记忆体变量 unsigned char _adc; / 声明变量 unsigned char disp4=0, 0, 0, 0; / 声明显示区阵列 unsigned char _adc; / 声明变量 void dataproc(unsigned char);/ 声明资料处理函数

16、void display(void); / 声明显示函数 void delay1ms(char); / 声明延迟函数 main() / 主程序 while(1) / while开始 display(); / 显示 _adc=adc; /*读取外部记忆体,目的是让ADC0804之RD=0、INTR=1*/ adc=0x00; while(INTR=1); / 等待中断 _adc=adc; / 读取外部记忆体 dataproc(_adc); / 资料处理 / while结束 / 主程序结束 /=资料处理函数=void dataproc(unsigned char data_in) int resu

17、lts; / 声明变量 results= data_in; results=results*3.922; / 读取ADC0804转换结果 disp3=results/1000; / 取得千位数 disp2=(results/100)%10; / 取得百位数 disp1=(results/10)%10; / 取得十位数 disp0=results%10; / 取得个位数 / 资料处理函数结束 /=显示函数=void display(void) char i, scan; / 声明变量 char times=20; / 扫瞄20次 while (-times=0) / while循环开始 scan

18、=1; / 初始扫瞄信号 for(i=0;i4;i+) / for叙述开始 SEG7P=0x00; / 关闭7节显示器 SCANP=scan; / 输出扫瞄信号 SEG7P=TABdispi; / 转换成驱动信号,并输出到P0 if(i=1) P2=TABdisp1+0x80; delay1ms(4); / 延迟4ms scan=1; / 下一个扫瞄信号 / 结束for叙述 / 结束while叙述 / display函数结束 /=延迟函数=void delay1ms(char x) int i,j; / 声明变量 for(i=0;ix;i+) / 外循环 for(j=0;j120;j+); /

19、 内循环 / 延迟函数结束 附录三 误差分析 从0V5V,每隔0.05V采集一个数据,共采集了101个数据(如图5-1中的测得温度一列)。根据公式计算的每点应该输出温度(如图5-1中的计算温度一列),测得温度-计算温度的则就是产生的误差。误差=(测得温度-计算温度)/量程*100%=0.2%即我们所设计的数字温度计精度为2.0级,误差小于0.2%。数字温度计数据采集及误差分析电压测得温度计算温度测得温度-计算温度电压测得温度计算温度测得温度-计算温度0.0 0.0 0.0 0.0 2.6 50.9 51.0 -0.1 0.1 1.1 1.0 0.1 2.6 52.1 52.0 0.1 0.1

20、1.9 2.0 -0.1 2.7 52.9 53.0 -0.1 0.2 3.1 3.0 0.1 2.7 54.1 54.0 0.1 0.2 3.9 4.0 -0.1 2.8 54.9 55.0 -0.1 0.3 5.0 5.0 0.0 2.8 56.0 56.0 0.0 0.3 5.8 6.0 -0.2 2.9 56.8 57.0 -0.2 0.4 7.0 7.0 0.0 2.9 58.0 58.0 0.0 0.4 7.8 8.0 -0.2 3.0 58.8 59.0 -0.2 0.5 9.0 9.0 0.0 3.0 60.0 60.0 0.0 0.5 9.8 10.0 -0.2 3.1 61

21、.1 61.0 0.1 0.6 10.9 11.0 -0.1 3.1 61.9 62.0 -0.1 0.6 12.1 12.0 0.1 3.2 63.1 63.0 0.1 0.7 12.9 13.0 -0.1 3.2 63.9 64.0 -0.1 0.7 14.1 14.0 0.1 3.3 65.1 65.0 0.1 0.8 14.9 15.0 -0.1 3.3 65.8 66.0 -0.2 0.8 16.0 16.0 0.0 3.4 67.0 67.0 0.0 0.9 16.8 17.0 -0.2 3.4 67.8 68.0 -0.2 0.9 18.0 18.0 0.0 3.5 69.0 6

22、9.0 0.0 1.0 18.8 19.0 -0.2 3.5 69.8 70.0 -0.2 1.0 20.0 20.0 0.0 3.6 70.9 71.0 -0.1 1.1 21.1 21.0 0.1 3.6 72.1 72.0 0.1 1.1 21.9 22.0 -0.1 3.7 72.9 73.0 -0.1 1.2 23.1 23.0 0.1 3.7 74.1 74.0 0.1 1.2 23.9 24.0 -0.1 3.8 74.9 75.0 -0.1 1.3 25.1 25.0 0.1 3.8 76.0 76.0 0.0 1.3 25.8 26.0 -0.2 3.9 76.8 77.0

23、-0.2 1.4 27.0 27.0 0.0 3.9 78.0 78.0 0.0 1.4 27.8 28.0 -0.2 4.0 78.8 79.0 -0.2 1.5 29.0 29.0 0.0 4.0 80.0 80.0 0.0 1.5 29.8 30.0 -0.2 4.1 81.1 81.0 0.1 1.6 30.9 31.0 -0.1 4.1 81.9 82.0 -0.1 1.6 32.1 32.0 0.1 4.2 83.1 83.0 0.1 1.7 32.9 33.0 -0.1 4.2 83.9 84.0 -0.1 1.7 34.1 34.0 0.1 4.3 85.1 85.0 0.1

24、1.8 34.9 35.0 -0.1 4.3 85.8 86.0 -0.2 1.8 36.0 36.0 0.0 4.4 87.0 87.0 0.0 1.9 36.8 37.0 -0.2 4.4 87.8 88.0 -0.2 1.9 38.0 38.0 0.0 4.5 89.0 89.0 0.0 2.0 38.8 39.0 -0.2 4.5 89.8 90.0 -0.2 2.0 40.0 40.0 0.0 4.6 90.9 91.0 -0.1 2.1 41.1 41.0 0.1 4.6 92.1 92.0 0.1 2.1 41.9 42.0 -0.1 4.7 92.9 93.0 -0.1 2.2

25、 43.1 43.0 0.1 4.7 94.1 94.0 0.1 2.2 43.9 44.0 -0.1 4.8 94.9 95.0 -0.1 2.3 45.1 45.0 0.1 4.8 96.0 96.0 0.0 2.3 45.8 46.0 -0.2 4.9 96.8 97.0 -0.2 2.4 47.0 47.0 0.0 4.9 98.0 98.0 0.0 2.4 47.8 48.0 -0.2 5.0 98.8 99.0 -0.2 2.5 49.0 49.0 0.0 5.0 100.0 100.0 0.0 2.5 49.8 50.0 -0.2 图5-1图5-2 计算温度与测得温度分析对比图附

26、录四基于单片机的数字温度计电路元件清单元件名称规格个数电源5V1电位器1K1STC89C511ADC08041四位数码显示管1复位开关1晶振1电容22pf210uf1150pf1电阻1k110k4电线若干数字温度计设计的心得体会本次课程设计即将进入尾声,回想这两周来的数字温度计制作经历,我感触甚是深刻。通过本次课程设计,使我对电子设计及制作产生了较为浓厚的兴趣,这不仅加强了自己对理论知识的理解和巩固,还能提高自己的动手能力,可以说受益匪浅。当然更重要的是,激起了我学好单片机的斗志。本次课程设计主要分为四部分:设计、仿真、调试。这三个步骤在整个课程设计过程中起着重要的作用。本次课程设计的任务是:

27、根据老师给出的设计题目的要求选择合适的电路,确定元件参数,对原理图进行电路仿真。在整个设计制作过程中用到了两个软件,protues和KEIL软件。可以说,在此之前自己未曾使用过protues软件。而且KEIL用起来也是相当的陌生,毕竟已隔将近半年多没用此软件做板了。本次课设让我学到了如何去运用protues软件对电路进行仿真。而在使用protues软件设计时,我也有了不少的学习应用心得。最能体现一个人的耐心程度,也最能学到东西的阶段还是在调试过程。在整个过程中既要求熟练掌握设计的原理,懂得运用所学电学的基本理论,还要求善于查错,改错。如果在调试过程中无法达到预期结果,就要从整个设计制作过程中认真分析,细心查找错误,一步一步仔细排查。本次课程设计的大概题目是老师给出,当然我们也可以自由选择。我在学校图书馆以及网上查阅了相关资料之后,确定了一个与目前我所学的知识比较接近且相对而言比较熟悉的题目。可以说从确定题目,寻找原理图,到焊接调试,每一个步骤都付出了努力,倾注了我两周的心血,也从中积累了宝贵的经验,最后终于大抵上完成了设计任务。从总体上看,这次数码温度计制作还是比较成功的,程序设计与电路图制作比较理想。看着自己调试出的数码温度计,心里总有些许的“

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

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