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

下载本文档

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

文档简介

1、wuhan institute of technology课程设计说明书课程设计名称:单片机课程设计课程设计题目:数字式温度计的设计学院名称:电气信息学院专业班级:15电力(3)班学生学号:学生姓名:学生成绩:指导教师: 课程设计时间:2017.10.30至2017.11.5课程设计任务书一、课程设计的任务和基本要求(一)设计任务(从“单片机课程设计题目”汇总文档中任选1题,根 据所选课题的具体设计要求来填写此栏)1. 用ds18b20设计一款能够显示当前温度值的温度计;2. 通过切换按钮可以切换华氏度和摄氏度显示;3. 测量精度误差在正负0.5摄氏度以内。(二)基本要求1. 有硬件结构图、电

2、路图及文字说明;2. 有程序设计的分析、思路说明;3. 有程序流程框图、程序代码及注释说明;4. 完成系统调试(硬件系统可以借助实验装置实现,也可在proteus 软件中仿真模拟);5. 有程序运行结果的截屏图片。二、进度安排第 9 周,10. 3011. 51) 10.30题目分析,文献查阅2) 10.31方案比较,确定设计方案3) 10.3ril.l硬件电路设计4) 11.211.4程序设计,程序调试,系统联调,系统改进5) 11.5课程设计说明书撰写三、参考资料或参考文献1. 林立,张俊亮.单片机原理及应用基于proteus和keil c m.北 京:电子工业出版社,20132. 张毅刚

3、,彭喜元.单片机原理与应用设计m.北京:电子工业出版 社,20083. 马忠梅.单片机的c语言应用程序设计(第5版)m.北京:北京航空 航天大学出版社,20134. 孙育才主编,mcs-51系列单片微型计算机及其应用.东南大学出版社5. 楼然苗.单片机课程设计指导.北京:北京航空航天大学出版社.2002.本科生课程设计成绩评定表姓名ii专业班级i学号课程设计题目:课程设计答辩记录:(手写)成绩评定依据:项目得分比例考勤记录设计结果报告撰写答辩成绩备注:成绩评定依据的项目内容和项目分值比例可以由老师按指导的专业进行调整,但成绩评定依据的项 目数不得少于3项。最终评定成绩:指导教师签名:年 月 日

4、胃弓ib1第二章设计任务与要求2第三章设计方案2表3.1设计方案21. 采集与放大22. 賴觀33. 3第四章设计电路与原理41. 温度传感器原理4图4.1 ds18b20内部结构4图4. 2 64位rom的结构52. at89c52 的介绍6图4.3 at89c52引脚图73. 緬t84. 结构原理图95. 骄10第五章电路的组装与调试15第六章设计心得16第一章引言随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域, 已经成为一种比较成熟的技术,单片机具有体积小、功耗低、控制功能强、扩展灵活、 微型化和使用方便等优点,广泛放用于仪器仪表中,结合不同种类的传感器,可实现

5、诸 如电压、湿度、温度、速度、硬度、压力等的物理量的测量。木文主要介绍了一个基 于at89c52单片机的测温系统,详细描述了利用数字温度传感器ds18b20开发测温系统 的过程。当今信息化时代展过程屮,各种信息的感知、采集、转换、传输和处理的功能器件 己经成为各个应用领域中不可缺少的重要技术工具。传感器是信息采集系统的首要部 件,是实现现代化测量和自动控制的主要环节,是现代信息产业的源头,乂是信息社会 赖以存在和发展的物质与技术基础。可见理解和撑握传感器的知识与技术有着其极重耍 的意义。测量温度的关键是温度传感器,温度传感器随着温度而引起的物理参数变化有:膨 胀,电阻,电容,电动势,磁性能,频

6、率,光学特性及热噪声等等。温度传感器的发展 经历了三个发展阶段:传统的分立式温度传感器、模拟集成温度传感器、智能集成 温度传感器。对采集的信息都希望用最直接的方式显示出来,但是传感器所采集的信息是模拟的 信号,并且信号是非常微小的,需要用放人器进行放人。模拟信号不能直接用数字仪器 直接显示,通过模数转换之后就可以将模拟量转变成数字量,在通过数码管进行显示。 有些可以直接与单片机链接。数码管有共阳极与共阴极两类,木次设计采用的是共阴极 的七段数码管。第二章设计任务与要求1. 设计任务:设计一数字温度计,将测量的温度值转换为数字量并显示出来,即将收集 的模拟的信号转换成数字信号。2. 设计要求:必

7、须选择一个温度传感器,并ii所设计的数字温度计测量的范围为o-ioooc, 采用数模转换(单片机除外),led数码管进行数字显示。第三章设计方案设计方案主要包括温度的采集与信号的放大,数模转换,数码显示三部分。表3.1设计方案温度的采 数模转换 k 数码显示集与放大 1. 采集与放大温度的改变会影响一些电阻的阻值,温度传感器是通过物体随温度变化而变化的特 性来测量的。一般采用阻值的变化与温度的变化有线性关系的电阻来采集温度,最后通 过阻值的变化来反映出温度。puoo铂热电阻与温度之间存在着线性的关系,通过阻值 的变化可以得到对应的温度。冇些是采用热电偶的方式,温度检测部分可以使用低温热 偶,热

8、电偶由两个焊接在一起的异金属导线所组成。热电偶产生的热电势由两种金属的 接触电势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压, 便可推断出检测结点的温度。2. 数模转换温度的改变会影响一些电阻的阻值,温度传感器是通过物体随温度变化而变化的特 性来测量的。一般采用阻值的变化与温度的变化有线性关系的电阻来采集温度,最后通 过阻值的变化来反映出温度。ptloo铂热电阻与温度之间存在着线性的关系,通过阻值 的变化可以得到对应的温度。有些是采用热电偶的方式,温度检测部分可以使用低温热 偶,热电偶由两个焊接在一起的异金属导线所组成。热电偶产生的热电势由两种金属的 接触电势和单一导体的

9、温差电势组成。通过将参考结点保持在己知温度并测量该电压, 便可推断出检测结点的温度。木次课程设计主要用lm35,温度传感器,它能集温度的采 集与放大于一身的传感器,而且采用lm35的电路比较简单,于其内部己将采集的信号 进行放大。3. 数码显示数码显示就是将tc7107转换成的数字信号进行显示。一般数码管冇共阳极与共阴 极两类,共阳与共阴的只要区别就是其公共端是接阳极还是接阴极,如果接阴极就为共 阴极,反之为共阳极。数码管根据不同的信号显示不同的值,但是一个数码管只能显示 0-9还有负号与小数点。09的显示主要是其a-g管脚的组合显示。第四章设计电路与原理1.温度传感器原理ds18b20数字温

10、度计是dallas公司生产的1-wirc,即单总线器件,具有线路简单、 体积小的特点。因此用它来组成一个测温系统,线路简单,在一根通信线上,可以挂很 多这样的数字温度计,十分方便。ds18b20是美国dallas公司新推出的一种可组网数字 式温度传感器,与ds1820相似,ds18b20也能够直接读取被测物体的温度值。但是与 ds1820相比,ds18b20的功能更强大些。它体积小,电压适用范围宽(35v),用户还 可以通过编程实现912位的温度读数,即具有可调的温度分辨率,因此它的实用性和 可靠性比同类产品更高。ds18b20内部结构如图4. 1所示,主要由4部分组成:温度传感器、64位ro

11、m、非 挥发的温度报警触发器th和ti、配置寄存器。由图4.1可见,ds18b20只有一个数据 输入输出口,属于单总线专用芯片之一。ds18b20工作时被测温度值直接以“单总线” 的数字方式传输,大大提高y系统的抗干扰能力。其内部采用在线温度测量技术,测量 范围为55125° c,在-1085'c时,精度为±0.5° c。每个ds18b20在出厂吋都已具有 唯一的64位序列号,因此一条总线上可以同时挂接多个ds18b20,而不会出现混乱现象。 另外用户还可自设定非易失性温度报警上下限值th和tl (掉电后依然保存)。ds18b20 在完成温度变换后,所测温

12、度值将自动与存储在th和tl内的触发值相比较,如果测温 结果高于th或低于tl,ds18b20内部的告警标志就会被置位,表示温值超出了测量范 围,同吋还冇报警搜索命令识别出温度超限的ds18b20。64位闪存rom的结构如图4. 2所示8b检验clc48b序列号8b工厂代码(10h)msblsb msblsb msblsb图4. 2 64位rom的结构首先是8位的产品单线系列编码,接着是每个器件的唯一的序号,共有48位,最 重要的8位是前面56位的crc校验码(循环冗余校验码),这也是多个ds18b20可以 釆用一线进行通信的原因。非易失性温度报警触发器th和tl,可通过软件写人用户报警上下限

13、。ds18b20的内部测温电路框阁如阁4. 2所示,阁中低温度系数振荡器的振荡频率受 温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数振荡器 随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。图中还 隐含着计数门,当计数门打开时,ds18b20就对低温度系数振荡器产生的时钟脉冲进行 计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前, 首先将-55"c所对应的基数分别置人减法计数器1和温度寄存器中,减法计数器1和温 度寄存器被预置在_55°c所对应的一个基数值。减法计数器1对低温度系数振荡器产生 的脉冲信号

