收藏 分销(赏)

数字温度计专业课程设计方案报告.doc

上传人:快乐****生活 文档编号:2658041 上传时间:2024-06-03 格式:DOC 页数:24 大小:3.36MB
下载 相关 举报
数字温度计专业课程设计方案报告.doc_第1页
第1页 / 共24页
数字温度计专业课程设计方案报告.doc_第2页
第2页 / 共24页
数字温度计专业课程设计方案报告.doc_第3页
第3页 / 共24页
数字温度计专业课程设计方案报告.doc_第4页
第4页 / 共24页
数字温度计专业课程设计方案报告.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、 课程设计汇报书课程名称: 电工电子课程设计 题 目:数字温度计学 院: 信息工程学院 系: 电气工程及其自动化 专业班级:电力系统及其自动化113学 号: 学生姓名: 李超红 起讫日期: 6月19日7月2日 指导老师: 郑朝丹 职称: 讲师 学院审核(署名): 审核日期: 内容摘要:现在,单片机已经在测控领域中取得了广泛应用,它除了能够测量电信以外,还能够用于温度、湿度等非电信号测量,能独立工作单片机温度检测、温度控制系统已经广泛应用很多领域。单片机是一个特殊计算机,它是在一块半导体芯片上集成了CPU,存放器,RAM,ROM,及输入和输出接口电路,这种芯片称为:单片机。因为单片机集成度高,功

2、效强,通用性好,尤其是它含有体积小,重量轻,能耗低,价格廉价,可靠性高,抗干扰能力强和使用方便优点,使它快速得到了推广应用,现在已成为测量控制系统中优选机种和新电子产品中关键部件。单片机已不仅仅局限于小系统概念,现已广泛应用于家用电器,机电产品,办公自动化用具,机器人,儿童玩具,航天器等领域。此次课程设计,就是用单片机实现温度控制,传统温度检测大多以热敏电阻为温度传感器,但热敏电阻可靠性差,测量温度正确率低,而且必需经过专门接口电路转换成数字信号才能由单片机进行处理。此次采取DS18B20数字温度传感器来实现基于51单片机数字温度计设计。本文介绍了一个基于STC89C52单片机和数字温度传感器

3、DS18B20测温系统,并用LED数码管显示温度值,易于读数。系统电路简单、操作简便,能任意设定报警温度并可查询最近10个温度值,系统含有可靠性高、成本低、功耗小等优点。关键词:单片机 数字温度传感器 数字温度计 设计任务和要求此次课程设计,就是用单片实现温度控制,传统温度检测大多以热敏电阻为温度传感器,但热敏电阻可靠性差,测量温度正确率低,而且必需经过专门接口电路转换成数字信号才能由单片机进行处理。此次采取DS18B20数字温度传感器来实现基于51单片机数字温度计设计。 9V供电; 温度采集采取DS18B20; 4位LED显示; 设计温度控制器原理图,并用proteus进行仿真; 用alti

4、um designer 画出PCB 并制好印刷电路板; 设计和绘制软件步骤图,用C语言进行程序编写;焊接硬件电路,进行调试。设计方案和选材提及到温度检测,我们首先会考虑传统测温元件有热电偶和热电阻,而热电偶和热电阻测出通常全部是电压,再转换成对应温度,需要比较多外部硬件支持,硬件电路复杂,软件调试也复杂,制作成本高。所以,本数字温度计设计采取智能温度传感器DS18B20作为检测元件,测温范围为-55C至+125C,最大分辨率可达0.0625C。DS18B20能够直接读出被测量温度值,而采取三线制和单片机相连,降低了外部硬件电路,含有低成本和易使用特点。根据系统设计功效要求,确定系统由三个模块组

5、成:主控制器STC89C51,温度传感器DS18B20,驱动显示电路。总体电路框图以下:DS18B20温度传感器本设计测温系统采取芯片DS18B20,DS18B20是DALLAS企业最新单线数字温度传感器,它体积更小,适用电压更宽,更经济。实现方法介绍DS18B20采取外接电源方法工作,一线测温一线和STC89C51连接,测出数据放在寄存器中,将数据经过BCD码转换后送到LED显示。DS18B20温度传感器是美国DALLAS半导体企业最新推出一个改善型智能温度传感器,和传统热敏电阻等测温元件相比,它能直接读出被测温度,而且可依据实际要求经过简单编程实现位数字值读数方法。DS18B20性能特点以

