万年历-毕业设计(带阴历带闹钟)(6)

2019-04-15 19:25

四川大学锦城学院本科毕业论文 基于单片机电子万年历的设计与实现

g 用户可定义的非易失性温度报警设置;

h 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; i

负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 DS18B20采用3脚PR—35封装或8脚SOIC封装,64位ROM的位结构如图4-6所示。开始8位是产品类型的编号,接着是每个器件的唯一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。非易失性温度报警触发器TH和TL,可通过软件写入报警上下限。

8位检验CRC 48位序列号 8位工厂代码(10H)

图4-6 64位ROM结构图

DS18B20温度传感器的内部存储器还包括一个调整暂存RAM和一个易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节存储器,结构如图4-7所示。头2个字节包含测得的温度信息,第3和第4节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如图4-8所示。低5位一直1,M是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动,R1和R0决定温度转换的精度位数,即用来设置分辨率,定义方法如表4-2所示【8】。

温度LSB 温度MSB TH用户字节1 TL用户字节2 配置寄存器 保留 1字节 2字节 3字节 4字节 5字节 6字节 【8】

于复生,宋现春. 时钟芯片DS1302及其在数据记录中的应用.北京航空航天大学出版社,2006

22

四川大学锦城学院本科毕业论文 基于单片机电子万年历的设计与实现

保留 保留 CRC

7字节 8字节 9字节

图4-7高速暂存RAM结构图

TM R1 R0 1 1 1 1 1 图4-8配置寄存器

表4-2 DS18B20分辨率的定义规定

R1 0 0 1 1 R0 0 1 0 1 分辨率/位 9 10 11 12 测量最大转换时间/ms 93.75 187.5 375 750 表4-2可见,DS18B20温度转换的时间比较长,而且设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。

高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。

当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16

【9】

位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通

过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625°C/LSB形式表示。温度值格式如图4-9所示。

【9】

王明顺.可涓流充电的串行实时时钟芯片DS1302及应用设计.电子技术应用,2009

23

四川大学锦城学院本科毕业论文

LS字节

基于单片机电子万年历的设计与实现

23 S 22 S 21 S 20 S 2-1 S 2-2 S6 2-3 S5 2-4 S4 MS字节

图4-9温度数字值格式

当符号位S=0时,表现测得的温度值为正值,可以直接将二进制位转换为十进制,当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码再计算十进制值。部分温度值对应的二进制温度数据如表4-3所示。

表4-3 DS18B20温度与测得值对应表

温度/C °二进制表示 0000 0111 1101 0000 0000 0101 0101 0000 0000 0001 1001 0001 0000 0000 1010 0010 0000 0000 0000 1000 0000 0000 0000 0000 1111 1111 1111 1000 1111 1111 0101 1110 1111 1110 0110 1111 1111 1100 1001 0000 十六进制表示 07D0H 0550H 0191H 00A2H 0008H 0000H FFF8H FF5EH FE6FH FC90H +125 +85 +25.0625 +10.125 +0.5 0 -0.5 -10.125 -25.0625 -55

DS18B20

完成温度转换后,把测得的温度值与RAM中的TH、TL字节内容作比较。

若T>TH或T

在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机根据ROM的前56位来计算CRC值,并和存入DS18B20的CRC作比较,以判断主机收到的ROM数据是否正确。

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

24

四川大学锦城学院本科毕业论文 基于单片机电子万年历的设计与实现

置在-55°C所对应的一个基数值。

斜率累加器 计数比较器 减法计数器 1 预置 增加 温度寄存器 减到0 预置 计数低温度系数振荡器

高温度系数振荡器 停止 减法计数器2 减到0 图 4-10 DS18B20测温原理图

减法计数器1对低温系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存的值将加1,减法计数器1的预置值将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值就是所测温度值。图4-10中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门未关闭就重复上述过程,直到温度寄存器值达到被测温度值。

另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲) 发ROM功能指令 发存储器操作命令 处理数据。

4.6.2 DS18B20与单片机的接口电路

DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为引线,3脚接电源。另一种是寄生电源供电方式。单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。

当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时,VDD和GND端均接地。由于单线制只有一根线,因此发送接口必须是三态的。 4.7程序及仿真分析

由于LPC2103单片机没有找到合适的仿真软件,所有选用了一个非常容易仿真的单片机89c52进行仿真,把所有的功能都在仿真软件上表示出来,再通过芯片移植的方法,把

25

四川大学锦城学院本科毕业论文 基于单片机电子万年历的设计与实现

所有的端口修改成LPC2103的端口,并根据两个芯片不同特点,修改输入输出模式,再将其它功能全部移植到LPC2103上,由于此程序实现功能比较简单,无特殊功能,所以采用这种移植的方法较容易实现。附录A中就是通过仿真软件做出来的效果,当用LPC2103时硬件没有什么区别,只是按程序端口即可。

源程序参见附录B。

5仿真与调试

5.1仿真图分析

图5-1电子万年历仿真图

如图5-1所示,当按下设置而不按下闹钟时,可以按转换开关调节时间、日期、和星期,当选择好要调的数位后,再按下上调或下调来调节数值的大小,同理当同时按下设置和闹钟时,可以调闹钟的日期和时间,在调节的过程中时间是停止的。

首先显示屏(LCD1602)上要显示时间温度,第一行显示:日期,星期。第二行显示:时间,温度。其次我们可以修改时间,包括闹钟的时间:当按下设置时,按下转换开关可以修改秒,修改分,修改时,修改日,修改月,修改星期,修改年份,同时按下设置和闹

26


万年历-毕业设计(带阴历带闹钟)(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:预防医学试题库及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: