毕设论文定时插座设计内容摘要:

时标寄存器可被程序读写。 UIP 位为只读位。 9 ( B) DV0、 DV DV2: RTC(即芯片内部的振荡器)的控制位。 另一个更新周期在 500ms 后开始的条件有两个: 1芯片解除复位状态; 2将 010 写入 DV0、 DV DV2。 所以, DV0、 DV DV2 可以在程序初始化时让芯片在设定的时间开始工作。 值得注意的是, DS12887 内部的晶体一定是 32768HZ,这是与 MC146818 不同的,所以 RTC 的启动只能是 010 的组合即 DV0=“ 0”、 DV1=“ 1”、 DV2=“ 0”。 ( C) RS RS RS RS0:可编程方波 在周期中断时 输出速率 的 选择位。 由多种不相同的组合可以形成多种不相同的输出。 周期中断的方波能否输出可以利用寄存器 B 的 PIE 位和 SQWF 位来控制。 下表 4 是寄存器 A 的输出速率选择位。 表 4 对于 寄存器 A 的 输出速率选择位 的 定义 寄存器 A 输出速率选择位 32768Hz 时基 RS3 RS2 RS1 RS0 中断周期 SQWF 输出频率 0 0 0 0 无 无 0 0 0 1 256Hz 0 0 1 0 128Hz 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 512Hz 1 0 0 0 256Hz 1 0 0 1 128Hz 1 0 1 0 64Hz 1 0 1 1 32Hz 1 1 0 0 16Hz 1 1 0 1 125ms 8Hz 1 1 1 0 250ms 4Hz 1 1 1 1 500ms 2Hz ( 3) 寄存器 B 芯片的工作状态是由寄存器 B 控制的,且允许读写。 下表 5 为控制字格式说明。 表 5 控制字格式说明 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 SET PIE AIE UIE SQWE DM 24/12 DSF ( 1) SET 位: 芯片正常工作时该位为“ 0”,时标寄存器通过每秒产生的更新周期更新。 芯片停止工作时该位为“ 1”,在此期间,芯片的每个时标寄存器都将被初始化。 10 ( 2) UIE、 AIE、 PIE 位: 更新周期结束中断、报警中断、周期中断允许位。 对应芯片中断时,各位为“ 1”。 ( 3) SQWE 位: 脚 SQW 保持低电平时, SQWE=“ 0”;当 SQWE 为“ 1”时,输出方波,确定该方波的是寄存器 A 输出速率的选择位。 ( 4) DM 位:时标寄存器 的表示格式选择位,有两种表达方式,即十 进制 SCD 码、二进制码。 若为二进制码,则 DM=“ 1”,若为十进制 BCD 码,则 DM=“ 0” [7]。 ( 5) 24/12 位: 工作 模式设置位。 若工作模式为 12 小时制,该位为“ 0”;若工作模式为 24小时制,该位为“ 1” [8]。 ( 6) DSE 位: 夏 令时服务位。 DSE=“ 0” ,夏时制设置无效; DSE=“ 1”, 有效,且该时制结束可自动刷新恢复时间 [9]。 ( 4) 寄存器 C 表 6 为寄存器 C 的控制字格式。 若程序访问结束,其中的内容自动清零。 此时标志位 IRQF 为高电平,从而芯片得以进行下一次中断的申请 [10]。 表 6 DS12887 控制寄存器 C 各布尔位定义 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 IRQF PF AF UF 0 0 0 0 ( a) IRQF 位:中断申请标志位。 当 IRQF=“ 1”时,引发中断申请,即引脚变为低电平。 其逻辑表达式是 IRQF=AF AIE+UF UIE+PF PIE. ( b) AF、 UF、 PF 位: 报警中断标志位、更新周期结束中断标志位、周期中断标志位。 若中断标志位置“ 1”,表示各中断满足条件。 ( c) BIT3~BIT0:未定义的保留位。 读出值 恒 为 0。 ( 5) 寄存器 D 寄存器 D 为只读寄存器。 BIT 7 : VRT 位。 DS12887 控制寄存器 D 各布尔位定义 ( a) VRT 位: 有效标志位,表示寄存器内容和芯片内部 RAM 有效。 若寄存器和芯片内部 RAM内容有效,该位为“ 1”;若为“ 0”,就说明内部电池即将耗尽。 该寄存器被读后,该位自动置“ 1”。 ( b) BIT6~BIT0 位:保留位。 所读的数值恒 为 0。 ( 6) DS12887/DS12C887 的中断和更新周期 寄存器 A 中 UIP 位为“ 1”时,芯片处于更新周期,更新周期每秒钟产生一个,表示芯片处于正常工作状态。 微处理器在更新周期内不能读芯片时标寄存器的内容,因为此时其处于更新阶段,得不到确定的数据。 更新周期有以下几种基本的功能: 1刷新时标寄存器的内容; 2将秒时标寄存器的内容加 1; 3检查除此以外的时标寄存器有无溢出(若有溢出,则日、月、年应进位) 4检查三个秒、分、时报警时标寄存器的内容与对应的内容是否相等的。 (若相符,则寄存器 C的 AF=“ 1”;若报警时,时标寄存器为 COH~FFH,就处于不关心状态。 ) 11 DS12887/DS12C887 有两种方案可以在更新周期内避开访问时标寄存器: 1.根据寄存器 A 中的 UIP 位来判断芯片是否处于更新周期。 芯片开始其更新周期是在 UIP 位从低变高后 244us。 当 UIP 位为低电平时,在其后的 244us 内就可以读取时标信息;如果 UIP 位为高电平,就暂停读取数据。 2.更新周期结束发出的中断。 更新周期结束后发生中断申请,其后有 998ms 的时间。 程序可以将时标数据读取存放在芯片内部的 RAM 中,此 RAM 为不掉电 RAM。 此方法读取有效数据必须在 998ms 之内完成。 寄存器 C 中的 IRQF 位应在离开中断服务子程序前清除。 ( 7) DS12887/DS12C887 的编程方法 ( a) DS12887/DS12C887 初始化方法 该芯片可以连续工作,不是每次都需要初始化的,包括系统复位在内。 初始化的时候,芯片内部不进行更新周期操作。 所以,应先将寄存器 B 中的 SET 位置“ 1”,接下来对 00H~09H 状态寄存器 A和时标参数寄存器进行初始化。 然后对寄存器 C 中的更新周期结束中断标志位 UF、报警中断标志位 AF、中断标志位 PF 进行清除。 状态寄存器口通过寄存器 D 中的 VRT 位来读取,读完将自动置“ 1”,芯片开始工作是在状态寄存器 B 的 SET 位置“ 0” 之后。 ( b) 闹钟单元的使用方法 芯片共有 3 个闹钟单元,即时闹钟单元、分闹钟单元、秒闹钟单元。 若时钟中断允许,那么每天到时间会产生中断申请信号,只需在里面写入闹钟时间值即可。 对于这种方法,闹钟单元每天仅提供一次中断信号。 还有一种方法,就是将“不关心码”写入闹钟单元。 若产生中断的时间间隔为 1 小时,就需将 COH~FFH之间的数据写入时闹钟单元;若产生中断的时间间隔为 1 分钟,就需将 COH~FFH 之间的数据写入时、分闹钟单元;若产生中断的时间间隔为 1 秒钟,就需将 FFH 的数据写入时、分、秒闹钟单元。 以上方式产生中断只能在整点、整分或整秒。 可以通过软件来调整定时时间间隔,因为控制系统所要求的时间间隔不一定是整数。 ( c) DS12887/DS12C887 的编程 芯片状态寄存器按以下方法设置参数: 1.采用 ( 00100000)的时钟频率,且禁止脚 SQW 输出,此时状态寄存器 A 置 20H。 2.禁止除报警中断以外的其他中断,置 24 小时模式,用 BCD 码表示时标寄存器的内容,禁止夏令时服务和方波输出。 当报警时标处于不关心状态时,时报警寄存器置 FFH,即中断申请的时间间隔为 1 秒到 59 分钟。 、 LCD 显 示模块 ( 1)简单介绍 液晶显示是 LCD1602,且 LCD1602为 工业字符型液晶, LCD1602可以 同时显示 32个字符即 16x02。 (为了方便表示,在接下来的文章中高电平用“ 1”表示,低电平用“ 0”表示。 ) 1602字符型液晶就是 1602液晶,这是一种点阵型液晶模块,且专门用来显示数字、符号、字母等。 若干个点阵字符位 5X7或者 5X11组成点阵型液晶模块, LCD1602是无法完美的显示图形的,因为每个点阵字符位都能显示一个字符,且每位之间有一个点距的间隔即字符间距,同理,行间距即为每行之间的间隔。 1602LCD 可以显示两行,每行的液晶模块有 16个字符, LCD1602显示的内容为 16X2。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。