基于proteus的单片机实时时钟仿真设计内容摘要:

操作单元的地址。 位 0是读 /写操作位,进行读操作时,该位为 1;该位为 0则表示进行的是写操作。 控制字节总是从最低位开始输入 /输出的。 表 6为 DS1302的日历、时间寄 存器内容: “CH”是时钟暂停标志位,当该位为 1时,时钟振荡器停止, DS1302处于低功耗状态;当该位为 0时,时钟开始运行。 “WP”是写保护位,在任何的对时钟和 RAM 的写操作之前, WP 必须为 0。 当 “WP”为 1时,写保护位防止对任一寄存器的写操作。 (2) DS1302 的控制字节 DS1302 的控制字如表 1 所示。 控制字节的高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写入 DS1302 中,位 6 如果 0,则表示存取日历时钟 数据,为 1 表示存取 RAM 数据;位 5 至位 1 指示操作单元的地址;最低有效位 (位 0)如 为 0 表示要进行写操作,为 1 表示进行读操作,控制字节总是从最低位开始输出。 本科毕业设计论文 18 图 8 DS1302的引脚图 表 4 DS1302的控制字格式 X T A L 218X T A L 119A L E30EA31P S E N29R S T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I N T 012P 3 .3 /I N T 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C 5 1R S T5S C L K7I /O6X12X23V C C 18V C C 21U3D S 1 3 0 2V C CX23 2 .7 6 8 k H zC46pFC56pFG N DV c c 2X 1X 2G N DV c c 1S C L KI / OR S T 12345678D S 1 3 0 2本科毕业设计论文 19 图 9 DS1302读 /写时序图 (3) 数据输入输出( I/O) 在控制指令字输入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从低位即位 0 开始。 同样,在紧跟 8 位的控制指令字后的下一 个 SCLK脉冲的下降沿读出 DS1302 的数据,读出数据时从低位 0 位到高位 7。 如 表 4 所示。 (4) DS1302 的寄存器 DS1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式 ,其日历、时间寄存器及其控制字见表 5。 A 0 A 1 A 2 A 3 A 4 R / C D 1 D 2 D 3 D 4 D 5 D 6A 0 A 1 A 2 A 3 A 4 R / C D 1 D 2 D 3 D 4 D 5 D 6C ES C L KI / O单 字 节 读R / W 1D 0D 7单 字 节 写C ES C L KI / OR / W 1 D 0 D 7电 源 控 制输 入 移 位寄 存 器振 荡 电 路与 分 频 器实 时 时 钟命 令 与 控制 逻 辑3 1 8 R A M3 2 . 7 6 8 K H zV C C 1V C C 2G N DI / OS C L KR S TD S 1 3 0 2 内 部 结 构本科毕业设计论文 20 此外, DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 RAM 相关的寄存器等。 时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302 与 RAM 相关的寄存器分为两类:一类是单个RAM 单 元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 RAM 寄存器,此方式下可一次性读写所有的 RAM 的 31 个字节,命令控制字为 FEH(写 )、FFH(读 )。 表 5 DS1302 的日历、时间寄存器 温度传感器模块的设计 如图 10所示。 采用数字式温度传感器 DS18B20,它是数字式温度传感器,具有测量 精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用 DS18B20的 I/O 口连接加一个上拉电阻 ,Vcc 接电源 ,Vss 接地。 读寄 存器 写寄存器 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 范围 81H 80H CH 10 秒 秒 059 83H 82H 10 分 分 059 85H 84H 12/24 0 10 时 时 112/ 023 AM/ PM 87H 86H 0 0 10 日 日 131 89H 88H 0 0 0 10 月 月 112 8BH 8AH 0 0 0 0 0 周日 17 8DH 8CH 年 099 8FH 8EH WP 0 0 0 0 0 0 0 —— D A L L A SD S 1 8 B 2 01 2 3G N D D Q V d dD S 1 8 B 2 0 的 T O 9 2 封 装1 2 3本科毕业设计论文 21 图 10 DS18B20温度采集 ( 1) DS18B20的理: DS18B20 的测温原理如图 11 所示, 图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器 2 的脉冲输入,图中还隐含着计数门,当计数门打开时, DS18B20 就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。 计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将 55 ℃ 所对应的基数分别置入减法计数器 1 和温度寄存器中,减法计数器 1 和温度寄存器被预置在 55 ℃ 所对应的一个基数值。 减法计数器 1 对低温度系数晶振产生的脉冲信 号进行减法计数,当减法计数 器 1 的预置值减到 0 时温度寄存器的值将加 1,减法计数器 1 的预置将重新被装8 .0DQ2V C C3G ND1U2DS 1 8 B 2 0V C C本科毕业设计论文 22 入,减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循 斜 率 累 加 器预 置低 温 度 系 数晶 振高 温 度 系 数晶 振计 数 器 1= 0计 数 器 2温 度 寄 存 器比 较预 置= 0加 1停 止L S B置 位 / 清 除 图 11 DS18B20 测温原理图 环直到减法计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。 图 2 中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。 另外,由于 DS18B20 单线通信功能是分时完成的,他有 严格的时隙概念,因此读写时序很重要。 系统对 DS18B20 的各种操作必须按协议进行。 操作协议为:初始化 DS18B20(发复位脉冲) → 发 ROM 功能命令 → 发存储器操作命令 →处理数据。 DS18B20 的核心功能是一个直接数字式温度传感器。 芯片的分辨率可以按照用户的需要配置为 9 位、 10 位、 11 位、 12 位,芯片在上电后默认设置为 12位。 DS18B20 可工作在低功耗的空闲状态。 单总线系统中的主机发出温度转换命令( 44H)后, DS18B20 便开始启动温度测量并把测量的结果进行 A/D 转换。 经过 A/D 转换后,所产生的 温度数据将存储在暂存器中的两个温度寄存单元中,数据的格式为符号扩展的二进制补码,同时 DS18B20 返回到空闲状态。 本科毕业设计论文 23 DS18B20 的温度数据输出单位为“摄氏度”。 温度数据在两个温度寄存器单元中的存储格式见下图: 标志位( S)是温度数据的符号扩展位,表示温度的正负:如果温度为正,则 S=0;如果温度为负,则 S=1。 在实际使用过程中,如果 DS18B20 被设置为12 位分辨率,则在温度所有数据位都是有效位;如果 DS18B20 被设置为 11 位分辨率,则 D0 位数据无效;如果 DS18B20 被设置为 10 位分辨率,则 D D0位数据无效;如果 DS18B20 被设置为 9 位分辨率,则 D D D0 位数据无效。 以 12位分辨率为例,表 6给出了 DS18B20部分数字量输出与温度值之间的关系。 在表 6 中, +85℃是 DS18B20 上电复位后在温度寄存器内对应的数字量。 温度 /℃ 数字量输出(二进制) 数字量输出(十六进制) +125 0000 0111 1101 0000 07D0 +85 0000 0101 0101 0000 0550 + 0000 0001 1001 0001 0191 + 0000 0000 1010 0010 00A2 + 0000 0000 0000 1000 0008 0 0000 0000 0000 0000 0000 1111 1111 1111 1000 FFF8 1111 1111 0101 1110 FF5E 1111 1110 0110 1111 FF6F 55 1111 1100 1001 0000 FC90 S 22SS 2 2 2 2S 2 2 2S 2 26 5 4 3 2 1 1 20 3 4D 1 5 D 1 4 D 1 3 D 1 2 D 1 1 D 1 0 D 9 D 8 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0高 8 位 低 8 位温 度 值 的 符 号 部 分 温 度 值 的 整 数 部 分 温 度 值 的 小 数 部 分D S 1 8 B 2 0 的 内 温 度 数 据 格 式本科毕业设计论文 24 表 6 DS18B20 部分数字量输出与温度值之间的对应关系 在 DS18B20 完成温度转换以后,其温度值将与报警寄存器中的值相比较。 在 DS18B20 中有两个报警寄存器, TH 为温度上限值, TL 为温度下限值,这两个寄存器均为 8 位,所以在进行温度比较时,只取出温度的中间 8 位( D4~D11)进行比较。 TH 和 TL 寄存器格式如下表所示: D7 D6 D5 D4 D3 D2 D1 D0 S 26 25 24 23 22 21 20 如果温度寄存器测量的结果低于 TL 或高于 TH,则设置报警标志,这个比较过程会在每次温度测量时进行。 一旦报警标志设置后,器件就会响应系统主机发出的条件搜索命令 ( ECH)。 这样处理的好处是,可以是单总线上的所有器件同时测量温度,如果有些点上的温度超过了设定的阈值,则这些报警器件就会通过条件搜索方式识别出来,而不需要一个个器件去读取。 无论是温度测量值还是报警阈值,都会存储在 DS18B20 芯片内的寄存器中。 DS18B20 的寄存器包括 SRAM(暂存寄存器)和 EEPROM(非易失寄存器)。 EEP。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。