14、进行减法计数,当减法计数器1的预置值减到。吋温度寄存器的值将加1, 减法计数器1的预置将重新被装人,减法计数器1重新开始对低温度系数振荡器产生的 脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加, 此时温度寄存器中的数值即为所测温度。阁4. 2中的斜率累加器用于补偿和修正测温过 程屮的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述 过程,直至温度寄存器值达到被测温度值,这就是ds18b20的测温原理。阁4.2 ds18b20的内部测温屯路框阁由于ds18b20是在一根i/o线上读写数据,因此,对读写的数据位有着严格的时序 要求。ds18b20

15、有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义 了儿种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备, 单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始, 如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。2. at89c52的介绍at89c52是美国atmel公司生产的低电压、高性能cmos 8位单片机,片内含8kb 的可反复擦写的程序存储器和12b的随机存取数据存储器(ram),器件釆用atmel 公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内配罝通

16、用8 位中央处理器(cpu)和flash存储单元,功能强大的at89c52单片机可灵活应用于各 种控制领域。at89c52单片机属于at89c51单片机的增强型,与intel公司的80c52在 引脚排列、硬件组成、工作特点和指令系统等方面兼容。其主要工作特性是:片内 程序存储器内含8kb的flash程序存储器,可檫写寿命为1000次;片内数据存储 器内含256字节的ram;具有32根可编程i/o 口线;具有3个可编程定时器; 中断系统是具有8个中断源、6个中断矢量、2个级优先权的中断结构;串行口 是具有一个全双工的可编程串行通信门;具有一个数据指针dptr;低功耗工 作模式有空闲模式和掉电模式

17、;具冇可编程的3级程序锁定位;工作电源电压 为5v,最高工作频率为24mhz。软件部分具体分为音乐程序和流水灯程序,利用c语言进行编写。有发声模块、 数码管显示模块、电阻模块。研究方法:单片机音乐流水灯系统总体功能的实现与各 个模块的基本功能密不可分,因此必须要从各个模块的单独设计入手。(1)晶振电 路模块晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再 串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低 的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的特性致使这两个频率的距 离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要

18、晶振的两端 并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路屮 就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其他元件 的参数变化很大,这个振荡器的频率也不会有很大的变化。晶振有一个重要的参数,那 就是负载电容值,选择与负载电容值和等的并联电容,就可以得到晶振标称的谐振频率。 一般的晶振的负载电容为15p或12.5p ,如果再考虑元件引脚的等效输入电容,则两个 22p的电容构成晶振的振荡电路就是比较好的选择。(2)复位电路模块这个模块主要进 行复位操作。(3)流水灯模块要实现流水灯功能,只要将几个发光二极管依次点亮、 熄灭,发光二极管便会一亮一灭

19、地成为流水灯了。在此还应注意一点,由于人眼的视觉 暂留效应以及单片机执行每条指令的时间很短,在控制发光二极管亮灭的时候应该延时 一段时间,否则就看不到“流水”效果了。(4)电阻模块这里将増加一个27kq的rp1 接在at89c52单片机的p0.0-p0.7引脚上。(5)按键模块按键模块将增加一个模式键、 一个加速键、一个减速键进行相应的按键操作。(6)发声模块发声模块的主要部件是 蜂鸣器lsi,蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜 发声的。(7)数码管显示此模块主要是用来显示按键模块对音乐控制的显示。最后单 片机音乐流水灯系统的设计和研究必须要实现音乐与流水灯的完美

20、结合,在研宄的过程 中要切实解决面临的各种问题,认真査找相关文献资料,加强沟通,遇到问题要独立思 考。设计过程中要按照步骤来,一步一个脚印,首先做好整体布局,从理论设计出发, 罗列出所需硬件清单,然后购买和应的硬件设施,在经过大量的仿真实验无误后,再动 手进行相应的硬件设置at89c52并非所有的地址都被定义,从80hffh共128个字节只有一部分被定 义,还有相当一部分没有定义。对没冇定义的单元读写将是无效的,读出的数值将不确 定,而写入的数据也将丢失。不应将数据写入未定义的单元,由于这些单元在将来的产 品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。t2/p1.0匚1u4

21、0vcct2ex/p1.1匚239p0. 0 /adop1. 2匚338p0. 1/ad1p1. 3e43tp0. 2/ad2p1.4匚536p0. 3/ad3p1. 5匚635p0.4/ad4p1.6匚734p0. 5/ad5pl. t匚833p0. 6/ad6rst匚932p0. 7/adtrxd/p3. 01031ea/vpptkd/p3. 11130ale/ftoiht0/p3. 2匚1229peshihtt/p3. 3匚1323p2. 7/a15t0/p3.4e1421p2.6/a14t1/p3. 5e1526p2. 5/a13to/p3. 6匚1625p2. 4/a12rd/p3.