6、下:独特单线接口仅需要一个端口引脚进行通信;多个DS18B20能够并联在惟一三线上,实现多点组网功效;无须外部器件;可经过数据线供电,电压范围为3.05.5;零待机功耗;温度以或位数字;用户可定义报警设置;报警搜索命令识别并标志超出程序限定温度(温度报警条件)器件;负电压特征,电源极性接反时,温度计不会因发烧而烧毁,但不能正常工作; DS18B20内部结构关键由四部分组成:64位光刻ROM,温度传感器,非挥发温度报警触发器TH和TL,高速暂存器。DS18B20管脚排列图2-3-1所表示。64位光刻ROM是出厂前被光刻好,它能够看作是该DS18B20地址序列号。不一样器件地址序列号不一样。 C6

7、4 位ROM和单线接口高速缓存存放器和控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器Vdd 图3.3 DS18B20内部结构图3.4 DS18B20引脚分布图64位ROM结构开始8位是产品类型编号,接着是每个器件惟一序号,共有48位,最终8位是前面56位CRC检验码,这也是多个DS18B20能够采取一线进行通信原因。温度报警触发器和,可经过软件写入户报警上下限。DS18B20温度传感器内部存放器还包含一个高速暂存RAM和一个非易失性可电擦除EERAM。高速暂存RAM结构为字节存放器,结构图2-3-2所表示。头2个字节包含测得温度信息,第3和第4字节TH和TL拷贝,是易

8、失,每次上电复位时被刷新。第5个字节,为配置寄存器,它内容用于确定温度值数字转换分辨率。DS18B20工作时寄存器中分辨率转换为对应精度温度数值。该字节各位定义以下图所表示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和0决定温度转换精度位数,来设置分辨率。图3.5 DS18B20字节定义DS18B20高速暂存器共9个存存单元,如表所表示:表3-1 DS18B20引脚分布图序号 寄存器名称 作 用 序号 寄存器名称 0 温度低字节 以16位补码形式存放 4、5 保留字节1、2 1 温度高字节 6 计数器

9、余值 2 TH/用户字节1 存放温度上限 7 计数器/ 3 HL/用户字节2 存放温度下限 8 CRC 以12位转化为例说明温度高低字节存放形式及计算:12位转化后得到12位数据,存放在18B20两个高低两个8位RAM中,二进制中前面5位是符号位。假如测得温度大于0,这5位为0,只要将测到数值乘于0.0625即可得到实际温度;假如温度小于0,这5位为1,测到数值需要取反加1再乘于0.0625才能得到实际温度。 高8位 S S S S S 26 25 24 低8位 23 22 21 20 2-1 2-2 2-3 2-4 表3-2 DS18B20字节存放表由下图能够看到,Dsl8820内部存放器是

10、由8个单元组成,其中第0、1个存放测量温度值,第2、3分别存放报警温度上下限值,第4单元为配置单元,5、6、7单元在DSl8820这里没有被用到。对于第4个寄存器,用户能够设置温度转换精度,系统默认12bit转换精度,相当于十进制00625,其转换时间大约为750磷。具体见表2-4-1。图3.6 内部存放器结构图表3-3 温度精度配置R1R0转换精度(16进制)转换精度(十进制)转换时间009bit0.593.75ms0110bit0.25187.5ms1011bit0.125375ms1112bit0.0625750ms 由表3-3可见,DS18B20温度转换时间比较长,而且分辨率越高,所需

11、要温度数据转换时间越长。所以,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面全部8字节CRC码,可用来检验数据,从而确保通信数据正确性。当DS18B20接收到温度转换命令后,开始开启转换。转换完成后温度值就以16位带符号扩展二进制补码形式存放在高速暂存存放器第1、2字节。单片机能够经过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。当符号位S0时,表示测得温度值为正值,能够直接将二进制位转换为十进制;当符号位S1时,表示测得温度值为负值,要先将补码变成原码,再计算十进制数值。表2-4-2是

12、一部分温度值对应二进制温度数据。表3-4 温度精度配置温度/二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE

13、6FH-551111 1100 1001 0000FC90HDS18B20完成温度转换后,就把测得温度值和RAM中TH、TL字节内容作比较。若TTH或TTL,则将该器件内报警标志位置位,并对主机发出报警搜索命令作出响应。所以,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM最高有效字节中存放有循环冗余检验码(CRC)。主机ROM前56位来计算CRC值,并和存入DS18B20CRC值作比较,以判定主机收到ROM数据是否正确。DS18B20测温原理是这这么,器件中低温度系数晶振振荡频率受温度影响很小,用于产生固定频率脉冲信号送给减法计数器1;高温度系数晶振随温度改变其振荡频率显著改

14、变,所产生信号作为减法计数器2脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生时钟脉冲进行计数进而完成温度测量。计数门开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在55所对应一个基数值。减法计数器1对低温度系数晶振产生脉冲信号进行减法计数,当减法计数器1预置值减到0时,温度寄存器值将加1,减法计数器1预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器累加,此时温度寄存器中数值就是所测温度值。其输出

