求大侠解释一下,为什么会出现这种问题....Target not created?

2019-07-15 10:38发布

#include "reg51.h"
#include "intrins.h"
#define SMGXSK         P0               //数码管接受段选端口;
#define SMGWX         P2               //位选端口;
#define u8 unsigned char
sbit rst=P3^5;
sbit SCLK=P3^6;
sbit IO=P3^4;
u8  code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段码;
u8 code b[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d}; //读出秒分时日月周年地址
u8  code a[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c}; //写入地址秒分时日月周年的地址
u8 code time[7] = {0,0,0x24,0x07,0x05,0x06,0x16}; //存入时间;        
u8 readtime[7]={0};     //定义保存时间数组;
u8 ledduan[8]={0};      //定义保存段选数组;
void delay(u8 t)
{
   u8 i,j;                                  //延时
   for(i=t;i>0;i--)
    for(j=110;j>0;j--);
}
/************* 写入数据***************/
void writedata(u8 addr,u8 dat)
{
   u8 i;
   rst=0;
   _nop_();
   SCLK=0;
   _nop_();
   rst=1;
   _nop_();                                    
    for(i=0;i<8;i++)
        {
          IO=addr & 0x01;
          addr=addr>>1;
          SCLK=1;
      _nop_();
          SCLK=0;
      _nop_();
        }
    for(i=0;i<8;i++)
        {
          IO=dat & 0x01;
          dat=dat>>1;
          SCLK=1;
      _nop_();
          SCLK=0;
      _nop_();
        }        
        rst=0;
   _nop_();
}
/*********读出数据**************/
u8 readdata(u8 addr)
{
    u8 i,dat,dat1;
    rst=0;
    _nop_();
    SCLK=0;
    _nop_();                                    
    OE=1;
    _nop_();
     for(i=0;i<8;i++)
        {
          IO=addr & 0x01;
          addr=addr>>1;
          SCLK=1;
      _nop_();
          SCLK=0;
      _nop_();
        }
     for(i=0;i<8;i++)
        {
           dat=IO;
           dat=dat<<7;
           dat1=dat1>>1;
           dat=dat|dat1;
           SCLK=1;
       _nop_();
           SCLK=0;
       _nop_();            
        }
        rst = 0;
  •         _nop_();        //DS1302复位的稳定时间

        SCLK = 1;
        _nop_();
        IO = 0;
        _nop_();
        IO = 1;
        _nop_();         
        return dat;

}
/***********初始化时间******************/
void uint()
{
   u8 i;
   writedata(0x8e,0x00);           //关闭写保护;
   for(i=0;i<7;i++)
   {
      writedata(a,time);          //写入时钟寄存器器地址和时间;
   }
    writedata(0x8e,0x80);          //打开写保护;
}
void rdtm()
{
        u8 i;
        for(i=0;i<7;i++)
        {
        readtime=readdata(b);            //读取时间;
        }

}
/*************取时间的个位和十位***************/                 
void LEDDUAN()
{
       ledduan[0]=smgduan[readtime[0]&0x0f];                        //秒的个位;
        ledduan[1]=smgduan[readtime[0]/16];                                //秒的十位;
        ledduan[2]=0x40;
        ledduan[3]=smgduan[readtime[1]&0x0f];
        ledduan[4]=smgduan[readtime[1]/16];                           //分;
        ledduan[5]=0x40;
        ledduan[6]=smgduan[readtime[2]&0x0f];
        ledduan[7]=smgduan[readtime[2]/16];                          //时;           
}
/********数码管显示******************/
void display()
{
   SMGXSK=ledduan[0];                          
   SMGWX=0x00;
   delay(1);
   SMGWX=0xff;                                                               
   SMGXSK=ledduan[1];                       
   SMGWX=0x04;
   delay(1);
   SMGWX=0xff;
   SMGXSK=ledduan[2];                          
   SMGWX=0x08;
   delay(1);
   SMGWX=0xff;
   SMGXSK=ledduan[3];                          
   SMGWX=0x0c;
   delay(1);
   SMGWX=0xff;
   SMGXSK=ledduan[4];                          
   SMGWX=0x10;
   delay(1);
   SMGWX=0xff;
   SMGXSK=ledduan[5];                        
   SMGWX=0x14;
   delay(1);
   SMGWX=0xff;
   SMGXSK=ledduan[6];                          
   SMGWX=0x18;
   delay(1);
   SMGWX=0xff;
   SMGXSK=ledduan[7];                        
   SMGWX=0x1c;
   delay(1);
   SMGWX=0xff;

}                           
void main()
{
    uint();                         //初始化时间;
          while(1)
        {
          rdtm();
          LEDDUAN();
          display();
        }
网上查了查也没什么结果,所以特此跑来问问;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。