各位大神,下面代码没错误,有2个警告,但实物仿真的时候出不来结果。求解

2019-07-15 07:24发布

#include <reg51.h>
#include <intrins.h>
#define uint  unsigned int
#define uchar unsigned char


sfr  PORTD         = 0x80;//ÊýÂë¹ÜÊä³ö¿Ú                //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.Êý¾Ý¶Ë¿Ú


sbit dula=P2^0;//ÊýÂë¹Ü¿ØÖƶÎѡλѡ
sbit weila=P2^1;


sbit k4=P3^3;
sbit k5=P3^4;


sbit beep=P2^3;


bit stop=1;
unsigned char j,k,sec,min,count=0;
unsigned time_count;


uchar  display_data[6];
uchar code led_dm[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
                      0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};


void delay(unsigned char i)
{
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}


void timetoseg()
{
        display_data[0]=led_dm[min/10];        
        display_data[1]=led_dm[min%10];
        display_data[2]=led_dm[sec/10];        
        display_data[3]=led_dm[sec%10];        
}


void saomiao()
{
  P0=0Xfe;
  weila=1;
  weila=0;
        P0=display_data[0];
  dula=1;
  dula=0;
  delay(5);
               
               
  P0=0Xfd;
  weila=1;
  weila=0;
                P0=display_data[1];
  dula=1;
  dula=0;
  delay(5);


  P0=0Xfb;
  weila=1;
  weila=0;
                P0=display_data[2];
  dula=1;
  dula=0;
  delay(5);
               
  P0=0Xf7;
  weila=1;
  weila=0;
                P0=display_data[3];
  dula=1;
  dula=0;
  delay(5);
               
                P0=0Xef;
  weila=1;
  weila=0;
                P0=display_data[4];
  dula=1;
  dula=0;
  delay(5);
               
                P0=0Xdf;
  weila=1;
  weila=0;
                P0=display_data[5];
  dula=1;
  dula=0;
  delay(5);
               
}

void start_timer()
{
EA=1;
ET0=1;
TR0=1;
}


void stop_timer()
{
EA=0;
ET0=0;
TR0=0;
}


void main()
{
TMOD=0x01;
TH0=0X4c;
TL0=0X00;


while(1)
{
if(k4==0)
{
delay(10);
if(k4==0)
{
while(k4==0);
{
if(stop)
        start_timer();
else
        stop_timer();
stop=~stop;
P1=0xff;
beep=1;
}
}
}


else if(k5==0)
{
delay(10);
if(k5==0)
{
while(k5==0);
{
stop_timer();
stop=1;
count=0;
time_count=0;
sec=0;
min=0;
P1=0xff;
beep=1;
}
}
}
if(stop)
{
count++;
if(count==100)
{
P1=~P1;
count=0;
}
}
else if(time_count==20)
{
count=0;
time_count=0;
sec++;
if(sec==60)
{
sec=0;
min++;
}
if(min==60)
{
min=0;


}
beep=0;
delay(10);
beep=1;
}


}
}


void timer0()interrupt 1
{
TH0=0x4c;
TL0=0x00;
time_count++;
}




0条回答

一周热门 更多>