无锡城市职业技术学院毕业设计(论文)
(3)RS3、RS2、RS1、RS0:周期中断可编程方波输出速率选择位。各种不同的组合可以产生不同的输出。程序可以通过设置寄存器B的SQWF 和PIE 位控制是否允许周期中断和方波输出。其寄存器A输出速率选择位如表2-5所列。
寄存器B的控制字的格式如表2-2所列。
表2-2 DS12887 控制寄存器B各布尔位定义
BIT7 SET
BIT6 PIE
BIT5 ALE
BIT4 UIE
BIT3 SQWE
BIT2 DW
BIT1 24/21
BIT0 DSE
(a)SET位:当该位为“0”时,芯片处于正常工作状态,每秒产生一个更新周期来更新时标寄存器为“1”时,芯片停止工作,程序在此期间可初始化芯片的各个时标寄存器。
(b)PIE、AIE、UIE 位:分别为周期中断、报警中断、更新周期结束中断允许位。各位为“1”时,允许芯片发相应的中断。
(c)SQWE位:方波输出允许位。SQWE“1”,按寄存器A 输出速率选择位所确定的频率输出方波;SQWE =“0”,脚SQW保持低电平。
(d)DM位:时标寄存器用十进制BCD 码表示或用二进制表示格式选择位。DM =“0”时,为十进制BCD码;DM =“1”时,为二进制码。
(e)24/12位:24/12 小时模式设置位。24/12位=“1”时,为24 小时工作模式;24/12位=“0”时,为12 小时工作模式。
(f)DSE位:夏令时服务位。DSE=“1”,夏时制设置有效,夏时制结束可自动刷新恢复时间;DSE=“0”,无效。
寄存器C的控制字的格式如表2-4所列。该寄存器的特点是程序访问读该寄存器后,该寄存器的内容将自动清零,从而使IRQF 标志位变为高电平,
否则,芯片将无法向CPU 申请下一次中断。 表2-3所示的为控制寄存器C各布尔位定义:
表2-3 DS12887 控制寄存器C各布尔位定义
16
太阳能热水器监控仪设计
BIT7 IRPF
BIT6 PF
BIT5 AF
BIT4 UF
BIT3 0
BIT2 0
BIT1 0
BIT0 0
(a)IRQF位:中断申请标志位。该位逻辑表达式为:IRQF = PF·PIE +AF·AIE+UF·UIE。当IRQF位变“1”时,引脚将变低电平引发中断申请。
(b)PF、AF、UF 位:这三位分别为周期中断、报警中断、更新周期结束中断标志位。只要满足各中断的条件,相应的中断标志位将置“1”。
(c)BIT3~BIT0:未定义的保留位。读出值始终为0。
寄存器D为只读寄存器。寄存器D的控制字的格式如表2-4所示。
表2-4 DS12887控制寄存器D各布尔位定义
BIT7 VRT
BIT6 0
BIT5 0
BIT4 0
BIT3 0
BIT2 0
BIT1 0
BIT0 0
(a)VRT位:芯片内部RAM与寄存器内容有效标志位。该位为“1”时,指芯片内部RAM和寄存器内容有效。读该寄存器后,该位将自动置“1”。
(b)BIT6~BIT0位:保留位。读出的数值始终为0。
17
无锡城市职业技术学院毕业设计(论文)
表2-5 DS12887 控制寄存器A 输出速率选择位定义
寄存器A输出速率选择位 RS3
RS2
RS1
RS0
32768Hz时基
中短周期
SQWF输出频率
(Hz)
0 0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1
0 0 1 1 0 0 1 1 0 0 1 1 0
0 1 0 1 0 1 0 1 0 1 0 1 0
无 3.90625ms 7.8125ms 122.0us 244.141us 488.281us 976.5625us 1.953125ms 3.90625ms 7.812ms 15.625ms 31.25ms 62.5ms
无 256 128 8.192k 4.096k 2.048k 1.024k 512 256 128 64 32 16
18
太阳能热水器监控仪设计
1 1 1 注释:
1 1 1
0 1 1
1 0 1
125ms 250ms 500ms
8 4 2
寄存器B允许读写,主要用于控制芯片的工作状态。 2.3.2 时钟电路
DS12887时钟芯片与AT89C52单片机的接口电路见下图2-6。
19
无锡城市职业技术学院毕业设计(论文)
图2-6 DS12887与单片机接口电路
模式选择脚MOT接地,选择IN TEL时序。DS12887 的高位地址用89C52的P14 选择,则时钟芯片的高8位地址为EFH,而其低8位地址则由芯片内部各单元的地址来决定(00H~80H),DS12887的中断输出端IRQ 接上拉电阻,同89C52中断线IN TO相连,为单片机提供中断信号。SQW端口编程为2Hz方波输出,经二分频后,驱动两个LED发光二极管作为时钟的秒闪烁示。 2.4温度检测电路设计
为了实现对水箱内水温的实时检测,蓄水箱温度检测电路采用DS18B20芯片,该芯片将采集到的温度信号转换成脉冲信号,送到AT89C52的I/O 口(编程
20