大众牌BF的笔记 https://bbs.21ic.com/?627930 [收藏] [复制] [RSS]

日志

超声波测距

已有 653 次阅读2010-7-19 11:07 |个人分类:模拟电子|系统分类:模拟技术| 超声波, 测距

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned long int
uchar code table[]={ 0x18,0x7b,
0x2c,0x29,0x4b,0x89,0x88,0x3b,
0x08,0x09};
uint a,c,d,e,f,i,qian,bai,shi,ge,h;
sbit b=P1^0;
void display(uint qian,uint bai,
uint shi,uint ge);
void delay(uint z);
void main()  
{
    i=0;
    a=10;
 P2=0;
 P0=0xff;
 EA=1;
 EX0=1;
 IT0=0;
 while(1)
 {
   display(qian,bai,shi,ge);
   i++;
   if(i==10)
   { 
    i=0;
    a=50;
    TMOD=0x01;
    TH0=0;
    TL0=0;
    ET0=1;
    TR0=1;
  j=20;
  while(j--)
  {
  a=50000;
         while(a--)
    {
    b=0;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    b=1; 
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
   
      }
       }
   }
  }
  
}


void  waibu() interrupt 0
{
   EA=0;
   TR0=0;
   c=TH0;
   d=TL0;
   e=c*256+d;
   f=e*34/2000; 
   qian++;
   bai++;
   shi++;
   ge++;


   if(qian>9)
   {
    qian=0;
    bai=0;
    shi=0;
    ge=0;  


   } 
   EA=1;
 
}
void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void display(uint qian,uint bai,
uint shi,uint ge)
{
 P0=table[ge];
 P2=0x7f;
 delay(2);
 P0=table[shi];
 P2=0xbf;
 delay(2);
 P0=table[bai];
 P2=0xdf;
 delay(2);
 P0=table[qian];
 P2=0xef;#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned long int
uchar code table[]={ 0x18,0x7b,
0x2c,0x29,0x4b,0x89,0x88,0x3b,
0x08,0x09};
uint a,c,d,e,f,i,qian,bai,shi,ge,h;
sbit b=P1^0;
void display(uint qian,uint bai,
uint shi,uint ge);
void delay(uint z);
void main()  
{
    i=0;
    a=10;
 P2=0;
 P0=0xff;
 EA=1;
 EX0=1;
 IT0=0;
 while(1)
 {
   display(qian,bai,shi,ge);
   i++;
   if(i==10)
   { 
    i=0;
    a=50;
    TMOD=0x01;
    TH0=0;
    TL0=0;
    ET0=1;
    TR0=1;
  j=20;
  while(j--)
  {
  a=50000;
         while(a--)
    {
    b=0;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    b=1; 
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
   
      }
       }
   }
  }
  
}


void  waibu() interrupt 0
{
   EA=0;
   TR0=0;
   c=TH0;
   d=TL0;
   e=c*256+d;
   f=e*34/2000; 
   qian++;
   bai++;
   shi++;
   ge++;


   if(qian>9)
   {
    qian=0;
    bai=0;
    shi=0;
    ge=0;  


   } 
   EA=1;
 
}
void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void display(uint qian,uint bai,
uint shi,uint ge)
{
 P0=table[ge];
 P2=0x7f;
 delay(2);
 P0=table[shi];
 P2=0xbf;
 delay(2);
 P0=table[bai];
 P2=0xdf;
 delay(2);
 P0=table[qian];
 P2=0xef;
 delay(2);
 
   
}



 delay(2);
 
   
}


 


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)