```c
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar dd[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
//??????
uchar shi=9,fen=59,miao=55; //?????
uchar shi1=10,fen1=5,miao1=0;//?????
uchar yi,er,san,si,wu,liu,qi,ba;
uchar count=0;//????
sbit led=P1^0; //LED??
sbit buzz=P1^1;//???
sbit k1=P1^2; //????
sbit k2=P1^3; //?
sbit k3=P1^4; //?
sbit k4=P1^5; //?? ?????
sbit k5=P1^6; //?? ?????
sbit k6=P1^7; //ÇåÁã
bit k1_flag=0;
uchar k4_flag=0,k5_flag=0;
uchar num;
void delay1ms() //@11.0592MHz
{
unsigned char i, j;
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
void delayms(uint xms) // ???? ???????
{
uint m,n;
for(m=xms;m>0;m--)
for(n=110;n>0;n--);
}
//???????
void display(uchar yi,uchar er,uchar san,uchar si,uchar wu,uchar liu,uchar qi,uchar ba)
{
P3=0x01; //??
P2=dd[yi]; //??
delay1ms();
P3=0x02;
P2=dd[er];
delay1ms();
P3=0x04; //??
P2=dd[san]; //??
delay1ms();
P3=0x08;
P2=dd[si];
delay1ms();
P3=0x10; //??
P2=dd[wu]; //??
delay1ms();
P3=0x20;
P2=dd[liu];
delay1ms();
P3=0x40; //??
P2=dd[qi]; //??
delay1ms();
P3=0x80;
P2=dd[ba];
delay1ms();
}
void soundTime(int time)//???????? ???????????
{
P1 &= ~(1<<1); // ?P1.1??
delayms(time);
P1 |= (1<<1); // ?P1.1??
}
void Timer0Init(void) //100??@11.0592MHz
{
TMOD = 0x01; //???????
TL0 =(65536-50000)%256; //??????
TH0 =(65536-50000)/256; //??????
TF0 = 1; //??TF0??
TR0 = 1; //???0????
EA=1;
ET0=1;
}
void serviceTimer0Init() interrupt 1
{
TL0 =(65536-50000)%256; //??????
TH0 =(65536-50000)/256;
count++;
if(count==20) //20*50000=1?
{
count=0;
miao++;
}
if(miao==60) //
{
miao=0;fen++;
}
if(fen==60) //
{
fen=0;shi++;
}
if(shi==24)
{shi=0;}
if((shi==shi1)&&(fen==fen1)&&(miao==miao1))
{
led=~led;buzz=0;
}
else
{
buzz=1;led=0;
}
}
void keys()
{
if(k1==0)
{
delay1ms();
if(k1==0) //
{
k1_flag=~k1_flag;
if(k1_flag==0)
{ET0=1;}
}while(k1==0);
}
if(k2==0)
{
delay1ms();
if(k2==0) //
{
if(k4_flag==1)
{shi++;if(shi==24){shi=0;}}
if(k4_flag==2)
{fen++;if(fen==60){fen=0;}}
if(k4_flag==3)
{miao++;if(miao==60){miao=0;}}
if(k5_flag==1)
{shi1++;if(shi1==24){shi1=0;}}
if(k5_flag==2)
{fen1++;if(fen1==60){fen1=0;}}
if(k5_flag==3)
{miao1++;if(miao1==60){miao1=0;}}
}while(k2==0);
}
if(k3==0)
{
delay1ms();
if(k3==0) //
{
if(k4_flag==1)
{shi--;if(shi==-1){shi=23;}}
if(k4_flag==2)
{fen--;if(fen==-1){fen=59;}}
if(k4_flag==3)
{miao--;if(miao==-1){miao=59;}}
if(k5_flag==1)
{shi1--;if(shi1==-1){shi1=23;}}
if(k5_flag==2)
{fen1--;if(fen1==-1){fen1=59;}}
if(k5_flag==3)
{miao1--;if(miao1==-1){miao1=59;}}
}while(k3==0);
}
if(k4==0)
{
delay1ms();
if(k4==0) //
{
ET0=0;
if(k1_flag==0)
{
k4_flag++;
if(k4_flag==4)
{ET0=1;k4_flag=0;}
}
}while(k4==0);
}
if(k5==0)
{
delay1ms();
if(k5==0) //
{
ET0=0;
if(k1_flag==1)
{
k5_flag++;
if(k5_flag==4)
{k5_flag=0;}
}
}while(k5==0);
}
if (k6==0)
{
delayms(10); //10ms
if (k6==0){
miao=0;
while(!k6); //??????????,??????????
}
}
void main()
{
yi=1,er=2,san=3,si=4,
wu=5,liu=6,qi=7,ba=8;
Timer0Init();
led=0;buzz=1;
while(1)
{
if(k1_flag==0)
{
yi=shi/10,er=shi%10,san=10,si=fen/10,
wu=fen%10,liu=10,qi=miao/10,ba=miao%10;
}
else if(k1_flag==1)
{
yi=shi1/10,er=shi1%10,san=10,si=fen1/10,
wu=fen1%10,liu=10,qi=miao1/10,ba=miao1%10;
}
keys();
display(yi,er,san,si,wu,liu,qi,ba);
soundTime(500);
}
我用的AT89C52单片机进行仿真,但是以上代码在keil5里面编译失败,显示主函数errorC141:syntax error near 'void',expected'_asm'.我问老师他说注意不要用逗号,我有点懵,不晓得怎么办,以下是Proteus仿真图,请各位大佬教我应该如何更正,很急!!!期末要g了
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/698808303186187.png "#left")
链接:https://pan.baidu.com/s/1C84BuTVvYqKI9Z1ceOWlIA?pwd=a1jn
提取码:a1jn