2 数字温度计的方案设计
2.1 设计方案论证与比较
2.1.1 显示电路方案
方案一:采用数码管动态显示
使用七段LED数码管,采用动态显示的方法来显示各项指标,此方法虽然价格成本低,但是显示单一,且功耗较大。
方案二:采用LCD液晶显示
采用1602 LCD液晶显示,此方案显示内容相对丰富,且价格不高。 综合上述原因,采用方案二,使用LCD液晶作显示电路。 2.1.2 测温电路方案
方案一:采用模拟温度传感器测温
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
方案二:采用数字温度传感器
进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
综合考虑,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。
2.2 系统总体方案
根据上述方案比较,结合题目要可以将系统分为主控模块,显示模块,温度采集模块和报警模块,其框图如下:
看门狗 报警 电路 DS18B20 温度数据采集 MCU 驱动显示 图2-1 系统总体设计框图
3 数字温度计的硬件电路设计
3.1 控制电路
3.1.1 MCU简介
CPU是整个控制部分的核心。在考虑经济性和满足需求的前提下,本系统选用宏晶公司生产的8位STC89C52单片机作为整个系统的控制中心。 STC89C52是宏晶公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用宏晶公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚,它集Flash存储器既可在线编辑(ISP)也可用传统方法进行编辑及通用8位微处理器于单片芯片中,功能强大STC89C52单片机可为您提供许多高性价比的应用场合。器管脚图如图3-2:
图3-1 STC89C52管脚图
在本系统中,STC89C52单片机内部的功能单元已经能够满足系统设计需要,不需要系统扩展。 STC89C52具有以下的特点:
● 8031 CPU与MCS-51 兼容 ● 寿命:1000写/擦循环 ● 4K字节可编程FLASH存储器 ● 全静态工作:0--24MHz ● 三级程序存储器保密锁定 ● 128*8位内部RAM ● 32条可编程I/O线
● 两个16位定时器/计数器 ● 6个中断源 ● 可编程串行通道 ● 低功耗的闲置和掉电模式
● 片内振荡器和时钟
除此之外,STC89C52RC单片机还具有看门狗内部外设。在工业控制/汽车电子/航空航天等需要高可靠性的系统中,为了防止“系统在异常情况下,受到干扰,MCU/CPU程序跑飞,导致系统长时间异常工作” ,通常是引进看门狗,如果MCU/CPU 不在规定的时间内按要求访问看门狗,就认为MCU/CPU处于异常状态,看门狗就会强迫MCU/CPU复位,使系统重新从头开始按规律执行用户程序。系统中单片机STC89C52RC中自带看门狗电路。其寄存器设置相关信息如下:
表3-1 STC89C52看门狗寄存器
STC89C52单片机看门狗复位时间是可以自行选择和设置的,其设置方法是:
表3-2 看门狗定时器预分频值
3.2.2 最小系统模块
本次设计中,选用宏晶公司的51系列单片机STC89C52芯片作为电子密码电源开关的数据处理及操作控制芯片。只有单片机芯片无法完成数据处理及控制功能,必须有附加的电路,使单片机芯片组成一个可运行的系统才能实现其功能。本次设计中,由STC89C52芯片连同附加电路构成的单片机最小系统作为数据处理及控制模块,其中,使用P0口作为1602液晶的数据传输口,P2口作1602的命令数据控制、时钟、读写控制、和使能控制接口,P3
口作按键扫描接口,P1.4作DS18B20的总线接口。P1.3作报警控制接口。其电路连接图3-3如下:
图3-2 数据处理及控制模块
3.3 温度传感器设计
3.3.1 DS18B20简介
DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EPROM中,掉电后依然保存。
温度传感器DS18B20引脚如图3-4所示。
图3-3 DS18B20TO-92封装温度传感器
引脚功能说明:
VDD :可选电源脚,电源电压范围3~5.5V。当工作于寄生电源时,此引脚必须接地。
DQ :数据输入/输出脚。漏极开路,常态下高电平。 GND :为电源地
图3-4 DS18B20内部结构图
DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
这是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。
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第