关于初学者两个简单的程序疑惑。

2019-07-15 20:33发布

     题目是这样的,利用单片机P1口接8个发光二极管,P3.1接一个开关,编程实现当开关动作一次时,单片机进行一次加1运算,并在对应的二极管上显示。
                       我开始理解错了题目的意思,以为只要实现发光二极管逐个亮就行了,但实际题目要求的是实现用二极管亮为1灭为0的形式,通过一个开关实现0000 0000--1111 1111 的展示,以二进制加法的形式表现出来。希望大家能给点提示。刚学单片机,多多关照了。附带一个问题 请大家帮忙看看这个程序哪里错了,也是关于单片机c51程序设计的。

  #include<reg52.h>
  unsigned char Tab[]={0xC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
  unsigned int x;
  sbit P34=P3^4;
  void delay1ms(unsigned int i)
{       

  unsigned char j;
  while (i--)
  {
    for (j=0;j<115;j++)
        {
          ;
       
        }


  
  }



}
         void Display (unsigned char x )


   {
             P2=0XDF;
          P0=Tab[x/100];
            
         
          delay1ms (5);
          P2=0XBF;
          P0=Tab [x%10];
          delay1ms (5) ;
          P2=0XFF;
                 
        }


          void main (void)
          {
          
           TMOD=0X06;
           EA=1;
           ET0=1;
           EX0=1;
           IT0=1;
           TR0=1;
           TH0=TL0=256-1;
           while (1);
           {
                   Display (x);
          
           }
          
          
          }


         
          voidclear 0;
          interrupt 0;
          {
            X=0;
          
          
          }
   
                void key_counter()
                        
                                 interrupt        1;
                                 {
                                   if(P34==0)
                                     {
                                           delay1ms(20);
                                           if (P34==0)




                                         {
                                           delay1ms(20);
                                           if(P34==0)
                                           {
                                             x=(x+1)%100;
                                           }
                                     }
                                          
                                        }
                                 
                                 
                                }
                       


   
  


。。




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