c1.c
#include <reg52.h>
#include "c2.h"
#define uchar unsigned char
unsigned char dm[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//段码
uchar num=0;xh=23; //全局变量,num控制定时器时间,xh为数码管显示初始值
sbit ge=P1^1; //个位
sbit shi=P1^0; //十位
void delay(); //延时函数
void main()
{
max(); //子函数
shi=0; //十位
ge=0; //个位
while(1) //循环
{
shi=1;
ge=0;
P2=dm[xh%10]; //赋值个位
delay();
ge=1;
shi=0;
P2=dm[xh/10]; //赋值十位
delay();
if(num%60==0)//定时判定3S
{
xh++; //自加
if(xh>=99)
{
xh=0;
}
}
}
}
void TR0_time() interrupt 1 //定时器中断函数
{
TH0=0x3c;//高四位
TL0=0xb0;//低四位,延时50ms
num++;
}
void delay()
{
unsigned int i,j;
for(i=0;i<1000;i++);
for(j=0;j<5000;j++);
}
c2.c
#include <REGX51.H>
#define uchar unsigned char
void max(void)
{
TMOD&#