资讯详情

[2022-03-31]使用51单片机实现超声波报警器

#include "reg52.h" sbit Trig=P1^5; sbit Echo=P1^6; sbit D5=P3^7; sbit D6=P3^6; sbit DIDI=P1^0; void Delay10us()  //@11.0592MHz {  unsigned char i;   i = 2;  while (--i); }  void Time0Init() {  TMOD &= 0xF0;  //设置定时器模式  TMOD |= 0x01;  //设置定时器模式  TL0=0;  TH0=0;///不急于计时 } void Delay100ms()  //@11.0592MHz {  unsigned char i, j;   i = 180;  j = 73;  do  {   while (--j);  } while (--i); }  void StartHC() {  Trig=0;  Trig=1;  Delay10us(); //发送10us高电平波刺激超声波  Trig=0; } void main() {  double time,dis;  //定义时间和距离  Time0Init();  ///初始化定时器  while(1)  {  StartHC();   ///刺激超声波  while(Echo==0);  TR0=1;  //当Echo高电平(超声波发出),开始计时  while(Echo==1);  TR0=0;    //当Echo低电平(超声波返回),停止计时  time=(TH0*256 TL0)*1.085;     dis=time*0.017;  if(dis<15)  {     D5=0;     D6=1;      DIDI=0;    Delay100ms();   DIDI=1;   Delay100ms();   }   else  {     D5=1;     D6=0;  }     TH0=0;     TL0=0;    ///计时器清零 }   }

标签: j330三极管三极管j1603

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台