母或超出时间的范围,即程序自动清屏并重新显示“:”要求重新输入。当在输入时,需要重
新设置时间,就按下 键。当系统时间到了设定的时间,系统就会显示“%'并响铃。此时按
下 ! 键返回到主程序。
四、系统源程序关键代码实现及必要注释
$()( *+*,) -定义数据段
-..........显示时钟的初始化数据段内容.........
/01) *234 - 端口地址
/1*+( *23(4 -状态寄存器 ( 地址
30$()*/5 *234 -更新标志位
/* *234 -秒单元地址
/6, *234 -分单元地址
/431 *23#4 -时单元地址
*,$ $7 -秒保存单元
6,3)* $7 -分保存单元
431 $7 -时保存单元
-............秒表的初始化数据段内容...........
88 -分位
88
8"8
9 88 -秒位
9 88
8"8
9 88 -百分秒位
9 88
9:% !: ;. -计数值初始化
-..........闹钟功能的初始化数据段内容.........
%< 8";8 -需要显示的提示输入字符
串8"8
%< 8%;8 -需要显示的提示结束字符
串8%8
$()( *,$
-.................定义代码段..................
$* *+*,)
(3* "$*&$"$()(
9=
: 9 -寄存器进栈的宏定义
:
:
: 9
:
9 -寄存器出栈的宏定
义
9
)(1)" >(?&$()( -设置数据段寄存器
>$&(?
:" >(@&/1*+( -判断是否是可读实
时钟
3)/01)&(@ -准备读状态寄存器
A0;B
6,(@&/01)B -准备读端口
)*)(@&30$()*/5 -检测更新标志
A,C360 -如果不可读则继续检测
-把 中时、分、秒的值分别存到对应的保存单
元中
>(@&/*
3)/01)&(@
A0;B
6,(@&/01)B -读秒值
>*,$&(@ -保存秒值
>(@&/6,
3)/01)&(@
A0;B
6,(@&/01)B -读分值
>6,3)*&(@ -保存分值
>(@&/431
3)/01)&(@
A0;B
6,(@&/01)B -读时值
>431&(@ -保存时值
-................调用子程序 及 把时、
分、秒及分隔符“:”输出...................
99/9 -显示时间前清屏
99%/9: -置光标于屏幕中间