***概述*** ---- 这个程序示例涉及到关于实时时钟的两种特殊指令:读和写日期及时钟时间。
---- 为了进行这些操作,需要有如下结构的8字节缓冲区: ---- 字节0: 年(00-99) 字节4: 分(00-59) ---- 字节1: 月(1-12) 字节5: 秒(00-59) ---- 字节2: 日(1-31) 字节6: 未分配 ---- 字节3: 时(00-24) 字节7: 星期(1-7=Su-Sa)
---- 为了读或写方便,这些数据用BCD码存储。当操作开关I0.0为1时,就将预定日期和时间写入实时时钟。为了显示当前的秒值,将其值拷贝到输出字节QB0.当I0.1=1时,则用BCD码显示;当I0.1=0时,则用二进制码显示。
***程序和注释***
---- 通过按输入开关I0.0,可调用子程序0。这个子程序按照要求的时间和日期,预先将其值置入VB100到VB107这8个字节,然后用TODW指令,将此设置传送给实时时钟
---- 每个周期都读出实时时钟的值,这些数据以BCD码形式(4位代表0-9的数字)存储在VB400到VB407这8个字节中。如果输入I0.1为1,这些值就被直接拷贝到输出字节QB0,以供显示。
---- 如果输入开关I0.1为0,将数据从VW404拷贝到VW204,再将包含分钟值的VW204清零。这一步是必须的,因为把秒值从BCD码的形式转换成二进制码的形式,只能按字来转换现时的二进制码的秒值被传输到输出字节QB0,以供显示。
|