急!急!哪位单片机高手帮忙实现下面这个秒表程序。对着图写出才、C语言代码实现秒表功能,最后有注释会加

如题所述

你看看这个程序可以吗?

软件版本:Keil uV3

硬件版本:HP51-V6

*/

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

char code d[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管段码

unsigned char a=99;

sbit  led1=P2^0; //位码

sbit  led2=P2^1; //位码

sbit  key1=P3^0; //按键设置,开始计时

sbit  key2=P3^1; //按键设置,暂停计时

bit i;

char h;

void main(void)

{

EA=1;

ET0=1;

ET1=1;

TMOD=0x11;            //设定定时器工作方式

TL0=0;

TH0=0;

TR0=1;   // 开定时器

while(1)

{

if(!key1)    //判断按键1是否按下

{

while(!key1); //等待按键松开

TR1=1;

}   //启动 

        if(!key2)   //判断按键2是否按下

        TR1=0;      //暂停

    }

}

void  inter1(void) interrupt 1 using 0

{

TR0=0;

TL0=0;

TH0=0xff;

i=~i;

if(i)

{

led1=1;

        P0=d[a/10];

        led2=0;

}

else

{

led2=1;

        P0=d[a%10];

        led1=0;

}

TR0=1;

}

void  inter2(void) interrupt 3 using 1

{

TR1=0;

TH1=0x3c; //定时器1定时50ms

TL1=0xb0;

if(h==20) //20个50ms即为一秒种

{

h=0;

if(a==0)

a=99;

else

a=a-1;

}

else

h++;

TR1=1;

}

在keil软件中的编译环境

温馨提示:答案为网友推荐,仅供参考