22、 7匚1724p2. 3/a11xtal2e1823p2. 2/a10xtal1匚1922p2. 1/a9pdipl2021p2. 0/a83. 7段数码管数码管的一种是半导体发光器件,数码管可分为七段数码管和八段数码管,区别在 于八段数码管比七段数码管多一个用于显示小数点的发光二极管单元dp (decimal point),其基本单元是发光二极管。数码管是一类价格便宜使用简单,通过对其不同 的管脚输入相对的电流,使其发亮,从而显示出数字能够显示时间、口期、温度等所 冇可用数字表示的参数的器件。驱动方式有直流驱动和动态显示驱动。直流驱动是指每个数码管的每一个段码都由 一个单片机的i/o端口进行

23、驱动,或者使用如bcd码二-十进制译码器译码进行驱动。 优点是编程简单,显示亮度高,缺点是占用i/o端口多。动态显示驱动是将所有数码管 通过分时轮流控制各个数码管的的com端,就使各个数码管轮流受控显示。将所有数 码管的8个显示笔划、,(上以的同名端连在一起,另外为每个数码管的公共极 com增加位选通控制电路,位选通由各自独立的i/o线控制,当单片机输出字形码时, 所有数码管都接收到相同的字形码,但究竞是那个数码管会显示出字形,取决于单片机 对位选通com端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该 位就显示出字形,没有选通的数码管就不会亮。图4.4 7段数码管引脚图4.结构

24、原理tcxtal1asxtal2xjstpsenasp1.0/t2 p1.1/t2ex pi .2 pi .3 pi .4 pi .5pi .6pi .7po.o/ado po.1/ad1 o0 2/ad2 p0.3/ad3 pcu/acm o0.5/ad5 p0.6/ad6 p0.7/ad7s.0/a8 p2.1/a9 tj2.2/a10 pz3/a11 p2.4、a12 p2.5/a13 刀 2.6/a14 p27za15刀 30/rxd p3.1/txd p3 2/int0 p3w/int1 34/top3.5/t1p3.6/wp3.7/51ocogoa一rnx§ho二 

25、67;-7一r图4.5接线图5.程序#include<reg51. h>include <intrins. h>/fe含 nop 函数#define uchar unsigned char #dcfinc uint unsigned int #define alarmtemper 60 /温度报警限设置sbit dq=pro;sbit led=pr6;uchar code table = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f; uchar temperature, ten, bits; /全

26、局变量/延时50us函数void dclay_50us (uint t)/每次 50tis 延时,最大误差 13usuchar j; for (;t>0;t)for(j=19; j>0; j);/延时2us函数void delay_2us (unsigned char i) /每次 2us 精确延时,最大误差 6us while(i);/蜂鸣器报警函数void alarm()if (temperature >= alarmtemper) led=1;elseled=o;/数码管显示函数void leddisplay()p2=tablcetcn;p3=0xfb;delay_50

27、us (20) ;/十位延时 1msp3 = oxff;p2=tablcbits;p3=0xf7;delay_50us (20) ;/个位延时 1msp3 = oxff;/ ds18b20初始化函数 void ds18b20reset()dq:o;dclay_50us (10) ; /延时 513us dq二 1;delay_50us(1) ;/延时 50us while (!dq);_nop_();li/读ds18b20函数uchar ds18b20readbyte()uint i; uchar dat=o; for (i=0;i<8;i+)dq=0;_nop_ () ;/延时 lus

28、dat>>=l;dq=1;/释放delay_2us ; if)dat |= 0x80;delay_2us (20); / 延吋 40 到 45us dq=1;/释放总线return(dat);/写ds18b20函数void ds18b20writebyte(uchar dat)uchar j;for(j=0;j<8;j+)dq=0;delay_2us(5) ;/拉低电平 10 到 15usif (dat & 0x01)dq=1;delay_2us (15); /延时 20 到 45us dat>>=l;dq=1;/释放总线_nop_ ();/温度转换函数v

29、oid tcmpcrconvcrt()ds18b20reset();ds18b20writebyte(0xcc);/跳过读序号列号的操作 ds18b20writebyte(0x44);/ 启动温度转换/读出温度函数void temperreadouchar tcmph, tempi;ds18b20reset();ds18b20writebyte(0xcc) ;/跳过读序号列号的操作ds18b20vritebyte(0xbe) ;/ 读 ram 数据tempi = ds18b20readbyte();/温度的低八位temph = ds18b20rcadbytc() ;/温度的高八位temperature = (temph<<4)|(tempi>>4);ten = temperature% 100/10; /十位bits = temperature%10; /个位/主函数void main ()uchar j; while (1)temperconvert(); for (j=0;j<250;j+)leddisplay ();tcmpcrrcado ;/将读ram的函数放到这儿是因为温度的转换要用750ms时间,这里用display ()函数来达到延吋效果alar

温馨提示

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

评论

0/150

提交评论