proteus仿真无现象,大神们,帮帮忙,我只有3个积分,都给你们了

2019-07-18 10:18发布

源程序如下:#include<reg52.h>#defineuchar unsigned char#defineuint unsigned intvoiddiyi(); //   函数声明voidxianshi();//函数声明voidpanduan();//函数声明voiddelay(uchar z);//   函数声明uchart=0,i,j,temp,b; //定义相关变量ucharcode at[]={0xe0,0xd0,0xb0,0x70};ucharcode as[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};ucharcode bs[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};uchara[50];//数组定义voidmain()   //主函数{   diyi();   EA=0;   //调用定义函数      while(1)     {      panduan();  //调用判断函数         xianshi();//调用显示函数     }}voiddiyi()   //定义定义子函数{  P2=0xbf; P0=0xbf;    TMOD=0x01;  TH0=(65536-50000)/256;  TL0=(65536-50000)%256;  EA=1;  ET0=1;  TR0=1;}voidexer1() interrupt 1  //定义定时器/计数器子函数{  uchar t1;  TH0=(65536-50000)/256;  TL0=(65536-50000)%256;   t1++;     if(t1==20)     {       t1=0;  t++;     if(t==99)      t=0;     }}voidxianshi()//定义显示子函数            {P2= 0xdf; P0 =bs[0]; P2=0x1f; P0=0xff; P2 =0xff; P0 =as[t%10]; P2=0x1f;P0=0x00;delay(3);  P2= 0xdf; P0 =bs[1]; P2=0x1f; P0=0xff; P2 =0xff; P0 =as[(t/10)%10]; P2=0x1f;P0=0x00;delay(3);      }voiddelay(uchar z)//延时子函数{   uchar i,j;    for(i=0;i<z;i++)     for(j=0;j<110;j++);}voidpanduan()    //判断子函数{  P3=0xfe;           delay(5);          temp=P3;         temp=temp&0xf0;        if(temp!=0xf0)           {            delay(5);              if(temp!=0xf0)                         {                  P2 = 0xc0;P0 =bs[4]; P2=0x00;P0=0xff;P2 =0xe0;P0 =0xff;P2=0x00;P0=0x00;delay(3);                while(P3!=0xfe);   //判断是否有键按下及格键功能                  if(temp==at[0])                                                { EA=1;t=0;i=0;j=0; }                  if(temp==at[1])                  {                      if(i<52)                         a=t;                          i++;
                  }                  if(temp==at[2])                  {                    if(b==1)                    {                       if(j<52) t=a[j];                       j++; }                  }                     if(temp==at[3])                  {                     EA=0;t=0; i=0;j=0;                  }                   P2 = 0xc0;P0 =bs[4]; P2=0x00;P0=0xff;P2 =0xe0;P0 =0xff;P2=0x00;P0=0x00;delay(3);                   }            }     P3=0xfd;           delay(5);          temp=P3;         temp=temp&0xf0;        if(temp!=0xf0)           {            delay(5);              if(temp!=0xf0)                         {                  P2 = 0xc0;P0 =bs[4]; P2=0x00;P0=0xff;P2 =0xe0;P0 =0xff;P2=0x00;P0=0x00;delay(3);                while(P3!=0xfd);   //判断是否有键按下及格键功能                  if(temp==at[0])                                                { EA=0; b=1;}                   P2 = 0xc0;P0 =bs[4]; P2=0x00;P0=0xff;P2 =0xe0;P0 =0xff;P2=0x00;P0=0x00;delay(3);                   }            }}
QQ截图20161105161237.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。