




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于单片机的超声波测距仪设计目录1目的12本设计的主要研究容22.1超声波测距的原理22.2设计的主要容23超声波测距硬件电路设计33.1超声波测距系统电路总体设计方案34超声波测距系统电路各部分模块的设计44.1超声波发射接收电路的设计44.1.1超声波发射部分44.1.2超声波接收部分44.1.3LCD显示部分54.1.4报警部分65系统软件设计75.1程序代码:76系统误差分析146.1温度对实验的影响1414 / 151 目的1.1 选择超声波测距的原因超声波测距是近十几年来随着集成电路技术迅速发展才开始应用的,相对于其它诸多测距方法而言,超声波测距的优点突出。运用到现代距离测量的新
2、要求的现代装置中,相对于智能小车、红外感应太阳能路灯控制系统和液晶显示,我认为我们的优势十分明显。智能小车他们工序过于繁琐,虽然可利用程度最高,但很难在短时间完成这样一个高质量的任务。红外感应太阳能路灯控制系统,虽然能完成,但以后的发展空间不大,在现在几乎已经非常普与了。液晶显示,虽然前卫,但发展空间已不大。2 本设计的主要研究容2.1 超声波测距的原理超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波, 从而测出发射和接收回波的时间差t,然后求出距离 (1-1)式(1-1)中的c为超声波在空气中传播的速度。2.2 设计的主要容单片机控制超声波模块发射与检波接收,其系统原理框图如图1所
3、示。 图1 超声波测距系统框图通过P1.0发一个40KHz的方波脉冲信号,遇被测物反射后回波被超声波接收换能器接收。进行相关处理后,输入单片机的INT0(P3.2)脚产生中断,计算中间经历的时间,然后根据公式(1-1)算出距离。3 超声波测距硬件电路设计3.1 超声波测距系统电路总体设计方案由单片机STC89s52编程产生40KHz的方波脉冲,由P1.0口输出,就可以在接收口P3.2(Echo引脚)等待高电平输出。一旦有高电平出处,即在模块中经过放大电路,驱动超声波发射探头发射超声波。发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的检波放大、积分整形与一系列处理,接
4、收口P3.2口即变为低电平,读取单片机中定时器的值。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由液晶显示出来。该测距装置是由超声波模块、单片机和LCD显示电路组成。传感器输入端与发射接收电路组成超声波测距模块,模块的输出输入端与单片机相连接,单片机的输出端与显示电路输入端相连接。其时序图如图3-1所示。图2 时序图超声波测距模块的发射端在T0时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。计算时间差,即可得到超声波在媒介中传播的时间t,由此便可计算出距离。4 超声波测距系统电路各部分模块的
5、设计4.1 超声波发射接收电路的设计4.1.1 超声波发射部分超声波发射部分是为了让超声波发射换能器TCT4016T能向外界发出40 kHz左右的方波脉冲信号.编程由单片机P1.0端口输出40 kHz左右的方波脉冲信号,由于单片机端口输出功率不够,40 kHz方波脉冲信号分成两路,送给一个由74HC04组成的推挽式电路进行功率放大以便使发射距离足够远,满足测量距离要求,最后送给超声波发射换能器TCT4016T以声波形式发射到空气中。发射部分的电路,如图2所示。图中输出端上拉电阻R31,R32,一方面可以提高反向器74HC04输出高电平的驱动能力,另一方面可以增加超声换能器的阻尼效果,缩短其自由
6、振荡的时间。4.1.2 超声波接收部分上述TCT4016T发射的在空气中传播,遇到障碍物就会返回,超声波接收部分是为了将反射波(回波)顺利接收到超声波接收换能器TCT4016R进行转换变成电信号,并对此电信号进行放大、滤波、整形等处理后,这里用索尼公司生产的集成芯片CX20106,得到一个负脉冲送给单片机的P3.2(INT0)引脚,以产生一个中断。接收部分的电路,如图3所示。4.1.3 LCD显示部分本设计显示部分采用字符型TC1602液晶显示所测距离值。TC1602显示的容量为2行16个字。液晶显示屏有微功耗、体积小、显示容丰富、超薄轻巧、使用方便等诸多优点,与数码管相比,显得更专业、美观。
7、使用时,可将P0与LCD的数据线相连,P2口与LCD的控制线相。连如5图LCD仿真图5 LCD PROTRUS仿真其中,TC1602第4脚RS为寄存器选择,第5脚RW为读写信号线,第6脚E为使能端。第714脚:D0D7为8位双向数据线。这里要注意的是,为了布线方便,单片机端的D0D7是接到LCD602的D1D0,正好相反,因此在编写软件时需要做处理,使读取正确。4.1.4 报警部分采用一个蜂鸣器,由P1.2输出一定频率的信号,在连接到蜂鸣器之前,经过一个三极管9 012的放大。报警部分的连线,如图6所示。图6 蜂鸣器PROTEUS仿真图5 系统软件设计软件方面:软件分为两部分,主程序和中断服务
8、程序,如图4-1所示。主程序完成初始化工作、超声波发射和接收,距离计算、结果的输出。外部中断服务子程序主要完成时间值的读取。图表 1主程序流程图5.1 程序代码:#include <reg52.h> #include <intrins.h> #define uchar unsigned char#define uint unsigned int#define ulong unsigned longsbit Trig =P10; /发射40KHZ波 sbit Echo =P32; /中断入口sbit beep=P12; /蜂鸣器端口sbit rs= P24;sbit rw
9、 = P25;sbit ep = P26;bit succeed_flag;uint flag,timeH,timeL,time,distance;unsigned char code dis1 = "the juli is:"unsigned char code dis2 = "0123456789"unsigned char code dis3 = "mm"void delay(unsigned char ms)/LCD延时子程序unsigned char i;while(ms-)for(i = 0; i< 250; i+)
10、_nop_();_nop_();_nop_();_nop_();void delay_20us() /延时20us uchar bt ; for(bt=0;bt<100;bt+); bit lcd_bz() /测试LCD忙碌状态bit result;rs = 0;rw = 1;ep = 1;_nop_();_nop_();_nop_();_nop_();result = (bit)(P0 & 0x80);ep = 0;return result;void lcd_wcmd(unsigned char cmd) /写指令数据到LCD子程序while(lcd_bz();/判断LCD是
11、否忙碌rs = 0;rw = 0;ep = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;void lcd_pos(unsigned char pos) /设定显示位置子程序lcd_wcmd(pos | 0x80);void lcd_wdat(unsigned char dat) /写入显示数据到LCD子程序while(lcd_bz();/判断LCD是否忙碌rs = 1;rw = 0;ep = 0;P0 = dat;_nop_();
12、_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;void lcd_init() /LCD初始化子程序lcd_wcmd(0x38);delay(1);lcd_wcmd(0x0c);delay(1);lcd_wcmd(0x06);delay(1);lcd_wcmd(0x01);delay(1);void main() unsigned char i;lcd_init(); /初始化LCDdelay(10);lcd_pos(0x01);/设置显示位置i = 0;while(dis1i != '0
13、9;)lcd_wdat(dis1i);/显示字符i+;beep=1;Trig=0; /首先拉低脉冲输入引脚 EA=1;/打开总中断0TMOD=0x10; /定时器1,16位工作方式 while(1) EA=0; /关总中断Trig=1; /超声波输入端delay_20us(); /延时20us Trig=0; /产生一个20us的脉冲while(Echo=0); /等待Echo回波引脚变高电平 succeed_flag=0; /清测量成功标志 EA=1;EX0=1; /打开外部中断0 TH1=0; /定时器1清零TL1=0; /定时器1清零TF1=0; /计数溢出标志TR1=1; /启动定时器
14、1delay(20); /等待测量的结果TR1=0; /关闭定时器1 EX0=0; /关闭外部中断0if(succeed_flag=1) time=timeH*256+timeL;distance=time*0.172; /0.344/2=0.172mmlcd_pos(0x42); /设置显示位置lcd_wdat(dis2distance/100);/百位lcd_wdat(dis2(distance%100)/10);/十位lcd_wdat(dis2distance%10);/个位lcd_wdat(dis30);delay(10);lcd_wdat(dis31);if(succeed_flag=0)distance=0; /没有回波则清零beep=!beep; /测试蜂鸣器变化 /外部中断0,用做判断回波电平void exter() interrupt 0 / 外部中断0是0号 timeH =TH1; /取出定时器的值 timeL =TL1; /
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 茶叶订单合同协议书
- 高三寒假奋战协议书
- 门面解约合同协议书
- 脑部医学成像技术
- 饭店风险责任协议书
- 长期采购委托协议书
- 鱼池转让合同协议书
- 伯利收购切尔西协议书
- 食堂签订安全协议书
- 音乐培训合作协议书
- 远程培训学习总结(4篇)
- 全息照相与信息光学实验报告
- 2022年02月上海铁路局下属铁路疾病预防控制所公开招聘毕业生笔试参考题库含答案解析
- 激光设备买卖合同模板(2篇)
- GB/T 24815-2009起重用短环链吊链等用6级普通精度链
- 线描画基本功教学课件
- 船上投诉程序(中英文)
- DB37-T 3781-2019 政务服务中心能源消耗定额标准-(高清版)
- 重症胰腺炎(1)课件
- 科学素养全稿ppt课件(完整版)
- 克拉泼改进型电容三点式振荡器
评论
0/150
提交评论