下载到单片机时,什么也不显示。不知是什么情况?请高手指教,小妹感激不尽
代码:#include<reg52.h> //STC89C52
#define uint unsigned int
#define uchar unsigned char
sbit v1=P1^1;
sbit v3=P1^3;
sbit v5=P1^5;
uint i,j,s;
uchar s1,s2;
uchar k1,k2,k3,k4;
uchar code a[]={0x02,0x9e,0x24,0x0c,0x98,
0x48,0x40,0x1e,0x00,0x08};//0到9
void delay(uint x); //延时
void xunhuan(); //4位数码管显示
void mian()
{
TMOD=0x11; //设置定时器0,定时器1
TH0=(65536-50000)/256; //装初值为12M晶振中断50ms
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
while(1) //扫描4位数码管
{
xunhuan();
}
}
void xunhuan() //四位数码管动态显示
{
P2=0x10; //个位
P0=a[k4];
delay(1);
P0=0xff;
P2=0x20; //十位
P0=a[k3];
delay(1);
P0=0xff;
P2=0x40; //百位
P0=a[k2];
delay(1);
P0=0xff;
P2=0x80; //千位
P0=a[k1];
delay(1);
P0=0xff;
}
void ding1() interrupt 1 //定时器0的工作方式1
{
TH0=(65536-50000)/256; //重装初值
TL0=(65536-50000)%256;
s1++;
if(s1==4) //中断200ms
{
s1=0;
v1=~v1; //位取反
v3=~v3;
v5=~v5;
}
}
void ding2() interrupt 3 //定时器1的工作方式3
{
TH1=(65536-50000)/256; //重装初值
TL1=(65536-50000)%256;
s2++;
if(s2==20) //中断1s
{
s2=0;
s++;
if(s==6000) //计数到5999就回到0
{
s=0;
}
k1=s/1000; //千位
k2=s%1000/100; //百位
k3=s%1000%100/10; //十位
k4=s%1000%100%10; //个位
}
}
void delay(uint x) //延时
{
for(i=x;i>0;i--)
for(j=120;j>0;j--);
}
有三个警告:*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?MIAN?TEXT2
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: MAIN
MODULE: C:KEILC51LIBC51S.LIB (?C_INIT)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: MAIN
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>