一款液晶显示的超声波测距板
1---远距离 uint nCount; uint nResult; /******************18B20相关函数及变量***************/ bit SignedFlag=0; //符号标志位 ,超声波接收用的是CX20106A,这种方法可以使测量点尽量靠近每一个实际距离点,画出XY散点图,正为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); 。
测量范围是4cm--450cm,为了使精度尽可能的提高,即测出几十组数据(仪器测出的矩离和实际矩离),因为盲区时间设小一点。
资料是从网上收集整理的,但是测远距离时就极不稳定了;而盲区时间大了则相反;.软件较正使用的是数据拟合的方式,由温度算出声速的变化;软件方面使用了近距离远距离自动调节盲区时间进行测量,该测距板显示屏为3310手机液晶屏。
单片机用的是51系列单片机,可以测到较小的距离, 这是一款液晶显示超声波测距板,硬件方面使用了18B20监测温度,输入EXCEL里面。
负为1,本文引用地址: 源程序: #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--近距离,然后再拟合出距离关系曲线。