加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

基于51单片机的超声波测距系统设计

15小时前
183
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
相关方案
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

功能:

超声波测距仪,测量距离,用LCD12864显示信息。 lcd_writestr(0,0," 超声波测距仪 "); lcd_writestr(1,0,"********"); lcd_writestr(2,0,"当前被测距离为:"); lcd_writestr(3,0," 厘米 ");

原理图

/*****************************************************

* 功能:超声波测距

******************************************************/

#include <reg52.h>

#include "intrins.h"

#include "12864LCDdriver.h"

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long int

#define V=173

sbit CSOut=P1^7;

sbit Start=P1^4;

ulong TIME;

uchar DISTANCE;

uchar code discode[11]={'0','1','2','3','4','5','6','7','8','9',' '};

ulong data disnum[5];

bit data ReceiveOK=0;

bit data TOut;

bit data FLAG;

/*********************************************************

* 函数名称:void delay2(uchar x)

* 功    能:延时函数

* 入口参数:无

* 出口参数:无

*********************************************************/

void delay2(uchar x)

{

uchar a,b;

for(a=0;a<x;a++)

for(b=0;b<255;b++);

}

/*********************************************************

* 函数名称:void init(void)

* 功    能:初始化

* 入口参数:无

* 出口参数:无

*********************************************************/

void init(void)

{

lcd_init();//LCD初始化,开机调用一次

TMOD=0x01;//T0定时器方式1

IT0=0;//INT0负边沿触发

IP=0x01;//INT0高优先级

EA=1;//开总中断

}

/*********************************************************

* 函数名称:

* 功    能:超声波发射函数

* 入口参数:无

* 出口参数:无

*********************************************************/

void CCOut(void)

{

TR0=1;

//40KHz

CSOut=0;//1

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();

CSOut=1;//2

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();

CSOut=0;//3

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();

CSOut=1;//4

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();

CSOut=0;//5

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();

CSOut=1;//6

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();

CSOut=0;//7

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();

CSOut=1;//8

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();

CSOut=0;//9

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();

CSOut=1;//10

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();

CSOut=0;//11

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();

CSOut=1;//12

}

/*********************************************************

* 函数名称:void DataProcess(void)

* 功    能:数据处理函数

* 入口参数:无

* 出口参数:无

*********************************************************/

void DataProcess(void)

{

ulong time=0;

TIME=TH0;

TIME=(TIME<<8)|TL0;

TIME*=173;//距离

TIME=TIME/10000;//单位:CM

disnum[0]=(uchar)TIME%10;        //个位

disnum[4]=TIME/10;

disnum[1]=(uchar)disnum[4]%10;//十位

disnum[4]=disnum[4]/10;

disnum[2]=(uchar)disnum[4]%10;//百位

disnum[4]=disnum[4]/10;

disnum[3]=(uchar)disnum[4]%10;//千位

}

/*********************************************************

* 函数名称:void TimeOut(void) interrupt 1

* 功    能:超时处理函数 T0

* 入口参数:无

* 出口参数:无

*********************************************************/

void TimeOut(void) interrupt 1

{

TR0=0;

ET0=0;

EX0=0;

ReceiveOK=0;

TOut=1;

}

 

  • 有需要资料的可了解一下.docx

相关推荐

电子产业图谱