您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 西安文理学院-DS18B20温度显示数码管上-课程设计
西安文理学院物理与机械电子工程学院课程设计报告专业班级10级电子信息工程2班课程单片机原理与接口技术题目基于数字温度传感器的数字温度计学号08101100219学生姓名李斌指导教师魏坤2013年11月西安文理学院物理与机械电子工程学院课程设计任务书学生姓名李斌专业班级电子信息工程(2)班学号08101100219指导教师魏坤职称讲师教研室课程单片机原理与接口技术题目基于数字温度传感器的数字温度计任务与要求利用数字温度传感器DS18B20与单片机结合来测量温度。利用数字温度传感DS18B20测量温度信号,计算后在LED数码管上显示相应的温度值。其温度测量范围为-550C~1250C,精确到0.50C。数字温度计所测量的温度采用数字显示,控制器使用单片机AT89C51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示。设计要求(1)根据设计任务要求给出实现原理及具体实现方案;(2)给出电路设计的具体电路,编写出相应的温度采集显示程序;(3)通过相应软件进行调试,给出调试结果,并进行相应分析;(4)论文要求思路清晰,结构合理,语言流畅,书写格式符合要求。开始日期2013--11--25完成日期2013--12--62013年12月6日目录设计目的……………………………………………4设计任务和要求……………………………………4总体设计方案………………………………………4功能模块设计与分析………………………………9电路的安装与调试…………………………………12实验仪器及元器件清单……………………………15心得体会……………………………………………15附录一系统电路图………………………………20第4页一、设计目的本设计以AT89S52单片机(海翔HX-V2开发板)为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、数码管扫描电路,显示电路。单片机通过对信号进行相应处理,从而实现温度的采集,量化,输出,显示的目的。文中还着重介绍了软、硬件设计及C语言实现部分,在这里采用模块化编程结构。主要模块有:端口定义程序、函数定义及主函数程序、定时器中断程序、延时函数程序、DS18B20初始化定义程序。通过本次课程设计,更加深对51单片机的了解,进一步加深我们对51单片机解决实际问题的工作能力。二、设计要求和任务利用数字温度传感器DS18B20与单片机结合来测量温度。利用数字温度传感器DS18B20测量温度信号,计算后在LED数码管上显示相应的温度值。其温度测量范围为-550C~1250C,精确到0.50C。数字温度计所测量的温度采用数字显示,控制器使用单片机AT89C51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示。设计要求(1)根据设计任务要求给出实现原理及具体实现方案;(2)给出电路设计的具体电路,编写出相应的温度采集显示程序;(3)通过相应软件进行调试,给出调试结果,并进行相应分析;(4)论文要求思路清晰,结构合理,语言流畅,书写格式符合要求。设计任务设计一个具有基于DS1820数字温度传感器的温度检测及显示的系统。要求系统具有以下功能:(1)一路温度检测;(2)具有数码管显示功能;(3)具有动态扫描功能;(4)定时器控制扫描时间;(5)温度变化数码管能及时刷新显示温度;三、总体设计方案1、DS18B201.1DS18B20的工作原理第5页DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。DS18B20有4个主要的数据部件:(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。(2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。LSBytebit7bit6bit5bit4bit3bit2bit1bit0232221202-12-22-32-4MSByteBit15bit14bit13bit12bit11bit10bit9bit8SSSSS262524表1:DS18B20温度值格式表这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。第6页温度(℃)二进制(bin)十六进制(hex)+125000001111101000007D0h+850000101101000000550h+25.062500000001100100010191h+10.125000000001010001000A2h+0.500000000000010000008h+000000000000000000000h-0.51111111111111000FFF8h-10.1251111111101011110FF5Eh-25.06251111111001101111FE6Fh-551111110010010000FC90h表2:DS18B20温度数据表(3)DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。(4)配置寄存器该字节各位的意义如下:TMR1R011111表3:配置寄存器结构低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms表4:温度分辨率设置表1.2DS18B20的使用方法由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。第7页由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20的初始化(1)先将数据线置高电平“1”。(2)延时(该时间要求的不是很严格,但是尽可能的短一点)(3)数据线拉到低电平“0”。(4)延时750微秒(该时间的时间范围可以从480到960微秒)。(5)数据线拉到高电平“1”。(6)延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。(7)若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。(8)将数据线再次拉高到高电平“1”后结束。DS18B20的写操作(1)数据线先置低电平“0”。(2)延时确定的时间为15微秒。(3)按从低位到高位的顺序发送字节(一次只发送一位)。(4)延时时间为45微秒。(5)将数据线拉到高电平。(6)重复上(1)到(6)的操作直到所有的字节全部发送完为止。(7)最后将数据线拉高。DS18B20的读操作(1)将数据线拉高“1”。(2)延时2微秒。(3)将数据线拉低“0”。(4)延时3微秒。(5)将数据线拉高“1”。(6)延时5微秒。(7)读数据线的状态得到1个状态位,并进行数据处理。(8)延时60微秒。第8页2、AT89C512.1AT89C51简介AT89S51美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4KBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及AT89C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元。单片机AT89S51强大的功能可为许多嵌入式控制应用系统提供高性价比的解决方案。2.2AT89C51功能AT89S51提供以下标准功能:40个引脚、4KBytesFlash片内程序存储器、128Bytes的随机存取数据存储器(RAM)、32个外部双向输入/输出(I/O)口、5个中断优先级2层中断嵌套中断、2个数据指针、2个16位可编程定时/计数器、2个全双工串行通信口、看门狗(WDT)电路、片内振荡器及时钟电路。此外,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式,空闲模式,CPU暂停工作,而RAM、定时/计数器、串行通信口、外中断系统可继续工作。掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求2.3AT89C51引脚P0口:P0口为一个8位漏级开路双向I/O口,也即地址/数据总线复用口。作为输出口用时,能驱动8个TTL逻辑门电路。对端口写“1”时,被定义为高阻输入。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1口是一个带内部上拉电阻的8位双向I/O口,P1口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,P2口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为
本文标题:西安文理学院-DS18B20温度显示数码管上-课程设计
链接地址:https://www.777doc.com/doc-2723857 .html