欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于AT89C51的数字温度计的设计与实现可行性方案文档格式.docx

    • 资源ID:5708508       资源大小:382.82KB        全文页数:31页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于AT89C51的数字温度计的设计与实现可行性方案文档格式.docx

    1、热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差,所以传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点。本文是以单片机AT89C51为核心,通过DALLAS公司的单总线数字温度传感器DS18B20来实现环境温度的采集和A/D转换,用来测量环境温度,温度分辨率为0.0625,并能数码显示。因此本文设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽其电路简单,软硬件结构模块化,易于实现等特点。数字式温度计的设计将给人们的生活带来很大的方便,为人们生活水平的提高做出了贡献。数字温度计在以后将应用于我们生产和生活的各个

    2、方面,数字式温度计的众多优点告诉我们:数字温度计将在我们的未来生活中应用于各个领域,它将会是传统温度计的理想的替代产品。第2章 数字温度计总体设计方案2.1 数字温度计设计方案方案 一:采用热敏电阻器件,利用其感温效应,再将随被测温度变化的电压或电流采集过来,进行A/D转换后,利用单片机进行数据的处理,然后在显示电路上,将被测温度显示出来。方案 二:利用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换就可以满足设计要求。分析上述两种方案可以看出方案一是使用热敏电阻之类的器件利用

    3、其感温效应,进行A/D转换后,利用单片机进行数据的处理,在显示电路上被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。方案二是利用温度传感器直接读取被测温度,读数方便,测温范围广,测温精确,适用范围宽而且电路简单易于实现。 综合方案一和方案二的优缺点,我们选择方案二。2.2 总体设计框图温度计电路设计总体设计方框图如图2-1所示,控制器采用单片机AT89C51,温度传感器采用DS18B20,用4位LED数码管以串口传送数据实现温度显示。图2-1总体设计方框图第3章 数字温度计硬件设计3.1 主控制器AT89C513.1.1 AT89C51的特点及特性:40个引脚,4K Byt

    4、es FLASH片内程序存储器,128 Bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89C51在空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。主要功能特性:兼容MCS-51指令系统 4k可反复擦写(1000次)ISP FLASH ROM 3

    5、2个双向I/O口 4.5-5.5V工作电压2个16位可编程定时/计数器 时钟频率0-33MHZ全双工UART串行中断口线 128X8 BIT内部RAM2个外部中断源 低功耗空闲和省电模式中断唤醒省电模式 3级加密位看门狗(WDT)电路 软件设置空闲和省电功能灵活的ISP字节和分页编程 双数据寄存器指针3.1.2 管脚功能说明:AT89C51管脚如图3-1所示:图3-1 AT89C51管脚图(1)VCC:供电电压。(2)GND:接地。(3)P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被

    6、定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。(4)P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。(5)P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将

    7、输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。(6)P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示:P3.0 RXD(串行输入

    8、口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。(7)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。(8)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它

    9、可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。(9)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。(10)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA

    10、将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。(11)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。(12)XTAL2:来自反向振荡器的输出。3.1.3 片内振荡器:该反向放大器可以配置为片内振荡器,如图3-2所示。图3-2 片内振荡器3.1.4 芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零

    11、频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM、定时器、计数器、串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。3.2 单片机主板电路单片机AT89C51是数字温度计的核心元件,单片机的主板电路如图3-3所示,包括单片机芯片、报警系统电路、晶振电路、上拉电阻以及与单片机相连的其他电路。图3-3 单片机的主板电路3.3 温度采集部分的设计3

    12、.3.1 温度传感器DS18B20DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。TO92封装的DS18B20的引脚排列见图3-4,其引脚功能描述见表3-1。表3-1DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。图3-4 DS18B20引脚排列DS18B20的性能特点如下:

    13、独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5V;零待机功耗;温度以9或12位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20采用3脚PR35封装或8脚SOIC封装,其内部结构框图如图3-5所示。图3-5 DS18B20内部结构64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B

    14、20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图3-6所示。头8个字节包含测得的温度信息,第8和第8字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第8个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3-6所示。低8位一直为,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位

    15、被设置为8,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。温度 LSB温度 MSBTH用户字节1TL用户字节2配置寄存器保留CRC图3-6DS18B20字节定义由表3-2可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。表3-2 DS18B20温度转换时间表R1R0分辨率(位)温度最大转向时间(ms)993.7510187.51137512750高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B

    16、20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。当符号位S0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表3-3是一部分温度值对应的二进制温度数据。DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若TTH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可

    17、用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,

    18、首先将55所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在55所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。表3-3 一部分温度对应值表温度/二进制表示十六进制表示+1250000 0111 11

    19、01 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H0000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H另外,由于DS18B20单线通信功能是分时完成的,它有严

    20、格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。3.3.2 DS18B20温度传感器与单片机的接口电路DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源;另一种是寄生电源供电方式,如图3-7所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。图3-7 DS18B20与单片机的接口电路当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必

    21、须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。3.4 显示部分电路设计3.4.1 74LS164引脚功能及特性74LS164是一个串入并出的8位移位寄存器,他常用于单片机系统中,下面总结一下这个元件的基本知识如图3-10为74LS164引脚图, 图3.11为74LS164内部功能图。图3-10 74LS164引脚图3-11 74LS164内部功能图 串行输入带锁存

    22、时钟输入,串行输入带缓冲 异步清除 最高时钟频率可高达36MHZ 功耗:10mW/bit 74系列工作温度: 0C 70C Vcc最高电压:7V 输入最高电压: 高电平:-0.4mA. 低电平:8mA.3.4.2 温度显示电路温度显示电路(如图3-12)采用4位共阳LED数码管,从P3口RXD,TXD串口输出段码。显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,该显示电路只使用单片机的3个端口:P1.7,P3.0,P3.1,并配以4片串入并出移位寄存器74LS164(LED驱动)四只数码管采用74LS164右移寄存器驱动,显示比较清晰。其工作过程如下:1.串行数据由P3.0发

    23、送,移位时钟由P3.1送出。2.在移位时钟的作用下,串行口发送缓冲器的数据一位一位地移入74LS164中。3.四片74LS164串级扩展为4个8位并行输出口,分别连接到4个LED显示器的段选端作静态显示。图3-12 温度显示电路3.5 报警系统电路在图3-13中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示。图中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。图中的按健复位电路是上电复位加手动复位,

    24、使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。图3-13 报警系统电路第4章 数字温度计的软件设计4.1 系统软件设计的流程图系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1S进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4-1所示。图4-1 主程序流程图温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转

    25、换命令子程序流程图如上图,图4-2所示。图 4-2温度转换流程图计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图4-3示。图4-3计算温度流程图显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图4-4。图4-4显示数据刷新流程图4.2 数字温度计部分程序清单(1)初始化程序S1OK EQU 5FHTEMPUTER EQU 39HTEMPH EQU 5EHTEMPLEQU 5DHMS50 EQU 5CHSIGN EQU 5BHS1 BIT P1.0S2 BIT P1.1S3 BIT

    26、P1.2S4 BIT P1.3ORG 0000HLJMP MAINORG 000BHLJMP TOITORG 0030HMAIN: MOV SP, #60HMOV TMOD, #01HMOV TH0, #3CHMOV TL0, #0B0HSETB ET0SETB TR0SETB EAMOV TEMPH, #30MOV TEMPL, #9MOV TEMPUTER, #15 MOV S1OK, #00HMOV 38H, #0BHMOV 37H, #0CHMOV 36H, #0BHACALL DISP ACALL T1S(2)主程序START: JB S1, NET1ACALL T12MSJB S1, NET1JNB S1, $INC SIGNMOV A, SIGNCJNE A, #1, TIAOACALL TIAOTLTIAO:CJNE A, #2, NET1MOV SIGN, #0ACALL TIAOTHNET1: MOV A, S1OKCJNE A, #1, STARTMOV A, TEMPUTERSUBB A, TEMPHJNB ACC.7, ALEMSUBB A, TEMPLJB ACC.7, ALEMSETB P2.1ACALL WENDUACALL DISPAJMP STARTALEM: MOV 36H, #0CH


    注意事项

    本文(基于AT89C51的数字温度计的设计与实现可行性方案文档格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开