超声波测距数码管显示,内容完全正确
超声波测距实验技术及常见问题解答
超声波测距实验技术及常见问题解答1. 引言超声波测距技术是一种常见的测距方法,广泛应用于工业生产、医疗诊断等领域。
本文将介绍超声波测距实验的原理和常见问题解答。
2. 超声波测距原理超声波是指频率超过人耳听力范围的声波。
测距实验中使用的超声波传感器通过发射和接收超声波,并根据超声波的传播速度和回波时间来计算目标物体与传感器的距离。
超声波的传播速度大约为340米/秒,实验中可通过测量回波时间来计算距离。
3. 实验装置和步骤为了进行超声波测距实验,我们需要准备超声波传感器、控制电路、计时电路等实验装置。
首先,将超声波传感器安装在固定位置,确保与目标物体之间没有遮挡物。
接着,控制电路发射超声波信号,超声波传感器接收到回波信号后,计时电路记录下回波时间。
最后,通过计算回波时间和超声波传播速度,可以得到目标物体与传感器的距离。
4. 常见问题解答4.1 超声波测距会受到什么影响?超声波测距受到目标物体的形状、反射面的材质、环境温度等因素的影响。
例如,目标物体的形状不规则或表面粗糙会导致超声波的反射方向发生变化,影响测量精度。
此外,超声波的传播速度还受到温度的影响,需对测距结果进行修正。
4.2 如何提高测距的精度?为提高测距精度,可以采用多点测量的方法,即在目标物体的不同位置进行多次测距,然后取平均值。
此外,还可以使用更精密的控制电路和计时电路,以减小误差。
另外,合理安装传感器、确保传感器与目标物体之间没有遮挡物也会对测距精度有所影响。
4.3 超声波测距适用于哪些场景?超声波测距适用于室内和室外环境,可以用于测量近距离和中距离的目标物体。
在工业生产中,超声波测距常用于物品定位,例如在流水线上对物体进行测量和判定。
在医疗诊断中,超声波测距技术广泛应用于妇科检查、心脏超声检测等领域。
5. 结论超声波测距技术是一种常见且实用的测距方法,具有广泛应用前景。
本文介绍了超声波测距实验的原理和步骤,并解答了一些常见问题。
通过了解超声波测距技术的原理和注意事项,我们可以更好地应用于实际生产和科研工作中,提高测距的精度和准确性。
超声波物位计使用说明书
超声波传感器一、产品简介利用声波介质对被检测物进行非接触式和无磨损的检测。
超声波传感器对无论是透明性的物体还是有颜色的物体,金属物体或者非金属物体、以及固体、液体或是粉状物质,均能检测。
周围环境条件如有烟环境、灰尘环境或是下雨条件下几乎都不会影响超声波传感器的检测性能。
二、超声波测距原理发射超声换能器发射出的超声脉冲,通过传播媒质传播到被测介质,经反射后再通过传声媒质返回到接收换能器,测出超声脉冲从发射到接收在传声媒质中传播的时间。
再根据传声媒质中的声速,就可以算得从换能器到介质面的距离。
从而确定液位。
因此我们可以计算出探头到反射面的距离D = C*t/2(除以2是因为声波从发射到接收实际是一个来回,D是距离,C是声速,t是时间)。
三、产品特点高分辨率响应时间短数码管显示测量距离通过RS 232/485 完成参数设置丰富的输出方式:开关量、模拟量、RS232/485四、主要技术指标你五、安装指南5.1 安装注意事项(1)超声波传感器安装时发射面应垂直于被测物体; (2)电源线和输出信号线不要接反。
5.2安装尺寸⑴ 超声波传感器外形图:HFTCGQ_SMG 型:(2)超声波传感器尺寸图 HFTCGQ_SMG 型:功 能 一体型量 程 0.05~0.5m 0.1~1m 0.2~3m 0.2~4m 0.3~5m 0.3~6m探头频率200K 100K 65K 65K 50K 50K安装尺寸HFTCGQ_SMG 型 M60*1.5M18*1.5M27*1.5 M40*1.5 M40*1.5 M40*1.5M40*1.5分辨率 3mm 或0.1%(取大者) 响应时间 < 200ms显 示 LED , 数码管 发射角度 20°模拟输出 4~20mA/500Ω负载、0~5V开关量输出 继电器DC 30V/ 5A 、PNP/NPN (5V )(可选) RS232/485 MODBUS 协议或者厂家自定义协议(可选) 供 电 标配24V (±15%) 环境温度 -20~+60℃, 防护等级IP65 可选IP67超声波传感器5.3 实物安装HFTCGQ_SMG型:①在被测物体上方装一个法兰②法兰上放一片内径相同的垫片③把测距传感器对准法兰孔④将测距传感器放入法兰孔⑤从法兰底部看到的情况⑥法兰下放一片内径相同的垫片你⑦拧上螺母固定好测距传感器⑧给测距传感器接上电缆线HFTCGQ_ZL型:(停产)①在被测物体上方装一个法兰②把测距传感器对准并放入法兰孔③拧上螺母固定好测距传感器④给测距传感器接上探头线超声波传感器⑤给测距传感器接上电缆线5.4 接线方式电源:红线: 24VDC+ 黑线: 24VDC–1、4~20mA:蓝线: mA + 黄线: mA–2、0~5V:蓝线: V + 黄线: V–3、485/232通讯:黄线:T/R+ 蓝线: T/R–4、继电器信号:蓝线黄线你5、NPN信号:蓝线:NPN+ 黄线:NPN -6、PNP信号:蓝线:PNP+ 黄线:PNP-备注:1、输出信号选择(1~6)其中一种;2、要将黑线可靠接地;3、当测距传感器为mA模块时,也可将黄线(mA-)接地;六、信号说明HFTCGQ_SMG型:初始上电时,电源指示灯“绿灯”常亮。
超声波测距 实验报告
Q1
40106
图 6
7490 芯片的时钟接前一位的 Q3。最低位 7490 芯片的时钟接 17kHz TTL 方波(由信号 发生器提供)和闸门波形相与(或者相与非)的结果。闸门波形由下图所示的电路产生:
1 发(Q1)
D
SET
Q
Q3
CLR
Q
收
图 7
4、报警电路。
图 8
此部分的功能是通过存储器(用 74161 芯片)保存计数值,在报警时间(如图 8)内用 组合逻辑电路对计数值进行比较。若计数值小于 30(cm) (且小于存储器中的值) ,则利用
实验日期 2010-7-13~2010-7-15
实验室
222
座位号
23
清华大学电子工程系
电子技术课程设计 实验报告
超声波测距系统
班级 无 82 学号 2008011098 姓名 刘硕 交报告日期 2010-7-17
【实验任务】
1. 测量距离不小于 0.5m 米,数字显示,动态更新测量结果,更新时间约 1 秒。测量精 度优于 0.05m,显示精度 0.01m。 2.测量距离不小于 1.0m 米,数字显示,动态更新测量结果,更新时间约 1 秒。测量精 度优于 0.01m,显示精度 0.01m 3.测量距离不小于 2.0m 米,数字显示,动态更新测量结果,更新时间约 1 秒。测量精 度优于 0.01m,显示精度 0.01m 距离小于 0.3m 时,用蜂鸣片发出间歇式的“嘀一嘀”声响报 警。 4*.显示无跳动、闪烁,距离小于 0.3m 且距离变近时,用蜂鸣片发出间歇式的“嘀一嘀” 声响报警。
Ix<30cm Q3 BDC
图 10
实现距离小于 30cm 且距离变近报警的电路:
基于C51的超声波测距仪设计 —数码管显示
{
flag=0;
disbuff[0]=10; //“-”
disbuff[1]=10; //“-”
disbuff[2]=10; //“-”
}
else
{disbuff[0]=S%1000/100; //百位
disbuff[1]=S%1000%100/10; //十位
disbuff[2]=S%1000%10 %10;} //个位
unsigned char const discode[]
={ 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40,0xff/*-*/};
//数码管显示码0123456789—和不显示
unsigned char const positon[3]={ 0xfc,0xfd,0xfe};
_nop_(); _nop_();_nop_(); _nop_(); _nop_();
_nop_();
TX=0;
}
}
实验结果
刻度值/m 实测值/m 误差/m
0.1
0.09
0.01
0.2
0.18
0.02
0.3
0.27
0.03
0.4
0.37
0.03
0.5
0.45
0.05
0.6
0.55
显示
timer++;
if(timer>=400)
{timer=0;
TX=1;
//800ms 启动一次模块
_nop_(); _nop_(); _nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_();
超声波测距模块使用说明
超声波测距资料超声波测距模块连线:我们将超声波测距模块用红色,绿色两根导线引出,红色线(超声波测距模块电源脚)接5208K实验仪+5V,绿色线(超声波测距模块接地脚)接5208K实验仪GND.打开5208K实验仪电源, 超声波测距模块初始化显示27.将超声波发射接收头对准障碍物,数码管将显示超声波测距模块与障碍物之间的距离。
超声波测距学习板,可应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。
测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。
超声波学习板采用AT89S51单片机晶振为12M,单片机用P1.0口输出超声波换能器所需的40K方波信号,利用外中断监测超声波接收电路输出的返回信号,显示电路采用简单的4位共阳LED数码管,段码驱动用74LS244集成电路,位码用S8550三极管驱动。
超声波测距的算法原理: 超声波在空气中传播速度为每秒钟340米(15℃时)。
X2是声波返回的时刻,X1是声波发声的时刻,X2-X1得出的是一个时间差的绝对值,假定X2-X1=0.03S,则距离为340mx0.03S=10.2米。
这就是超声波探头到反射物体之间的距离。
产品性能特点:成品板上自带:超声波收发传感器、接收放大电路、四位LED数码显示、四位按键(四个按钮和蜂鸣器属于功能预留,程序中无定义),电源部分自带整流、滤波、稳压电路,允许交流7~15V或者直流9~16V输入,经过实际测试,测量范围可达27~250厘米,测量精度为1厘米。
下图是超声波测距学习板的元件布局图,以下是部分汇编源程序;/////////////////////////////////////////////////////// ; USE BY :超声波测距器; IC :AT89C51; TEL :; OSCCAL :XT (12M); display :共阳LED显示;/////////////////////////////////////////////////////// ;测距范围7CM-11M,堆栈在4FH以上,20H用于标志;显示缓冲单元在40H-43H,使用内存44H、45H、46H用于计算距离;VOUT EQU P1.0 ; 红外脉冲输出端口speak equ p1.1;********************************************;* 中断入口程序 *;********************************************;ORG 0000HLJMP STARTORG 0003HLJMP PINT0ORG 000BHretiORG 0013HRETIORG 001BHLJMP INTT1ORG 0023HRETIORG 002BHRETI;;********************************************;* 主程序 *;********************************************;START: MOV SP,#4FHMOV R0,#40H ;40H-43H为显示数据存放单元(40H为最高位)MOV R7,#0BHCLEARDISP: MOV @R0,#00HDJNZ R7,CLEARDISPMOV 20H,#00HMOV TMOD,#11H ;T1为 T0为16位定时器MOV TH0,#00H ;65毫秒初值MOV TL0,#00HMOV TH1,#00HMOV TL1,#00HMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R4,#04H ;超声波肪冲个数控制(为赋值的一半)SETB PX0SETB ET1SETB EASETB TR1 ;开启测距定时器start1: LCALL DISPLAYJNB 00H,START1 ;收到反射信号时标志位为1CLR EALCALL WORK ;计算距离子程序clr EAMOV R2,#32h;#64H ;测量间隔控制(约4*100=400MS)LOOP: LCALL DISPLAYDJNZ R2,LOOPCLR 00Hsetb et0mov th0,00hmov tl0,00hSETB TR1 ;重新开启测距定时器SETB EASJMP Start1;;**************************************************** ;* 中断程序* *;****************************************************;T1中断,发超声波用 ;T1中断,65毫秒中断一次INTT1: CLR EAclr ex0MOV TH0,#00HMOV TL0,#00HMOV TH1,#00HMOV TL1,#00HSETB ET0SETB EASETB TR0 ;启动计数器T0,用以计intt11:CPL VOUT ;40KHZnopnopnopnopnopnopnopnopnopDJNZ R4,intt11;超声波发送完毕,MOV R4,#04Hlcall delay_250 ;延时,避开发射的直达声波信号SETB EX0 ;开启接收回波中断RETIOUT: RETI;外中断0,收到回波时进入PINT0: nopjb p3.2,pint0_exitCLR TR0 ;关计数器CLR EA ;CLR EX0 ;MOV 44H,TL0 ;将计数值移入处理单元MOV 45H,TH0 ;mov th0,#00hmov tl0,#00hjnb p3.2,$SETB 00H ;接收成功标志pint0_exit:RETI;;****************************************************;* 显示程序 *;****************************************************; 40H为最高位,43H为最低位,先扫描高位DISPLAY: MOV R1,#40H;GMOV R5,#7fH;GPLAY: MOV A,R5MOV P0,#0FFHMOV P2,AMOV A,@R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P0,ALCALL DL1MSINC R1MOV A,R5JNB ACC.4,ENDOUT;GRR AMOV R5,AAJMP PLAYENDOUT: MOV P2,#0FFHMOV P0,#0FFHRET;TAB: DB 18h, 7Bh, 2Ch, 29h, 4Bh, 89h, 88h, 3Bh, 08h, 09h,0ffh ;共阳段码表 "0" "1" "2" "3" "4" "5""6" "7" "8" "9" "不亮""A""-" ;;**************************************************** ;* 延时程序 *;**************************************************** ;DL1MS:push 06hpush 07hMOV R6,#14HDL1: MOV R7,#19HDL2: DJNZ R7,DL2DJNZ R6,DL1pop 07hpop 06hRET;;**************************************************** ;* 距离计算程序 (=计数值*17/1000cm) *;**************************************************** ;work: PUSH ACCPUSH PSWPUSH BMOV PSW, #18hMOV R3, 45HMOV R2, 44HMOV R1, #00DMOV R0, #17DLCALL MUL2BY2MOV R3, #03HMOV R2, #0E8HLCALL DIV4BY2LCALL DIV4BY2MOV 40H, R4MOV A,40HJNZ JJ0MOV 40H,#0AH ;最高位为零,不点亮JJ0: MOV A, R0MOV R4, AMOV A, R1MOV R5, AMOV R3, #00DMOV R2, #100DLCALL DIV4BY2MOV 41H, R4MOV A,41HJNZ JJ1MOV A,40H ;次高位为0,先看最高位是否为不亮SUBB A,#0AHJNZ JJ1MOV 41H,#0AH ;最高位不亮,次高位也不亮JJ1: MOV A, R0MOV R4, AMOV A, R1MOV R5, AMOV R3, #00DMOV R2, #10DLCALL DIV4BY2MOV 42H, R4MOV A,42HJNZ JJ2MOV A,41H ;次次高位为0,先看次高位是否为不亮SUBB A,#0AHJNZ JJ2MOV 42H,#0AH ;次高位不亮,次次高位也不亮JJ2: MOV 43H, R0POP BPOP PSWPOP ACCRET;;**************************************************** ;* 两字节无符号数乘法程序 *;**************************************************** ; R7R6R5R4 <= R3R2 * R1R0超声波专用发射接收头,有T字样的是发射头,标有R字样的是接收头.。
超声波测距模块使用说明
超声波测距资料超声波测距模块连线:我们将超声波测距模块用红色,绿色两根导线引出,红色线(超声波测距模块电源脚)接5208K实验仪+5V,绿色线(超声波测距模块接地脚)接5208K实验仪GND.打开5208K实验仪电源, 超声波测距模块初始化显示27.将超声波发射接收头对准障碍物,数码管将显示超声波测距模块与障碍物之间的距离。
超声波测距学习板,可应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。
测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。
超声波学习板采用AT89S51单片机晶振为12M,单片机用P1.0口输出超声波换能器所需的40K方波信号,利用外中断监测超声波接收电路输出的返回信号,显示电路采用简单的4位共阳LED数码管,段码驱动用74LS244集成电路,位码用S8550三极管驱动。
超声波测距的算法原理: 超声波在空气中传播速度为每秒钟340米(15℃时)。
X2是声波返回的时刻,X1是声波发声的时刻,X2-X1得出的是一个时间差的绝对值,假定X2-X1=0.03S,则距离为340mx0.03S=10.2米。
这就是超声波探头到反射物体之间的距离。
产品性能特点:成品板上自带:超声波收发传感器、接收放大电路、四位LED数码显示、四位按键(四个按钮和蜂鸣器属于功能预留,程序中无定义),电源部分自带整流、滤波、稳压电路,允许交流7~15V或者直流9~16V输入,经过实际测试,测量范围可达27~250厘米,测量精度为1厘米。
下图是超声波测距学习板的元件布局图,以下是部分汇编源程序;/////////////////////////////////////////////////////// ; USE BY :超声波测距器; IC :AT89C51; TEL :; OSCCAL :XT (12M); display :共阳LED显示;/////////////////////////////////////////////////////// ;测距范围7CM-11M,堆栈在4FH以上,20H用于标志;显示缓冲单元在40H-43H,使用内存44H、45H、46H用于计算距离;VOUT EQU P1.0 ; 红外脉冲输出端口speak equ p1.1;********************************************;* 中断入口程序 *;********************************************;ORG 0000HLJMP STARTORG 0003HLJMP PINT0ORG 000BHretiORG 0013HRETIORG 001BHLJMP INTT1ORG 0023HRETIORG 002BHRETI;;********************************************;* 主程序 *;********************************************;START: MOV SP,#4FHMOV R0,#40H ;40H-43H为显示数据存放单元(40H为最高位)MOV R7,#0BHCLEARDISP: MOV @R0,#00HINC R0DJNZ R7,CLEARDISPMOV 20H,#00HMOV TMOD,#11H ;T1为 T0为16位定时器MOV TH0,#00H ;65毫秒初值MOV TL0,#00HMOV TH1,#00HMOV TL1,#00HMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV R4,#04H ;超声波肪冲个数控制(为赋值的一半)SETB PX0SETB ET1SETB EASETB TR1 ;开启测距定时器start1: LCALL DISPLAYJNB 00H,START1 ;收到反射信号时标志位为1CLR EALCALL WORK ;计算距离子程序clr EAMOV R2,#32h;#64H ;测量间隔控制(约4*100=400MS)LOOP: LCALL DISPLAYDJNZ R2,LOOPCLR 00Hsetb et0mov th0,00hmov tl0,00hSETB TR1 ;重新开启测距定时器SETB EASJMP Start1;;**************************************************** ;* 中断程序* *;****************************************************;T1中断,发超声波用 ;T1中断,65毫秒中断一次INTT1: CLR EACLR TR0clr ex0MOV TH0,#00HMOV TL0,#00HMOV TH1,#00HMOV TL1,#00HSETB ET0SETB EASETB TR0 ;启动计数器T0,用以计intt11:CPL VOUT ;40KHZnopnopnopnopnopnopnopnopnopDJNZ R4,intt11;超声波发送完毕,MOV R4,#04Hlcall delay_250 ;延时,避开发射的直达声波信号SETB EX0 ;开启接收回波中断RETIOUT: RETI;外中断0,收到回波时进入PINT0: nopjb p3.2,pint0_exitCLR TR0 ;关计数器CLR EA ;CLR EX0 ;MOV 44H,TL0 ;将计数值移入处理单元MOV 45H,TH0 ;mov th0,#00hmov tl0,#00hjnb p3.2,$SETB 00H ;接收成功标志pint0_exit:RETI;;**************************************************** ;* 显示程序 *;**************************************************** ; 40H为最高位,43H为最低位,先扫描高位DISPLAY: MOV R1,#40H;GMOV R5,#7fH;GPLAY: MOV A,R5MOV P0,#0FFHMOV P2,AMOV A,@R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P0,ALCALL DL1MSINC R1MOV A,R5JNB ACC.4,ENDOUT;GRR AMOV R5,AAJMP PLAYENDOUT: MOV P2,#0FFHMOV P0,#0FFHRET;TAB: DB 18h, 7Bh, 2Ch, 29h, 4Bh, 89h, 88h, 3Bh, 08h, 09h,0ffh ;共阳段码表 "0" "1" "2" "3" "4" "5""6" "7" "8" "9" "不亮""A""-" ;;****************************************************;* 延时程序 *;****************************************************;DL1MS:push 06hpush 07hMOV R6,#14HDL1: MOV R7,#19HDL2: DJNZ R7,DL2DJNZ R6,DL1pop 07hpop 06hRET;;****************************************************;* 距离计算程序 (=计数值*17/1000cm) *;****************************************************;work: PUSH ACCPUSH PSWPUSH BMOV PSW, #18hMOV R3, 45HMOV R2, 44HMOV R1, #00DMOV R0, #17DLCALL MUL2BY2MOV R3, #03HMOV R2, #0E8HLCALL DIV4BY2LCALL DIV4BY2MOV 40H, R4MOV A,40HJNZ JJ0MOV 40H,#0AH ;最高位为零,不点亮JJ0: MOV A, R0MOV R4, AMOV A, R1MOV R5, AMOV R3, #00DMOV R2, #100DLCALL DIV4BY2MOV 41H, R4MOV A,41HJNZ JJ1MOV A,40H ;次高位为0,先看最高位是否为不亮SUBB A,#0AHJNZ JJ1MOV 41H,#0AH ;最高位不亮,次高位也不亮JJ1: MOV A, R0MOV R4, AMOV A, R1MOV R5, AMOV R3, #00DMOV R2, #10DLCALL DIV4BY2MOV 42H, R4MOV A,42HJNZ JJ2MOV A,41H ;次次高位为0,先看次高位是否为不亮SUBB A,#0AHJNZ JJ2MOV 42H,#0AH ;次高位不亮,次次高位也不亮JJ2: MOV 43H, R0POP BPOP PSWPOP ACCRET;;****************************************************;* 两字节无符号数乘法程序 *;****************************************************; R7R6R5R4 <= R3R2 * R1R0超声波专用发射接收头,有T字样的是发射头,标有R字样的是接收头。
超声波测距用数码管显示
#include<reg52.h> //库文件#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit dula=P2^6; //申明U1锁存器的锁存端sbit wela=P2^7; //申明U2锁存器的锁存端sbit RX=P1^0;sbit TX=P1^1;uchar bai,shi,ge;unsigned int time=0;unsigned int timer=0;unsigned char posit=0;unsigned long S=0;bit flag =0;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delayms(uint xms){uint i,j;for(i=xms;i>0;i--) //i=xms即延时约xms毫秒for(j=110;j>0;j--);}/********************************************************/ void display(){dula=1;P0=table[bai]; //送段选数据dula=0;P0=0xff; //送位选数据前关闭所有显示,防止打开位选锁存时wela=1; //原来段选数据通过位选锁存器造成混乱P0=0x7e; //送位选数据wela=0;delayms(1); //延时dula=1;P0=table[shi];dula=0;P0=0xff;wela=1;P0=0x7d;wela=0;delayms(1);dula=1;P0=table[ge];dula=0;P0=0xff;wela=1;P0=0x7b;wela=0;delayms(1);}/********************************************************/ void Conut(){time=TH0;time=((time<<8)|TL0);TH0=0;TL0=0;S=(time*1.7)/100; //算出来是CMif((S>=700)||flag==1) //超出测量范围显示“-”{flag=0;bai=0;shi=0;ge=0;}else{bai=S%1000/100; //分出百,十,和个位shi=S%1000%100/10;ge=S%1000%10 %10;}}/********************************************************/void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围{flag=1; //中断溢出标志}/********************************************************/void zd3() interrupt 3 //T1中断用来扫描数码管和计800MS启动模块{TH1=0xf8;//TL1=0x30;//display();timer++;if(timer>=10){timer=0;TX=1; //800MS 启动一次模块//_nop_();//_nop_();//_nop_();//_nop_();//_nop_();//_nop_();//_nop_();//_nop_();//_nop_();//_nop_();// _nop_();//_nop_();// _nop_();// _nop_();//_nop_();//_nop_();//_nop_();_nop_();_nop_();_nop_();_nop_();TX=0;}}/*********************************************************/void main( void ){TMOD=0x11; //设T0为方式1,GA TE=1;TH0=0;TL0=0;TH1=0xf8; //2MS定时TL1=0x30;ET0=1; //允许T0中断ET1=1; //允许T1中断TR1=1; //开启定时器EA=1; //开启总中断while(1){while(!RX); //当RX为零时等待TR0=1; //开启计数while(RX); //当RX为1计数并等待TR0=0; //关闭计数Conut();//计算}}/********************************************************************结束*********************************************************************/。
超声波测距仪实验报告
课题名称:超声波测距仪班级:应用电子0901:吴星超学号:0503090128指导老师:文博前言随着人类社会从工业化社会到信息化社会的发展,视觉传达设计经历了商业美术、工艺美术、印刷美术设计、装潢设计、平面设计等几大阶段的演变,最终成为以视觉媒介为载体,利用视觉符号表现并传达信息的设计。
对于每一位“为传达而设计”的设计者来说,如何正确、充分地传达信息是我们始终要面临的中心问题。
但是,在当今社会,由于科技的进步,社会环境和社会秩序的更新,各种视觉媒介的充斥,影响着人们的思维、观念和感情,仅仅把传达信息的关键词定位于正确和充分显然是不够的。
鉴于时代的要求与设计本质的要求,必须要把视觉传达设计的创新重视起来,以创新为前提充分准确地传达信息。
设计界存在着大量的抄袭、模仿之作,使得设计活动成为一种程式。
比如一说到大学标志,就等于是篆书外加一个圆托印章;一谈到VIS设计,便是大量相同的模版拷贝;一说到数码的视觉符号,就是一大堆蚂蚁般的“1”+“0”;一谈到商品的广告,就是戴眼镜的博士或美女的推荐代言等等。
人们无时无刻都被这些“东施效颦”的设计所侵犯和骚扰,这些设计给我们带来了视觉污染,人们不禁要问:设计究竟怎么了?面对这些,我们每一个设计师都责无旁贷。
现在该是大力宣扬“设计创新”的时候了,因为这个时代比以往任何时期都更需要清晰而独创的视觉传达设计。
那么,视觉传达设计的创新究竟体现在哪些方面?目录一、超声波测距仪的制作 (3)1.1 超声波测距的原理 (3)1.2 超声测距仪的硬件电路 (5)1.2.1回流信号放大电路 (5)1.2.2 信号检波电路 (6)1.3超声波测距程序设计 (7)二、总结: (20)三、参考文献 (20)一、超声波测距仪的制作1.1 超声波测距的原理根据相关的物理学知识,声音在介质中如空气和石头中传播时,其衰减特性与其频率相关,频率越高越不容易衰减,相应地其传播距离越远。
当声音的频率在20KHz以上的围时,超出了人耳的听觉围,变成了超声波,可以传播较远的距离而不衰减,且其本身的信号频率特性不容易受环境噪音的干扰。
超声波测距数码管显示
《单片机课程设计》设计报告设计课题:超声波测距专业班级:电子信息工程xxx班学生姓名: wang da na指导教师: cai设计时间: 2015年7月9日赣南师范学院科技学院数学与信息科学系超声波测距一、设计任务与要求1.设计任务:(1)利用超声波测量距离。
(2)使用数码管显示测出的距离。
(3)在超出一定的范围后进行报警。
二、方案设计与论证1设计方案采用单片机来控制超声波测距,信号线发射到与超声波发射器相连的信号端,超声波发射器向既定方向发射,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物将产生回波,超声波接收器接收回波,产生电平变化。
通过单片机设计一个程序,处理超声波接受的信号,计算出发射与接受的时间差,并根据距离公式计算出距离,用数码管显示。
把所测出的距离分范围,超出2米或小于0.1米蜂鸣器报警,当处于正常范围时立即停止报警。
2 原理框图数码管声超显示模单51模片报警模块系统原理框图)图(1三、电路设计1. 电路设计图(2)电路图2. 主要性能参数计算(1)超声波测距模块本测距系统采用超声波渡越时间检测法。
其原理为:检测从发射传感器发射的超声波经气体介质传播到接收传感器的时间t,这个时间就是渡越时间,然后求出距离l。
设l为测量距离,t为往返时间差,超声波的传播速度为c,则有l=ct/2。
超声波接收器收到反射波就立即停止计时。
再由单片机计算出距离,送数码管显示测量结果。
超声波测距的算法设计: 超声波在空气中传播速度为每秒钟340米(15℃时)。
t2是接收超声波时刻,t1是超声波声波发射时刻,t2-t1得出的是一个时间差的绝对值,假定t2-t1=0.03S,则有340m×0.03S=10.2m。
由于在这10.2m的时间里,超声波发出到遇到返射物返回的距离如下:如图2-2-1为测距原理。
.图(3)测距原理因为θ/2角度较小,可以忽略不计,所以L≈S。
超声波发出到遇到返射物返回的距离如下:L=C x ( t2 -t1 )/ 2 ;由于超声波也是一种声波,其声速c与空气温度有关,一般来说,温度每升高1摄氏度,声速增加0.6米/秒。
FPGA控制超声波模块测距并通过数码管显示
//基于FPGA的超声波模块控制及数码管显示//作者:燕山大学信息科学与工程学院&& 无线电爱好者协会25界徐月//时间:2013年9月6日//HC-RO4超声波测距模块,测量角度15度//抛开代码风格,咱们只讲知识module wireless(iclk,trig,echo,data6,data7,hummer);inputiclk, //时钟是50ns,即20MHzecho; //回响信号输出outputtrig, //超声波模块触发信号输入hummer; //我的开发板上的蜂鸣器output [5:0]data6; //数码管位选output [7:0]data7; //数码管段选reg trig;reg [7:0]cnt; //计数器,计250个50ns,12.5us,为echo提供时序reg [13:0] cnt1; //计数器,计8000个12.5us,100ms//无cnt2和data5reg [7:0]cnt3; //计数124个时钟周期是1mmreg [7:0] dis[9:0]; //数码管显示的数字reg [3:0] //数码管需要显示的数字data1, //个位,mmdata2, //十位,cmdata3, //百位,dmdata4; //千位,mreg[5:0]data6; //数码管位选寄存器reg [7:0]data7; //数码管段选寄存器reg[1:0]cnt4; //控制数码管依次闪亮的计数器regecho_buf, //echo的上一个时钟的状态echo_rising, //捕捉echo的上升沿echo_falling, //捕捉echo的下降沿flag1; //echo为高电平时flag1会是1,低电平时会是0 reg clk; //数码管显示所需的时钟reg[3:0] cnt5; //用于产生数码管显示用的时钟的分频器assign hummer = 1'b1; //让我的开发板上的蜂鸣器关闭,否则它会一直响//显示存储器初始化initialbegindis[0] = 8'hc0;dis[1] = 8'hf9;dis[2] = 8'ha4;dis[3] = 8'hb0;dis[4] = 8'h99;dis[5] = 8'h92;dis[6] = 8'h82;dis[7] = 8'hf8;dis[8] = 8'h80;dis[9] = 8'h90;end//产生echo控制信号250*8000*50ns,echo高电平持续12.5us,即250个时钟周期always@(posedge iclk)beginif(cnt == 249)cnt <= 1'b0;elsecnt <= cnt +1;endalways@(posedge iclk)beginif(cnt == 249)if(cnt1 == 7999)begintrig <= 1'b1;cnt1 <= 1'b0;endelsebegintrig <= 1'b0;cnt1 <= cnt1 + 1'b1;endend//捕捉trig上升沿与下降沿,并产生标志位always@(posedge iclk)beginecho_buf <= echo;echo_rising <= echo & (~echo_buf);echo_falling <= (~echo) & echo_buf;endalways@(posedge iclk)beginif(echo_rising == 1'b1)beginflag1 = 1'b1; //echo已经变为高电平endelse if(echo_falling == 1'b1)beginflag1 = 1'b0; //echo已经变为低电平endend//在flag1 = 1 期间计时,即对时钟进行计数。
超声波测距实验报告含代码
实验六超声波测距一、实验内容编写C51程序,使用超声波测量实验板距离障碍物的距离,将结果(以厘米计)显示到数码管上。
测量距离在30cm~200cm之间。
二、实验原理振动频率超过20kHz,不能被人耳所接收的声波称作“超声波”。
超声波频率高,波长短,在一定距离内沿直线传播,具有良好的束射性和方向性,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪等。
当超声波在发射后遇到障碍物反射回来之后,根据发射和接收的时间差计算出发射点到障碍物的实际距离。
在不考虑温度等因素的情况下,超声波在空气中的传播速度约为340m/s,根据记录的时间差t,就可以计算出发射点距障碍物的距离(s),即:s=340*t/2。
超声波测距装置分为两部分:超声波发生器和超声波接受器。
本实验中采用压电式超声波发生器。
它利用压电晶体的谐振原理来进行电能和机械能之间的相互转换。
超声波发生器内部有两个压电晶片和一个共振板。
当压电晶片外加一定电压的脉冲信号,并且其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,将电能转换为机械能,产生超声波。
反之,如果两电极间未外加电压,而共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。
因此同一种装置即可作为发生器,也可以作为接收器。
本实验使用的压电晶片的固有振荡频率为40kHz左右。
超声波测距产生误差的原因包括时间误差和超声波传播速度误差两大方面。
时间误差方面可以通过各种软件措施进行弥补,使用单片机也可以达到微秒级,对整体误差影响很小。
超声波的传播速度受空气的密度所影响,空气的密度越高则超声波的传播速度就越快,而空气的密度又与温度有着密切的关系,另外和湿度也有一定的关系。
整体来说,实际速度变化的幅度能够达到5%,是更加重要的影响因素。
本实验基本原理框图如下:本实验基本电路原理图如下:三、实验流程图1、外部中断服务程序e0流程图2、定时器0中断服务程序Timer0流程图3、定时器1中断服务程序Timer1流程图4、主程序流程图四、程序源代码1.#include <reg52.h>2.3.sfr P4 = 0xC0;4.sfr P4SW = 0xBB;5.sbit CLK = P4^4;6.sbit DAT = P4^5;7.sbit out = P1^0;8.9.bit badvalue;10.unsigned int count = 0;11.unsigned long int result = 0;12.unsigned long int n = 0;13.unsigned int m = 0;14.int i;15.unsigned int code tab[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};16.17.void show(unsigned int count){18. unsigned int i, num, c;19. num = tab[count];20.for (i = 0; i < 8; i++)21. {22. CLK = 0;23. c = num & 0x80;24. DAT = c;25. CLK = 1;26. num <<= 1;27. }28.}29.30.void display(unsigned int c)31.{32. show(c % 10);33. c /= 10;34. show(c % 10);35. show(c / 10);36.}37.38.void delay(unsigned char i,unsigned char j)39.{40.while(i--)41. {42.while(j--);43. j=255;44. }45.}46.47.void e0() interrupt 048.{ unsigned long t;49.if(INT0 == 0)50. {51. TR1=0;52. delay(2,255);53.if(badvalue)54. {55. TR1=0;56. result=0;57. }58.else59. {60. t=TH1;61. t = t << 8;62. t |= TL1;63. t=t*170;64. result=t/10000;65. }66.if(result != 11)67. n = 0;68.if(result < 300)69. m = 0;70.if(result >= 11 && result<= 15 )71. {72. n++;73.if(n > 10)74. {75. display(result);76. n = 0;77. }78. }79.else80. {81. display(result);82. }83. EX0=0;84. }85.}86.87.void timer0() interrupt 188.{89. out = ~out;90.if(count != 0x00)91. count-=1;92.else93. {94. TR0=0;95. delay(3,120);96. EX0=1;97. }98.}99.100.void timer1() interrupt 3101.{102. badvalue = 1;103.}104.105.void main()106.{107. P4=0xFF;108. P4SW=0x70;109. TMOD = 0x12;110. EA = 1;111. EX0 = 0;112. ET0 = 1;113. ET1 = 1;114. IT0 = 1;115.116.while(1)117. {118. count = 4;119. out = 0;120. badvalue = 0;121.122. TH0=0xf3;123. TL0=0xf3;124. TH1=0x00;125. TL1=0x00;126.127. TR0=1;128. TR1=1;129.for(i = 0; i < 5; i++)130. delay(255,255);131.132. }133.}五、思考题1. 当时间测量定时器溢出时,能够测量的最大距离是多少?定时器1在工作方式1下是16位定时器,最大值65535,也就是可以累加65536个数值,用65536*340/2/10000 = 1114cm,这便是能够测量的最大距离。
HC-SR04超声波测距数码管显示(原创)
超声波测距数码管显示第一次写稿子。
不足之处还望各位多提宝贵意见在这里。
模块使用的是HC-SR04的超声波模块。
淘宝网上有,很便宜的,我当时买的好像才7块5.但是距离不会很远。
只有60厘米。
在10厘米以内就非常的准确。
以上的话误差在1-2厘米!这里模块资料就不上传了,,,网上搜索一大把!况且现在买的模块都有送资料的看图!!!!!!!!!!不多说了,直接上图。
数码管的接法模块接法程序里会注释出来。
这里就不做介绍了:好了,说下程序基本原理:1、给至少一个10us的电平触发信号2、等待高电平的到来(如果是高电平,表示接收到信号)3、接收到高电平,启动计数器4、高电平结束,关闭计数器5、取出计数器的值,并计算6、显示距离,并清空计数器,回到第一步程序如下://晶振12M 测试时使用STC89C54RD+芯片端口一样的都可以使用#include <reg52.h> //头文件#define uint unsigned int //宏定义#define uchar unsigned charuchar codetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //段码uchar code tablee[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //位码uchar temp[8]; //寄存器sbit TRIG = P1^0 ; //定义端口和模块上的引脚接一起电源应该都会接了吧端口都可以自行修改的sbit ECHO = P1^1 ;sbit duan=P2^1;sbit wei=P2^0;void xs(uint x,uint y); //声明子程序void delayms(uint t);void delayus(uint t);//定时器初始化//--------------------------------------------------------------------void Init_Timer0(void){TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响//TH0=0x00; //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出//TL0=0x00;EA=1; //总中断打开ET0=1; //定时器中断打开// TR0=1; //定时器开关打开}//主程序//-----------------------------------------------------void main(void){Init_Timer0(); //初始化while(1){uint s; //距离变量TRIG=1;delayus(12); //触发信号TRIG=0;while(!ECHO); //等待高电平TR0=1;while(ECHO); //高电平结束TR0=0;s=TH0*256+TL0; //计算高8位与低8位合并s=s/58; //为什么除以58等于厘米, Y米=(X秒*344)/2// X秒=( 2*Y米)/344 -> X秒=0.0058*Y米 -> 厘米=微秒/58//s=s*10;TH0=0;TL0=0;temp[0]=table[s/1000];temp[1]=table[(s%1000)/100];temp[2]=table[((s%1000)%100)/10];temp[3]=table[((s%1000)%100)%10];temp[4]=table[((((s%100000)%10000)%1000)%100)/10]; temp[5]=table[((((s%100000)%10000)%1000)%100)%10];xs(0,4); //调用显示delayus(100);//稍作延时。
超声波模块HC-SR04调试以及数码管显示
超声波模块HC-SR04简介以及编程1、本模块性能稳定,测度距离精确,模块高精度,盲区小。
产品应用领域:机器人避障物体测距液位检测公共安防停车场检测。
2 主要技术参数:1:使用电压:DC---5V2:静态电流:小于2mA3:电平输出:高5V4:电平输出:底0V5:感应角度:不大于15度6:探测距离:2cm-450cm7:高精度可达0.2cm实物图接线方式:VCC、trig(控制端)、echo(接收端)、GND基本工作原理:(1)采用IO口TRIG触发测距,给至少10us的高电平信号; (2)模块自动发送8个40khz的方波,自动检测是否有信号返回;(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。
测试距离=(高电平时间*声速(340M/S))/2; 本模块使用方法简单,一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,即可以达到你移动测量的值操作:初始化时将trig 和echo 端口都置低,首先向给 trig 发送至少10 us 的高电平脉冲(模块自动向外发送8个40K 的方波),然后等待,捕捉 echo 端输出上升沿,捕捉到上升沿的同时,打开定时器开始计时,再次等待捕捉echo 的下降沿,当捕捉到下降沿,读出计时器的时间,这就是超声波在空气中运行的时间,按照 测试距离=(高电平时间*声速(340M/S))/2 就可以算出超声波到障碍物的距离。
下面是飞思卡尔XS128单片机测距的程序:while(1){PT1AD0_PT1AD00 = 1;//给超声波模块输入高脉冲PITINTE_PINTE1=1; //打开PIT1定时器while(!(counter0>=4)); //等待20usPITINTE_PINTE1=0;counter0 = 0;//关闭定时器,计数清零PT1AD0_PT1AD00 = 0; //trig管脚拉低PORTB_PB0 = 0; //指示灯0while(!(PT1AD0_PT1AD01 == 1)); //等待echo输出上升沿PORTB_PB1 = 0; //指示灯1PITINTE_PINTE0=1; //打开PIT0定时器while(!(PT1AD0_PT1AD01 == 0)); //等待下降沿distance = counter*17/20; //计算距离,单位CMPITINTE_PINTE0=0; //关闭定时器PORTB_PB2 = 0; //指示灯2PITINTE_PINTE0=1; //打开定时器定时500ms,数码管显示while(!(counter>=10000)){Showing(distance); //显示距离,精确1cm}PITINTE_PINTE0=0;counter=0; //关闭定时器,清零}。
超声波测距程序(详细C语言数码管显示)
超声波测距程序(详细C语言数码管显示)#include<reg52.h> //头文件#include<intrins.h>// _nop_() 函数延时1US用#include <stdio.h>#include <string.h>#define uchar unsigned char#define uint unsigned int#define nop _nop_()sbit csb=P1^0;//超声波发送端口为P1.0sbit bai=P2^2;//数码管百位sbit shi=P2^1;//数码管十位sbit ge=P2^0;//数码管个位uchar flag;//超声波接收标志float juli1;//距离变量,用来数码管显示用int juli;uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管0到9的代码int xianshi[3];void delayshow(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void ledshow(void){xianshi[0]=juli/100;xianshi[1]=((juli%100)/10);xianshi[2]=juli%10;bai=0;P0=table[xianshi[0]];delayshow(2);bai=1;delayshow(2);shi=0;P0=table[xianshi[1]];delayshow(2);shi=1;delayshow(2);ge=0;P0=table[xianshi[2]];delayshow(2);ge=1;delayshow(2);}/***************n个ms函数*******************/ void delay_nms(uint ms) //delay ms 函数{uchar i;while(ms--){for(i=0;i<123;i++);}}/************************************************ 延时100us函数***********************************************/ void delay100us(){uchar j;for(j=50;j>0;j--);}/********************************************** 发送超声波函数,实测为38KHz信号,4个这样的方波***********************************************/ void tran(){uchar i;for(i=8;i>0;i--){csb=!csb;nop;nop;nop;nop;nop;nop;nop;nop;nop;}csb=1;//关超声波发送ET0=1;EA=1;delay100us();//延时100us左右后再开中断,避免直接回来的回波//理论上可以测量的最小距离为:0.0001×344=0.0344M=3.44CMEX0=1;//打开外部中断1TR0=1;//开定时0}void main(){uchar i;delay_nms(10);//等待单片机复位TMOD=0x11;//定时器0方式1用于计时TL0=0;TH0=0;IT0=0;//中断0下降沿有效EA=1;while(1){tran();//发送超声波while(flag==0);//等待接收if(flag==1){juli1*=17.2;//计算距离,因为时间是来回的时间,声速为344M/S 除以2就为172juli1=juli1/1000;juli=(int)(juli1);flag=0;for(i=0;i<50;i++)ledshow();juli=0;}else{juli=0;//超出距离显示000for(i=0;i<10;i++)ledshow();flag=0;}}}/*超声接收程序(外中断0)*/void cs_r() interrupt 0{EX0 = 0;//关闭外部中断0,也就是超声波接收中断TR0 = 0;//关闭定时器0EA=0;juli1=TH0*256+TL0-100;//减去开始延时的100usTL0=0;//清定时0TH0=0;flag= 1;//成功接收标志置1}/*超时清除程序(定时器中断T0)*/void overtime() interrupt 1{EA=0;TL0=0;//清定时0TH0=0;EX0 = 0;//关闭定时器0的中断TR0 = 0;//关闭定时器0ET0 = 0;//关闭定时器0的中断flag= 2;//接收标志置2}。
如何使用超声波测距仪测量距离
如何使用超声波测距仪测量距离超声波测距仪是一种常用的测距设备,广泛应用于工业、建筑、医疗等领域。
它通过发射一束高频超声波,利用超声波在空气中的传播速度与物体间距离的关系,来准确测量距离。
使用超声波测距仪测量距离的准确性和方便性使其成为很多场合的首选工具。
在使用超声波测距仪进行测量之前,首先需要了解超声波测距仪的原理。
超声波是指频率超过20kHz的声波,其在空气中传播的速度受温度、湿度等因素的影响。
超声波测距仪通过发射超声波信号,并在物体表面反射后接收反射回来的超声波信号,然后根据接收到的信号计算出物体与测距仪之间的距离。
为了确保测量结果的准确性,使用超声波测距仪时需要注意一些事项。
首先,要保持超声波测距仪与物体之间的直线距离。
由于超声波是直线传播的,如果在测量过程中遇到障碍物,会导致测量结果不准确。
其次,要注意环境的影响。
在高温、湿度或其他特殊环境下,超声波的传播速度可能会发生变化,影响测量结果的准确性。
因此,在使用超声波测距仪时,要尽量选择稳定且适合超声波传播的环境。
在进行测量之前,需要根据需要设置超声波测距仪的参数。
超声波测距仪通常具有调节声波频率和测量范围的功能。
选择适当的声波频率和测量范围能够提高测量的精度。
同时,还可以根据实际测量情况选择不同的模式,如单次测量模式、连续测量模式等。
在设置参数时,可以根据实际需求灵活调整。
使用超声波测距仪进行距离测量时,需要将测距仪对准目标物体,并按下测量按钮。
超声波测距仪会发射一束超声波信号,并接收反射回来的信号。
通过测量发射和接收超声波信号之间的时间差,可以计算出距离。
一般超声波测距仪会自动完成这个过程,不需要额外的操作。
测量完成后,超声波测距仪会显示测得的距离值。
虽然超声波测距仪具有较高的测量精度和方便的使用特点,但也存在一些限制。
首先,超声波在空气中传播的速度受温度和湿度等因素的影响,可能导致测量误差。
其次,超声波测距仪只能测量物体与测距仪之间的直线距离,对于不规则形状的物体测量可能不准确。
基于单片机的超声波测距系统毕业设计论文
关键词:超声波测距仪、STC89C52单片机
1、
1.1
随着科学技术的快速发展,超声波将在传感器中的应用越来越广。在人类文明的历次产业革命中,传感技术一直扮演着先行官的重要角色,它是贯穿各个技术和应用领域的关键技术,在人们可以想象的所有领域中,它几乎无所不在。传感器是世界各国发展最快的产业之一,在各国有关研究、生产、应用部门的共同努力下,传感器技术得到了飞速的发展和进步。但就目前技术水平来说,人们可以具体利用的传感技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域[1]。
其数字和波形都比较清晰稳定,操作简单.,可靠性高,具有断电存储功能,其串口可以方便用户对仪器的测试数据进行后处理及有关程序的开发。与国内同类产品相比,设计新颖合理,功能齐全,在仪器设计上有重大突破和创新,达到了国际先进水平。
目前,计算机市场价格大幅度下降,采用非一体化超声波检测仪器,计算机可发挥它一机多用的各种功能,实际上是最大的节约。过去那种全功能的仪器设置,还不如单独的超声仪,计算机可充分发挥各自特点。高智能化检测仪器只能满足检测条件,使用环境,重复性测试内容等基木情况一样,才可充分发挥其特有功能。仪器设计也应从实际情况出发,才能满足用户的要求。[13]综上所述,我国超声波仪器的研制与生产,有较大发展,有的型号已超过国外同类仪器水平目前常用的超声传感器有两大类,即电声型与流体力型。电声型主要有:1压电传感器;2磁致伸缩传感器;3静电传感器。流体动型中包括有气体与液体两种类型的哨笛。由于工作频率与应用目的不同,超声传感的结构形式是多种多样的,并且名称也有不同,例如在超声检测和诊断中习惯上都超声传感器称作探头,而工业中采用的流体动力型传感器称为“哨”或“笛”[14]。电子测距仪要求测量范围在0.10~5.00m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,公式L=(△t/2)*C简单易算,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。超声波测距器,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于液位、井深、管道长度的测量等场合[15]。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求。所以就顺其自然的选择用超声波探测仪来进行探测停车位是否有车了。
超声波测距仪(实时显示声光报警)_毕业设计论文报告
超声波测距仪(实时显示声光报警)毕业设计论文报告摘要机器人通过其感知系统觉察前方障碍物距离和周围环境来实现绕障、自动寻线、测距等功能。
超声波测距相对其他测距技术而言成本低廉,测量精度较高,不受环境的限制,应用方便,将它与红外传感器等结合共同实现机器人寻线和绕障功能。
本文介绍了基于STC89C51的超声波测距系统,阐述了超声波测距系统的硬件设计、软件设计及其工作原理。
该设计主要由单片机控制模块、数码管显示模块、DS18B20温度补偿模块以及声光报警模块等构成。
利用超声波的反射原理,计算超声波在空气中的传播时间的一半再乘以经过温度补偿修正后的速度就可以得出障碍物到传感器之间的距离,并在数码管显示出来。
同时,该系统在测量距离小于10cm时能进行声光报警。
该系统具有硬件电路简单、成本低、工作可靠、功耗低、体积小、误差小、有良好的测量精度等优点。
目前,超声波清洗技术、雷达技术等在医学、军事上占据着重要地位,因此研究超声波技术具有一定的研究意义。
本设计作品基本满足设计的要求,有一定的推广性,同时针对不足,如测量距离过小等,文章在最后提出了一些改进性能的可行性方案。
关键字:单片机;传感器;超声波测距;温度补偿Abstractrobot through its perception system to detect obstacles that in front of the road and the surrounding environment to achieve the distance around the barrier, auto hunt, range and other functions.Ultrasonic Ranging in terms to other ranging technology is low-cost, high accuracy, without environmental constraints, and convenient, it will be combined together with infrared sensors achieve robot hunt around the barrier function.This article describes the ultrasonic ranging system based on STC89C51,which e laborate ultrasonic Ranging System hardware design, software design and its working principle.The design is mainly controlled by the microcontroller module,LED display module, DS18B20 temperature compensation module, as well as sound and light alarm module ing the principle of reflection of the ultrasonic wave,Calculate the ultrasonic propagation time in the air in half and then multiplied by the speed after the correction of the temperature compensation that can be drawn between the obstacle to the sensor distance,And digital display.Secondly, the sound and light alarm when the system measuring distance less than 10cm .The system has an Advantage of Simple hardware circuit, low cost, reliable, low power consumption, small size, the error is small, h ave a good measurement accuracy, etc..At present, the ultrasonic cleaning technology, radar technology in medicine, the military occupies an important position,so the research ultrasound technology has a certain significance. This design works basically meet the design requirements, there are certain promotional, while for deficiencies, such as measuring the distance is too small, etc., the article concludes with a number of improvements in the performance of the feasibility of the program.KeyWords:MCU;Sensor;Ultrasonic Ranging;Temperature compensation目录摘要 0Abstract (1)第一章绪论 (4)1.1课题的研究背景 (4)1.2超声波在国内外的发展现状 (6)1.3研究目的和意义 (6)1.4研究内容 (6)1.5 论文结构 (7)第二章系统方案设计 (8)2.1设计要求 (8)2.2设计方案 (8)第三章硬件设计 (10)3.1 AT89C51单片机简介 (10)3.1.1 AT89C51各引脚的含义和功能 (11)3.2系统硬件设计组成部分 (13)3.2.1 AT89C51单片机最小系统 (13)3.2.2 数码管显示模块 (13)3.2.3超声波发射接收模块 (14)3.2.4声光报警模块 (20)3.2.5复位电路 (20)3.2.6 DS18B20温度补偿电路 (22)3.2.6.1 DS18B20内部结构及测温原理 (23)3.2.6.2 DS18B20的封装形式及引脚功能 (24)3.2.6.3 DS18B20的供电方式 (25)3.2.7 +5V电源模块 (26)第四章软件设计 (27)4.1软件整体设计 (28)4.2系统主要模块程序设计 (29)4.2.1超声波发射程序及接收中断子程序 (29)4.2.2 DS18B20访问程序 (29)第五章调试与检测 (31)5.1硬件测试 (31)5.2 软件测试 (32)5.3结果分析 (32)5.4误差来源 (32)5.5 解决方案 (33)5.6本设计所做工作 (33)总结与展望 (35)谢词 (36)参考文献 (36)附录1 电路原理图及PCB图 (38)附录2 程序清单 (40)第一章绪论超声波以其指向性好、穿透能力强、能量消耗缓慢、环境污染小等优点,因而超声波常用于距离测量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机课程设计》设计报告设计课题:超声波测距专业班级:电子信息工程xxx班学生姓名: wang da na 指导教师: cai 设计时间: 2015年7月9日赣南师范学院科技学院数学与信息科学系超声波测距一、设计任务与要求1.设计任务:(1)利用超声波测量距离。
(2)使用数码管显示测出的距离。
(3)在超出一定的范围后进行报警。
二、方案设计与论证1设计方案采用单片机来控制超声波测距,信号线发射到与超声波发射器相连的信号端,超声波发射器向既定方向发射,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物将产生回波,超声波接收器接收回波,产生电平变化。
通过单片机设计一个程序,处理超声波接受的信号,计算出发射与接受的时间差,并根据距离公式计算出距离,用数码管显示。
把所测出的距离分范围,超出2米或小于0.1米蜂鸣器报警,当处于正常范围时立即停止报警。
2 原理框图图(1) 系统原理框图51单片机数码管显示模块报警模块超声波模块三、电路设计1. 电路设计图(2)电路图2. 主要性能参数计算(1)超声波测距模块本测距系统采用超声波渡越时间检测法。
其原理为:检测从发射传感器发射的超声波经气体介质传播到接收传感器的时间t,这个时间就是渡越时间,然后求出距离l。
设l为测量距离,t为往返时间差,超声波的传播速度为c,则有l=ct/2。
超声波接收器收到反射波就立即停止计时。
再由单片机计算出距离,送数码管显示测量结果。
超声波测距的算法设计: 超声波在空气中传播速度为每秒钟340米(15℃时)。
t2是接收超声波时刻,t1是超声波声波发射时刻,t2-t1得出的是一个时间差的绝对值,假定t2-t1=0.03S,则有340m×0.03S=10.2m。
由于在这10.2m 的时间里,超声波发出到遇到返射物返回的距离如下:如图2-2-1为测距原理。
图(3)测距原理因为θ/2角度较小,可以忽略不计,所以L≈S。
超声波发出到遇到返射物返回的距离如下:L=C x ( t2 -t1 )/ 2 ;由于超声波也是一种声波,其声速c与空气温度有关,一般来说,温度每升高1摄氏度,声速增加0.6米/秒。
表2-1列出了几种温度下的声速。
表1 声速与温度的关系表温度(摄氏度)-30-20-10123100声速(米/秒)313319325323338344349386在使用时,如果温度变化不大,则可认为声速c是基本不变的,计算时取c为340m/s。
如果测距精度要求很高,则可通过改变硬件电路增加温度补偿电路的方法或者在硬件电路基本不变的情况下通过软件改进算法的方法来加以校正。
(2)单片机最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。
对52系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。
单片机最小系统电路介绍:52单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。
52单片机最小系统晶振Y1也可以采用12MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
52单片机最小系统起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好4.P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。
图(4)单片机最小系统设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。
计数值N乘以机器周期Tcy就是定时时间t。
设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。
在每个机器周期的S5P2期间采样T0、T1引脚电平。
当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。
由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。
当晶振频率为12MHz时,最高计数频率不超过1/12MHz,即计数脉冲的周期要大于2 ms。
3. 程序流程图图(5)程序流程图四、电路制作及调试1.实物图通过以上步骤,制作出实物图。
如图所示:图(6)数码管在正常范围显示图(7)数码管测出的数值2.电路调试电路主要的模块有三个:报警模块、单片机最小系统、超声波模块。
通过调节超声波模块与障碍物的距离,来显示出数据。
并与实际距离作对比,并计算误差。
3.元件清单表2元件清单器件型号数量电阻220,10k 10三极管8050NPN管 4 单片机芯片STC89C52 1四位数码管CL3461-AC 1杜邦线20cm 若干电容30pF,10uF 各一个蜂鸣器有源蜂鸣器 1晶振11.0592MHZ 1五参考文献[1]潘永雄.沙河.电子线路CAD实用教程(第四版)[M].西安电子科技大学出版社,2012.[2]高吉祥.电子技术基础实验与课程设计(第二版)[M].电子工业出版社,2005.[3]王港元.电子设计制作基础[M].江西科学技术出版社,2011.[4]彭介华.电子技术课程设计指导[M].高等教育出版社,2009[5] 李朝青.单片机原理及接口技术(第三版)[M].北京航空航天大学出版社,2006.[6] 阎石.数字电子技术基础(第五版)[M].清华大学电子学教研组出版社,2006.附录1:超声波测距程序********************************************************************* ***************************/#include <AT89x51.H> //器件配置文件#include <intrins.h>#define RX P0_1#define TX P0_2sbit beep=P3^7;unsigned int time=0;unsigned int timer=0;unsigned char posit=0;unsigned long S=0;bit flag =0;unsigned char const discode[] ={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x80,0x7c,0 x39,0x5e,0x79,0x71/*-*/};unsigned char const positon[4]={ 0x20,0x10,0x08,0x40}; void Display(void) //扫描数码管{if(posit==0){P1=(discode[disbuff[posit]]);}else{P1=discode[disbuff[posit]];}P2=positon[posit];if( ++posit>=4){posit=0;}}void Conut(void){time=TH0*256+TL0;TH0=0;TL0=0;S=(time*1.7)/100; //算出来是CMif(S<10|S>200) //判断蜂鸣器响的数值范围beep=1;else beep=0;if((S>=700)||flag==1) //超出测量范围显示“-”{flag=0;disbuff[0]=10; //“-”disbuff[3]=11;disbuff[1]=10; //“-”disbuff[2]=10; //“-”}else{disbuff[0]=S%1000/100;disbuff[3]=11;disbuff[1]=S%1000%100/10;disbuff[2]=S%1000%10 %10;}}/********************************************************/void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围{flag=1; //中断溢出标志}/********************************************************/void zd3() interrupt 3 //T1中断用来扫描数码管和计800MS 启动模块{TH1=0xf8;TL1=0x30;Display();timer++;if(timer>=400){timer=0;TX=1; // 启动一次模块_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();TX=0;}}/*********************************************************/ void main( void ){TMOD=0x11; //设T0为方式1,GATE=1;TH0=0;TL0=0;TL1 = 0x66; //设置定时初值TH1 = 0xFC; //1ms// TH1=0xf8; //2MS定时// TL1=0x30;ET0=1; //允许T0中断ET1=1; //允许T1中断TR1=1; //开启定时器EA=1; //开启总中断while(1){while(!RX); //当RX为零时等待TR0=1; //开启计数while(RX); //当RX为1计数并等待TR0=0; //关闭计数Conut(); //计算}}赣南师范学院科技学院2014-2015学年第二学期期末考试《单片机课程设计》成绩评定表专业:电子信息工程班级:xxx 班学号:姓名:王da na 课题名称超声波测距设计任务与要求(1)利用超声波测量距离。
(2)使用数码管显示测出的距离。
(3)在超出一定的范围后进行报警。
评分标准基本功能(50)焊接制作(10)程序设计(10)扩展功能(20)个人发挥(10)总分(100)指导老师时间:年月日。