学单片机 https://bbs.21ic.com/?910482 [收藏] [复制] [RSS]

日志

51测转速(请指教)

已有 704 次阅读2012-11-16 11:03 |系统分类:单片机| 51测转速

#include <reg51.h>            //11.0592


#define  uchar unsigned char
#define  uint  unsigned int


bit   bg;
uint  xu,hu,bu;
uchar dis[]={0x00,0x00,0x00,0x00};
uchar code table[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};


//共阳码表


 


void delayms(uchar ms)    //延时
{
   uchar i;
   while(ms--)
   {
    for(i=0;i<120;i++)
 ;
    }
}


void display(void)    //显示
{
  char k;
  char j=0x7f;
  for(k=0;k<4;k++)        
  {
    P2=0xff;
    P0=table[dis[k]];
    P2=j;
    delayms(3);
    j=(j>>1)|0x80;
  }
}


void int0() interrupt 0   //霍尔转速引入计数加一
{
 xu++;
}



void time0() interrupt 1   //一分钟定时
 {
   TH0=0xdc;
   hu++;
   if(hu>=6000)
    {
  hu=0;bu=xu;xu=0;bg=1;
 }
 }


   
  
  


void main()
{
   delayms(100);
   TMOD=0x01;TH0=0xdc;TL0=0;IT0=1;IE=0x83;TR0=1;
   while(1)
   {
     if(bg)
     {
       bg=0;
       dis[3]= bu/1000;
       dis[2]= (bu%1000)/100;
       dis[1]= (bu%100)/10;
       dis[0]= bu%10;
     }
     display();
     delayms(3);



   }
              
 }


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)