15、用于修正减法计数器预置值,只要计数器门仍未关闭就反复上述过程,直到温度寄存器值大致被测温度值。 另外,因为DS18B20单线通信功效是分时完成,它有严格时隙概念,所以读写时序很关键。系统对DS18B20多种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发ROM功效命令发存放器操作命令处理数据。 因为DS18B20采取“一线总线”结构,所以数据传输和命令通讯只要经过微处理器一根双向Io口就能够实现。DSl8B20约定在每次通信前必需对其复位,具体复位时序图2-4-2所表示。 图3.7 复位时序图 图2-4-3中所表示,tRSTL为主机发出低电平信号,本文中有AT89S52提供,t

16、RSTL最小时延为,然后释放总线,检验DSl8B20返回信号,看其是否已准备接收其它操作,其中tPDHIGH时间最小为,最长不能超出,不然认为DS18B20没有准备好,主机应继续复位,直到检测到返回信号变为低电平为止。表3-5 DS18B20ROM操作指令操作指令33H55HCCHF0HECH含义读ROM匹配ROM跳过ROM搜索ROM报警搜索ROM表3-6 DS18B20存放器操作指令操作指令4EHBEH48H44HD8HB4H含义写读内部复制温度转换重新调出读电源主机一旦检测到DS18B20存在,依据DS18B2工作协议,就应对ROM进行操作,接着对存放器操作,最终进行数据处理。在DS18B

17、20中要求了5条对ROM操作命令。见表2-4-3。主机在发送完ROM操作指令以后,就能够对DS18B20内部存放器进行操作,一样DS18B20要求了6条操作指令。见表2-4-4。 DS18B20读、写时序图见图2-4-3。图3.8 DS18B20读写时序图2. DS18B20使用方法因为DS18B20采取是1Wire总线协议方法,即在一根数据线实现数据双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,所以,我们必需采取软件方法来模拟单总线协议时序来完成对DS18B20芯片访问。因为DS18B20是在一根I/O线上读写数据,所以,对读写数据位有着严格时序要求。DS18B20有严格

18、通信协议来确保各位数据传输正确性和完整性。该协议定义了多个信号时序:初始化时序、读时序、写时序。全部时序全部是将图3.9 DS18B20复位时序图3.10 DS18B20读时序图3.11 DS18B20写时序主机作为主设备,单总线器件作为从设备。而每一次命令和数据传输全部是从主机主动开启写时序开始,假如要求单总线器件回送数据,在进行写命令后,主机需开启读时序完成数据接收。数据和命令传输全部是低位在先。对于DS18B20读时序分为读0时序和读1时序两个过程。对于DS18B20读时隙是从主机把单总线拉低以后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一

19、个读时序过程,最少需要60us才能完成。DS18B20写时序,对于DS18B20写时序仍然分为写0时序和写1时序两个过程,对于DS18B20写0时序和写1时序要求不一样,当要写0时序时,单总线要被拉低最少60us,确保DS18B20能够在15us到45us之间能够正确地采样IO总线上“0”电平,当要写1时序时,单总线被拉低以后,在15us之内就得释放单线proteus仿真设计画出电路仿真图进行仿真硬件电路设计利用altium designer 软件画出原理图然后建立PCB工程布线,布局。打印出PCB 用热转印机转印到覆铜板上然后腐蚀制版,再焊接元器件。电路焊接板图片以下:软件程序设计 依据焊接

20、硬件电路PO口控制数码管段码即显示什么数字依据分析得到编码为uchar code table1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; /不带小数点数码管编码uchar code table2=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1; /加小数点分别为不加小数点和加小数点数码管编码。P2口控制数码管位选 对数码管进行扫描显示。最终设计出程序为:/*/*DS

21、18B20测温程序 */*目标器件:AT89S51 */*晶振:11.0592MHZ */*编译环境:Keil 7.50A */*/*包含头文件*/#include /*共阴LED段码表*/ unsigned char code tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; /不带小数点数码管编码unsigned char code tab2=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,

22、0xde,0xf9,0xf1; /加小数点/*端口定义*/sbit DQ=P33; /数据传输线接单片机对应引脚/*定义全局变量*/unsigned char tempL=0; /临时变量低位unsigned char tempH=0;/临时变量高位float temperature; /温度值/*函数功效:延时子程序入口参数:k出口参数:*/void delay(unsigned int k) unsigned int n; n=0; while(n k) n+; return; /*函数功效:数码管扫描延时子程序入口参数:出口参数:*/void delay1(void)int k;for(

23、k=0;k480ms) DQ=1; /拉高数据线 delay(14); /等候(1560ms) /*函数功效:向DS18B20读一字节数据入口参数:出口参数:dat*/ReadOneChar(void) unsigned char i=0; unsigned char dat=0; for (i=8;i0;i-) DQ=1; delay(1); DQ=0; dat=1; DQ=1; if(DQ) dat|=0x80; delay(4); return(dat);/*函数功效:向DS18B20写一字节数据入口参数:dat出口参数:*/WriteOneChar(unsigned char dat)

