急!!!!高分求助 51单片机汇编语言或C语言实现秒表的程序。希望能在每个程序后面注释,要不看不懂= =!

设计内容:智能秒表
用四位LED数码管制作带小数显示的秒表,前两位显示整数部分(秒),后两位显示小数部分(百分之一秒)。
所设计的秒表最大计时时间为99秒99。
开始时,数码管显示“00. 00”,表明从0开始计时。

本智能秒表有两种时间计时模式。(注意:模式1与模式2用同一个程序实现,即当程序下载至单片机芯片后,只需要按下相应按键,该秒表可工作在任意一种模式下)
模式1 累积计时模式:
(1)按按键1可实现秒表开始、停止、再开始、再停止计时(时间累计);
(2)计时完毕,按按键2计时归零。
模式2 间隔计时模式:
(1) 按按键3开始计时;
(2) 按按键4一次,稳定显示当前时间,显示时间为5秒。5秒后秒表将继续实时显示时间。(例如在3秒钟时,按下按键4,秒表显示“3秒”,显示5秒钟后,秒表从“8秒”开始继续实时显示。显示5秒是为了方便记录当时时间);
(3) 在下一个记时时刻,再按按键4记录此时相关信息(如(2)所示要求),如此重复;
(4) 当按按键3时,停止记时,计时完毕;
(5) 按按键4键计时归零。
程序思路(必须按照这样的流程写)
用C语言或者汇编语言写
Main()
{
初始化(定时器工作方式、变量初值ti_10ms=0,ti_s=0);
While(1)
{
判断按键键值
If(1、2键);引脚高低电平
{
模式1处理
}
If(3、4键)
{
模式2处理
}
显示下一位数码管(显示Ti_10ms,Ti_s)
}
}
模式1情形:
判断键值方法
Key1:按下一次Key1,Key1=1,再按下一次Key1=0
Key2:按下一次Key2,Key2=1
If(key1=1)
{
启动定时器
Key2=0
}
If(key1=0)
定时器停止计时
If(key2=1)
{
时间值清0
}
10ms中断处理
中断子程序:Ti_10ms,Ti_s
Ti_10ms=Ti_10ms+1
T -T救命啊 明天就要教工并答辩了 记得注释啊

空城,看来没人鸟呢……
╮(╯_╰)╭
温馨提示:答案为网友推荐,仅供参考