在线等!!!!求C语言高手解释 关于秒表的程序注释

看不懂,。。。求这个秒表程序的每个程序段后的C语言注释,尤其是延时和定时器那几段! 明天要答辩了 ,泪奔。。。。
#include<reg51.h>
sbit L1=P3^0; //定义数码管阳级控制脚(千位)
sbit L2=P3^1; //定义数码管阳级控制脚(百位)
sbit L3=P3^2; //定义数码管阳级控制脚(十位)
sbit L4=P3^3; //定义数码管阳级控制脚(个位)
sbit key1=P1^7; //暂停,开始
sbit key2=P1^6; //清零
unsigned long int ti_10ms=0; //置变量初值为0
unsigned char seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管0-9段
//----------延迟------------
void delay()
{
unsigned int i=100;
while(i--);
}
//-----------定时器-----------
void ds0() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
ti_10ms++;
if(ti_10ms>=9999)
{ti_10ms=0;}
}
//------------主程序--------
void main()
{
//--------定时器初始化---------
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET0=1;
PT0=1;
TR0=0;
TMOD=0x01;
//------循环-------
while(1)
{
if(key1==0)
{TR0=~TR0;while(key1==0);}
P2=seg[ti_10ms%10000/1000]; L1=0;delay();L1=1;
P2=seg[ti_10ms%1000/100]+0x80; L2=0;delay();L2=1;
P2=seg[ti_10ms%100/10]; L3=0;delay();L3=1;
P2=seg[ti_10ms%10]; L4=0;delay();L4=1;
if(key2==0)
{ti_10ms=0;}
}

//----------延迟------------
void delay()
{
unsigned int i=100;
while(i--); //这条语句等价于 while(i) { i--; }
//首先判断i是否为0,如果不为0就将i减1,然后再判断,如此循环,直到i为0执行下一条语句
}
//-----------定时器-----------
void ds0() interrupt 1
{
TH0=(65536-10000)/256; //寄存器TH0初始值,16位整数的高8位
TL0=(65536-10000)%256; //寄存器TL0初始值,16位整数的低8位
//其实定时时间确定后,这两个值都是常数,可以把他们计算出来赋值,但这样写是为了一目了然,且定时时间改变后可以直接修改10000就行了,其实用一个宏定义更方便
// #define TIME 10000
// TH0=(65536-TIME)/256;
// TL0=(65536-TIME)%256;
ti_10ms++;
if(ti_10ms>=9999)
{ti_10ms=0;} //每次中断进来后ti_10ms就加1,当等于9999即中断10000次重新赋0
}
//--------定时器初始化---------
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET0=1;
PT0=1;
TR0=0;
TMOD=0x01;
//设置定时器的工作模式等等,查看定时器的各个寄存器的每一位就知道什么意思了
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