24、 unsigned char i=0; for(i=8;i0;i-) DQ=0; DQ=dat&0x01;delay(5);DQ=1;dat=1;delay(4);/*函数功效:向DS18B20读温度值入口参数:出口参数:temperature*/ReadTemperature(void) Init_DS18B20(); /初始化WriteOneChar(0xcc); /跳过读序列号操作WriteOneChar(0x44); /开启温度转换delay(125); /转换需要一点时间,延时Init_DS18B20(); /初始化WriteOneChar(0xcc); /跳过读序列号操作Write

25、OneChar(0xbe); /读温度寄存器(头两个值分别为温度低位和高位)tempL=ReadOneChar(); /读出温度低位LSBtempH=ReadOneChar(); /读出温度高位MSB /温度转换,把高低位做对应运算转化为实际温度temperature=(tempH*256)+tempL)*0.625; delay(200);return(temperature);/*函数功效:主程序入口参数:出口参数:*/ void main() float i;while(1)i=ReadTemperature();display(i);调试性能及分析系统性能调试以(1、主程序)为主。硬件

26、调试比较简单,首先检验电路焊接是否正确,然后用万用表测试。软件调试能够先编写显示程序并进行硬件正确性检验,然后分别进行主程序、从程序编写和调试,因为DS18B20和单片机采取串行数据传送,所以对DS18B20进行编程时必需严格地确保读写时序,不然将无法读取测量结果。性能测试可用制作温度计和已经有成品温度计来同时测量比较,因为DS18B20精度较高,所以误差指标能够限制在0.1C以内,另外,-55C至+125C测温范围使得该温度计完全适适用于通常应用场所,其低电压供电特征可做成电池供电手持电子温度计。将编好c语言程序生成hex文件,下载到单片机中。接上电源,测得温度为29.2摄氏度。比较正确。课

27、程设计心得此次课程设计共一周时间,分别进行了BS18D20电路原理图设计,电路仿真图设计和实物电路板焊制三个过程。经过这次课程设计,我们不仅加深了对altium designer软件应用和Proteus仿真软件了解和使用,还学到了很多书本上没有包含知识,练习了电路原理图设计和仿真运行,同时对上学期学习单片机课程进行了一次全方面复习和巩固,收益很大。我们知道,课程设计通常强调能力培养为主,在独立完成设计任务同时,还要注意其它几方面能力培养和提升,如独立工作能力和发明力;综合利用专业及基础知识能力,处理实际工程技术问题能力;查阅图书资料、产品手册和多种工具书能力;工程绘图能力;书写技术汇报和编制技

28、术资料能力。在专业知识和研究方法方面为以后毕业设计乃至毕业后工作奠定良好基础对BS18D20电路原理图设计,刚开始感觉有一定难度,关键是对Altium designer软件及功效不了解。但在老师和同学帮助下还是顺利完成了,进而对接下来两个任务有了爱好。整个课设过程就是一个学习过程。因为在课设过程中,我们必需熟悉电路原理及器件使用特点,这些全部是对书本知识复习和巩固。所以 我认为课设是一个很关键学习步骤,值得我们应该很认真去对待!因为此次课程设计是由分组进行完成,所以经过这次课设我愈加了解到合作关键性。三周设计中,我们组组员全部参与了设计各个方面讨论和动手实践,大家更具自己实际情况做了不一样分工

29、,合理利用了时间,感认为到了很好经验。这次课设让我对单片机有了深入了解,而且对Proteus仿真软件有了一定了解。体会到了Proteus仿真软件强大。最关键是我们能够自己经过单片机焊接事物,这是我们在课堂上是学不到。极大地增强了我们动手实践能力。经过此次课设,能够使我们熟练掌握单片机控制电路设计、程序编写和整体焊接及系统调试,从而全方面地提升我们对单片机软件、硬件等方面了解,进而增强我们在实践步骤动手操作能力。譬如,我们能够依据试验指导书要求,完成BS18D20电路硬件设计、电路器件选择、单片机软件运行、和整体系统调试,并写出完善设计汇报。在进行课设之前,要求我们含有数字电路、模拟电路、电路基础、微机原理、电力电子、电机学和单片机等相关课程知识,并含有部分基础实践操作水平,为以后就业打好一定基础。总来说,这次课程设计自己还是很满意,感觉收获了不少东西,相信此次学到知识在以后生活和学习中对我会有很大帮助!

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服