您的位置 首页 IC

一款液晶显示的超声波测距板

这是一款液晶显示超声波测距板,资料是从网上收集整理的。该测距板显示屏为3310手机液晶屏,测量范围是4cm–450cm。单片机用的是51系列单

这是一款液晶显示超声波测距板,材料是从网上收集整理的。该测距板显示屏为3310手机液晶屏,丈量规模是4cm–450cm。单片机用的是51系列单片机,超声波接收用的是CX20106A。为了使精度尽可能的进步,硬件方面运用了18B20监测温度,由温度算出声速的改变;软件方面运用了“近间隔<--->远间隔”主动调理“盲区时刻”进行丈量。由于盲区时刻设小一点,能够测到较小的间隔,可是测远间隔时就极不安稳了;而盲区时刻大了则相反;.软件较正运用的是数据拟合的办法,即测出几十组数据(仪器测出的矩离和实践矩离),输入EXCEL里边,画出XY散点图。然后再拟合出间隔联系曲线。这种办法能够使丈量点尽量接近每一个实践间隔点。



源程序:

#include “stdio.h”

#include “math.h”

#include “regx52.h”

#include “binary.h”

#include “intrins.h”

#define VOUT P3_7 //脉冲发生端口

#define DQ P1_0 //ds18b20端口

/******************体系全局变量***************/

typedef unsigned char uchar;

typedef unsigned int uint;

bit Success; //丈量成功标志位

bit Done; //丈量完结标志位

bit Mode; //丈量形式:0–近间隔,1—远间隔

uint nCount;

uint nResult;

/******************18B20相关函数及变量***************/

bit SignedFlag=0; //符号标志位 ,负为1,正为0

uchar TempInt; //整数部分温度

uint TempDot; //小数部分温度

void ReadTemperature(void); //在程序中调用此函数

void Init_DS18B20(void);

unsigned char ReadOneChar(void);

void WriteOneChar(unsigned char dat);

void delayx(unsigned int i);

#include “18b20.h”

/******************LCD相关函数******************/

sbit SCLK = P2^0; // 串行时钟

sbit SDIN = P2^1; // 串行数据输入

sbit LCD_DC = P2^2; // 数据/指令 挑选端

sbit LCD_CE = P2^3; // 片选

sbit LCD_RST = P2^4; // 外部复位

#include “Nokia5110.c”

/***********超声波丈量相关函数界说***************/

void StartInit();

void Delay_us(uint i); //微秒级延时:T=7+2*(X-1) us

void StartMeasure();

void DisplayResult();

void ConvertCount();

void Delay_ms(uint x);

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/318624.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部