***概述***
這個(gè)程序示例涉及到關(guān)于實(shí)時(shí)時(shí)鐘的兩種特殊指令:讀和寫(xiě)日期及時(shí)鐘時(shí)間。
為了進(jìn)行這些操作,需要有如下結構的8字節緩沖區:
字節0: 年(00-99) 字節4: 分(00-59)
字節1: 月(1-12) 字節5: 秒(00-59)
字節2: 日(1-31) 字節6: 未分配
字節3: 時(shí)(00-24) 字節7: 星期(1-7=Su-Sa)
為了讀或寫(xiě)方便,這些數據用BCD碼存儲。當操作開(kāi)關(guān)I0.0為1時(shí),就將預定日期和時(shí)間寫(xiě)入實(shí)時(shí)時(shí)鐘。為了顯示當前的秒值,將其值拷貝到輸出字節QB0.當I0.1=1時(shí),則用BCD碼顯示;當I0.1=0時(shí),則用二進(jìn)制碼顯示。
***程序和注釋***
通過(guò)按輸入開(kāi)關(guān)I0.0,可調用子程序0。這個(gè)子程序按照要求的時(shí)間和日期,預先將其值置入VB100到VB107這8個(gè)字節,然后用TODW指令,將此設置傳送給實(shí)時(shí)時(shí)鐘
每個(gè)周期都讀出實(shí)時(shí)時(shí)鐘的值,這些數據以BCD碼形式(4位代表0-9的數字)存儲在VB400到VB407這8個(gè)字節中。如果輸入I0.1為1,這些值就被直接拷貝到輸出字節QB0,以供顯示。
如果輸入開(kāi)關(guān)I0.1為0,將數據從VW404拷貝到VW204,再將包含分鐘值的VW204清零。這一步是必須的,因為把秒值從BCD碼的形式轉換成二進(jìn)制碼的形式,只能按字來(lái)轉換現時(shí)的二進(jìn)制碼的秒值被傳輸到輸出字節QB0,以供顯示。
具體程序(有詳細中文注釋)可以下載直接調試:
tip0008.zip(6.27KB)