1、超声波测距仪专业:测试计量技术及仪器摘要:本系统是设计一个装潢专用的超声波测试距离仪器,它可以对房屋的长度,宽度以及高度进行测量,通过超生波传感器系统发出信号,经过墙壁这个障碍物反射,系统再接收信号,同时系统会自动检测波形并将波形转变为方波出现在显示屏上,从而实现房屋长度,宽度及高度的数字显示。然后通过ATMEGA8USB 下载线进行下载程序,再用 ATMEGA16 最小系统进行调试;用 AVR 编写程序来实现系统的后续计算,从而实现对房屋面积的计算,进而即可计算出装潢成本预算;它的原理与夜间猫头鹰飞行有些相似,即通过发射信号-接收信号实现它自身的功能。关键词:传感器、ATMEGA8USB 下
2、载线、STC89C52 最小系统、C 语言编程Abstract: This system is a special decoration design of ultrasonic testing distance instrument , It can be about house length, width and height measurement, Through the super living wave sensor system to signal, After the wall the obstacles reflection, the system to receiving
3、signals, and the system will automatically detect waveform and will appear in the transformation of square wave wave screen, so as to realize the house length, width and height of the digital display. Then through the ATMEGA8USB download line to download program, reoccupy ATMEGA16 minimum system com
4、missioning; Write a program to achieve with AVR system of subsequent calculation, so as to achieve the calculation of building area, and then calculate the cost budget can decorate; Its principle and the night owl flying some similar, that is, through the signal-received signal realize its function.
5、Keywords: sensors, ATMEGA8USB download line, STC89C52 minimal systems, C language programming 1.引言:本系统在通过多次实验和调试完成后,将会以成品的形式展现出来,实现它自身的功能。在以经济建设为中心的当今社会,房屋建设无疑将成为未来发展的重要环节,所以对测量的需求量和精度要求将会大大增加,本产品将会实现对房屋长度,宽度和高度的自动测量,从而实现对面积的计算,进而即可计算出装潢成本预算,操作简单高效,省时省力。他的出现将会大大减轻装潢公司的工作负荷,提高工作效率,进而引起装潢界的效率风暴;而从长远角度
6、来看,这也再间接加快经济建设的步伐。2.系统组成:本系统包括硬件部分和软件部分。统硬件电路由单片机最小系统、超声波发射电路、超声波接收电路、显示电路构成。系统软件包括主程序、定时器计时子程序、计算子程序、液晶显示子程序等。主程序包括初始化和各个子程序的调用,最后把测量结果用液晶显示屏显示出来。3.硬件电路设计:本系统硬件电路由单片机最小系统、温度补偿电路、超声波发射电路、超声波接收电路、显示电路构成,如下图 1 所示。乘乘乘乘 乘乘乘乘 乘乘乘乘乘乘乘乘 乘乘乘乘 40KHz乘乘STC89C52 乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘本超声波测距仪的具体工作过程如下,在单片机产生复位信号后,由单
7、片机STC89C52 产生一个控制信号,控制外围电路产生 40kHz 的超声波,经整形放大后加到超声波换能器发射出频率为 40kHz 的超声波。同时,计数 STC89C52 内部的定时器,测量超声波信号从发出到接收所花的时间,并把经超声波换能器 R 接收到的超声波信号放大、滤波、整形,并作为接收信号来启动定时器的输入捕捉功能,完成一次超声波测距的时间操作。在液晶显示屏上显示相应的测量值以及当前温度。STC89C52 系列单片机是高速/低功耗的新一代 8051 单片机,最高工作频率可分别达到 25MHz50MHz。STC89C 系列单片机有较宽的工作电压,5V 型号的可工作于 3.4V6.0V,
8、3.3V 型号的可工作于 2.0V4.0V(ISP/IAP 操作时对电压要求会稍严)。正常工作模式下的典型耗电为 4mA7mA,空闲模式为 2mA,掉电模式(可由外部中断唤醒)下则小于 0.1A。此外,STC89C 系列单片机在完全兼容 8052 芯片(在标准 8051 基础上增加了T2 定时器和 128 字节内部 RAM)的基础上,新增了许多实用功能。3.1 超声波发射电路超声波发射电路包括超声波产生电路和超声波发射控制电路两个部分,超声波探头的型号选用 TCRT16-40 40KHz(其中心频率为 40KHz ),通过输出引脚输入至驱动器,经过驱动器驱动后推动探头产生超声波 这种。方法的特
9、点是充分利用软件,灵活性好,但是需要设计一个驱动电流为 100mA 以上的驱动电路 可以产生 的超声波信号,具体电路如下图所示超声波的发射电路图中,与非门 74LS04 组成超声波发射电路,用 74LS04 构成多谐振荡器,通过调节 20k 的电位器,可产生超声波发射的 40kHz 信号,其中 U3A 为驱动器,电路振荡频率 f1/2.2RC,单片机的控制信号由 U2A 输入。为增大超声波的发射频率,本设计利用了单运放 LM386,发射距离可达 4m。3.2 超声波接收电路超声波接收部分采用集成芯片 CX20106A ,这是一款红外线检波接收的专用芯片 接收的回波信号先经过前置放大器和限幅放大
10、器,将信。号调整到合适的幅值;再经过带通滤波器滤波得到有用信号,滤除干扰信号;最后由峰值检波器和整形电路输出到锁相环路,实现准确的计时当 CX20106A 接收到 40KHz 的信号时,会在第 7 脚产生一个低电平。下降脉冲,这个信号可以接到单片机的外部中断引脚作为中断信号输入,超声波接收电路图如下图所示。超声波的接收电路液晶显示字符点阵系列模块是一类专门用于显示字母、数字、符号等的点阵型显示模块。分 4 位和 8 位数据传输方式。它提供 57 点阵+光标和 510 点阵+光标的显示模式。提供显示数据缓冲区 DDRAM、字符发生器 CGROM 和字符发生器CGRAM,可以使用 CGRAM 来存
11、储自己定义的最多 8 个 58 点阵的图形字符的字模数据。它提供了丰富的指令设置:清显示,光标回原点,显示开/关,光标开/关,显示字符闪烁,光标移位,显示移位等。提供内部上电自动复位电路,当外加电源电压超过+4.5V 时,自动对模块进行初始化操作,将模块设置为默认的显示工作状态。12864 显示四行字符,每行可以显示 8 个字符。本设计采用 12864液晶,显示四行字符,分别显示“装潢测距仪”、 “长度: cm” 、 “ 宽度: cm” 、 “长乘宽: m*m” 。系统软件设计系统软件包括主程序、温度采集子程序、定时器计时子程序、计算子程序、液晶显示子程序等。主程序包括初始化和各个子程序的调用
12、,最后把测量结果用液晶显示屏显示出来(见图 4)。乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘乘NC 语言编程:#include#include #define uchar unsigned char#define uint unsigned int#define ulong unsigned longdata uchar testok;data unsigned char temp;data unsigned int i;data unsigned long time;data unsigned int chang;data unsigned
13、int kuan;data unsigned long mianji;data uchar fashecishu = 4;/*/*通用延时子程序*/void delay_lcd(int N)uchar i;while(N-)for(i=0; i20; i+);/* 12864LCD 引脚定义 */sbit LCD12864_CS = P20;sbit LCD12864_SID = P21;sbit LCD12864_SCLK = P22;sbit LCD12864_PSB = P23;sbit LCD12864_RESET = P24;sbit fs = P10;sbit jsen = P11
14、;sbit key1 = P12;sbit key2 = P13;/*显示模板 */uchar LCD12864_DIS116 = “ 装潢测距仪 “;uchar LCD12864_DIS216 = “长度: cm “;uchar LCD12864_DIS316 = “宽度: cm “;uchar LCD12864_DIS416 = “长乘宽: m*m “;uchar DIP_NUM11=“0123456789.“;void sendbyte(uchar bbyte) uchar i;for(i=0;i8;i+)LCD12864_SID=bbyte /取出最高位LCD12864_SCLK=1;
15、_nop_();_nop_();LCD12864_SCLK=0;bbyte=1; /左移 void write(bit start, uchar ddata) uchar start_data,Hdata,Ldata;if(start=0) /11111,(0),(0),0start_data=0xf8; /写指令 else /11111,(0),(1),0start_data=0xfa; /写数据Hdata=ddata /取高四位Ldata=(ddata4) /取低四位sendbyte(start_data); /发送起始信号delay_lcd(1); /延时sendbyte(Hdata);
16、 /发送高四位delay_lcd(1); /延时sendbyte(Ldata); /发送低四位delay_lcd(1); /延时void lcdinit() delay_lcd(10); /延时等待 LCM 进入工作状态LCD12864_PSB=0; /串口驱动模式LCD12864_RESET=0; delay_lcd(5);LCD12864_RESET=1; LCD12864_CS=1; write(0,0x30); /功能设定为基本指令操作write(0,0x0c);/显示状态开关不显示光标整体显示开 (write(0,0x0d);显示光标) write(0,0x01); / 清除显示wr
17、ite(0,0x06); /void lcd_scan()/显示文字uchar i;write(0,0x80); for(i=0;i16;i+) write(1,LCD12864_DIS1i);write(0,0x90); for(i=0;i16;i+) write(1,LCD12864_DIS2i);write(0,0x88); for(i=0;i16;i+) write(1,LCD12864_DIS3i);write(0,0x98); for(i=0;i16;i+) write(1,LCD12864_DIS4i);void fashe()uchar i,j;for(i=0;i4;i+)fs
18、 = 0;for(j=0;j2;j+)fs = 1;/*/void main(void)lcdinit(); lcd_scan();fs = 0;TMOD = 0x21;TH0 = 0X00;TL0 = 0X00;TH1 = 0XF2;TL1 = 0XF2;PX0 = 1;ET0 = 1;EA = 1;TR0 = 1;while (1)testok = 0;while (!testok) lcd_scan();if(testok = 2)time = TH0;time = (time8) | TL0;time *= 172;chang = time / 10000;LCD12864_DIS48
19、=DIP_NUMchang/1000;time = chang % 1000;LCD12864_DIS49=DIP_NUMchang/100;time %= 100;LCD12864_DIS410=DIP_NUMchang/10;LCD12864_DIS411=DIP_NUMchang%10;for (i=0; i300; i+) lcd_scan(); TR0 = 1;for (i=0;i100;i+)lcd_scan(); /*超声接收程序(外中断 0)*/void cs_r(void) interrupt 0TR0 = 0;ET0 = 0;EX0 = 0;jsen = 1;testok
20、= 1;/*超时清除程序(内中断 T0)*/void overtime(void) interrupt 1EA = 0;TR0 = 0;jsen = 1;TH0 = 0;TL0 = 0;ET1 = 1;EA = 1;TR0 = 1;TR1 = 1;testok = 2;void overtime2(void) interrupt 3fs=fs;fashecishu-;if (fashecishu != 0) return;TR1 = 0;ET1 = 0;fashecishu = 4;EX0 = 1;jsen = 0;/*/结论本系统采用单片机 STC89C52 做主控制器,可靠性好,抗干扰和电磁兼容性强,内部资源较丰富,软件的工作量大大降低编程更加方便,灵活。在本设计中,通过外部硬件电路来产生 40kHz 的超声波信号,因而相对于由单片机产生的 40kHz 超声波信号而言,更加接近超声波传感器的共振频率,因而使超声波传感器的输出最大,可以有效地提高测量距离,测量距离在 0.3m-4m 内。本设计采用数字式温度传感器实现对单片机超声波测距系统的温度测量和补偿,对声速进行补偿,对引起测量误差的因素进行修正处理,提高了系统的测量精度及灵敏度,使探测精度不超过 1cm,从而达到了很好的效果。