
大家帮我看看这个单片机的c语言编程吧,不知道怎么的用keil编译总是说中断服务程序附近有错误,谢谢啦!
#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintucharcodetable_dula[]=...
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table_dula[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar code table_wela[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
sbit dula=P2^6;
sbit wela=P2^7;
uchar shi,fen,miao;
uchar count=0;
void delay(uint z)
{
uint x;
uchar y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void init()
{
dula=1;
P0=table_dula[8];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[1];
wela=0;
delay(5);
dula=1;
P0=table_dula[8];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[2];
wela=0;
delay(5);
dula=1;
P0=table_dula[8];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[3];
wela=0;
delay(5);
dula=1;
P0=table_dula[8];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[4];
wela=0;
delay(5);
dula=1;
P0=table_dula[8];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[5];
wela=0;
delay(5);
dula=1;
P0=table_dula[8];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[6];
wela=0;
delay(5);
}
void disp_shumaguan()
{
dula=1;
P0=table_dula[shi/10];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[1];
wela=0;
delay(5);
dula=1;
P0=table_dula[shi%10];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[2];
wela=0;
delay(5);
dula=1;
P0=table_dula[fen/10];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[3];
wela=0;
delay(5);
dula=1;
P0=table_dula[fen%10];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[4];
wela=0;
delay(5);
dula=1;
P0=table_dula[miao/10];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[5];
wela=0;
delay(5);
dula=1;
P0=table_dula[miao%10];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[6];
wela=0;
delay(5);
}
void algorithm()
{
count++;
if(count == 20)
{
count = 0;
miao++;
if(miao == 60)
{
fen++;
miao = 0;
if(fen == 60)
{
shi++;
fen = 0;
if(shi == 24)
{
shi = 0;
}
}
}
void timer0init()
{
TOMD=0x01;
TH0=(65536-46083)/256;
TL0=(65536-46083)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
init();
timer0init();
while(1)
{
disp_shumaguan();
}
}
void timer0() interrupt 1
{
TH0=(65536-46083)/256;
TL0=(65536-46083)%256;
algorithm();
} 展开
#define uchar unsigned char
#define uint unsigned int
uchar code table_dula[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar code table_wela[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
sbit dula=P2^6;
sbit wela=P2^7;
uchar shi,fen,miao;
uchar count=0;
void delay(uint z)
{
uint x;
uchar y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void init()
{
dula=1;
P0=table_dula[8];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[1];
wela=0;
delay(5);
dula=1;
P0=table_dula[8];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[2];
wela=0;
delay(5);
dula=1;
P0=table_dula[8];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[3];
wela=0;
delay(5);
dula=1;
P0=table_dula[8];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[4];
wela=0;
delay(5);
dula=1;
P0=table_dula[8];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[5];
wela=0;
delay(5);
dula=1;
P0=table_dula[8];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[6];
wela=0;
delay(5);
}
void disp_shumaguan()
{
dula=1;
P0=table_dula[shi/10];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[1];
wela=0;
delay(5);
dula=1;
P0=table_dula[shi%10];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[2];
wela=0;
delay(5);
dula=1;
P0=table_dula[fen/10];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[3];
wela=0;
delay(5);
dula=1;
P0=table_dula[fen%10];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[4];
wela=0;
delay(5);
dula=1;
P0=table_dula[miao/10];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[5];
wela=0;
delay(5);
dula=1;
P0=table_dula[miao%10];
dula=0;
P0=0xff;
wela=1;
P0=table_wela[6];
wela=0;
delay(5);
}
void algorithm()
{
count++;
if(count == 20)
{
count = 0;
miao++;
if(miao == 60)
{
fen++;
miao = 0;
if(fen == 60)
{
shi++;
fen = 0;
if(shi == 24)
{
shi = 0;
}
}
}
void timer0init()
{
TOMD=0x01;
TH0=(65536-46083)/256;
TL0=(65536-46083)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
init();
timer0init();
while(1)
{
disp_shumaguan();
}
}
void timer0() interrupt 1
{
TH0=(65536-46083)/256;
TL0=(65536-46083)%256;
algorithm();
} 展开
展开全部
你程序中的子程序
void algorithm()
{
count++;
if(count == 20)
{
count = 0;
miao++;
if(miao == 60)
{
fen++;
miao = 0;
if(fen == 60)
{
shi++;
fen = 0;
if(shi == 24)
{
shi = 0;
}
}
}
大括号数目不平衡
这是修改以后的:
void algorithm()
{
count++;
if(count == 20)
{
count = 0;
miao++;
if(miao == 60)
{
fen++;
miao = 0;
if(fen == 60)
{
shi++;
fen = 0;
if(shi == 24)
{
shi = 0;
}
}
}
}
}
另外你程序中的
void timer0init()
{
TOMD=0x01;
TH0=(65536-46083)/256;
TL0=(65536-46083)%256;
EA=1;
ET0=1;
TR0=1;
}
子函数中
是TMOD不是TOMD
我就修改了这两处在我的keil2上运行0错误0警告
void algorithm()
{
count++;
if(count == 20)
{
count = 0;
miao++;
if(miao == 60)
{
fen++;
miao = 0;
if(fen == 60)
{
shi++;
fen = 0;
if(shi == 24)
{
shi = 0;
}
}
}
大括号数目不平衡
这是修改以后的:
void algorithm()
{
count++;
if(count == 20)
{
count = 0;
miao++;
if(miao == 60)
{
fen++;
miao = 0;
if(fen == 60)
{
shi++;
fen = 0;
if(shi == 24)
{
shi = 0;
}
}
}
}
}
另外你程序中的
void timer0init()
{
TOMD=0x01;
TH0=(65536-46083)/256;
TL0=(65536-46083)%256;
EA=1;
ET0=1;
TR0=1;
}
子函数中
是TMOD不是TOMD
我就修改了这两处在我的keil2上运行0错误0警告

2025-08-04 广告
联系方式:13671592388上海实邦电子科技有限公司是一家专业电子产品开发与ODM/OEM/电子制造服务(EMS)企业,具有多年基于消费电子产品、工业自动化产品、机电控制产品的PCBA开发与生产经验,更有多年的单片机开发及工业控制电路设...
点击进入详情页
本回答由上海实邦电子科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询