基于C51的超声波测距仪设计 —数码管显示
基于51单片机的超声波测距仪设计

自动化技术综合实训报告实训题目:院专班姓学指导教师:实训地点:开课时间:序号 评价内容 分数 序号 评价内容分数1 出勤(10 分)3 实训任务完成情况(50 分) 2 课题难度分值(10 分)4实训总结报告(30 分)实训总成绩: 94 分学生姓名:魏*星实训评分指导教师评语:指导教师(签名):年月目录第 1章绪论1.1实训的目和要求1.2实训课题设计功能描述………………………………………………………1.3应解决的问题………………………………………………………………第 2章整体设计方案2.1设计原理2.2整体系统设计………………………………………………………………第 3章硬件电路设计3.1电路原理图3.2元件清单……………………………………………………………………3.3重要电路介绍3.3.1复位与晶振电路……………………………………………………3.3.2超声波发射电路……………………………………………………3.3.3超声波接收检测电路………………………………………………3.3.4显示电路第 4章软件设计4.1系统软件设计4.2程序流程图4.3程序设计与调试第 5章制板焊接调试5.1仿真结果与 PCB图5.2焊制电路板、实物运行调试5.3误差分析与校正讨论总结与体会谢词参考文献附录第1章绪论1.1实训的目的和要求生产实训是自动化专业本科生在校期间必须进行的主要实践环节之一,是培养学生工程实践能力、提高学生工程素质的一个重要组成部分。
作为一名工科学生,将来从事自动化及相关工作,为了让我们能尽早的认识社会实践,了解工业生产,提高自己的动手意识,强化个人素质,增强理论联系实际的观念,学校给我们安排了为期两周的专业实训,让我们学到的理论知识和实践联系到一起,为我们以后的走向社会打下一个坚实的基础。
这次实训的主要目的是让大家进一步了解 AT89 系列单片机的引脚、功能,晶振电路、显示电路和信号输入输出电路的设计,熟悉使用 keil 软件和用汇编语言编程完成各种处理和控制,同时学习使用软件对电路进行设计,对项目进行仿真、调试,以及 PCB 板的制作等,最主要的是了解一个小型项目的研发过程,从项目的提出到项目实现需要怎样一步步来完成,项目完成事应该大概掌握以上要求。
基于51单片机的超声波测距

本系统由51单片机及相关外围电路构成,系统由单片机系统、发射电路与接收放大电路和显示电路几部分组成。
测距范围:25CM到250CM之间。
误差:1%。
距离显示:用三位LED 数码管进行显示(单位是CM)。
该接收电路结构简单,性能较好。
硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波接收电路三部分。
单片机采用AT89C2051。
采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。
单片机用P3.5端口输出超声波换能器所需的40kHz的方波信号,P3.6端口监测超声波接收电路输出的返回信号。
显示电路采用简单实用的3位共阳LED数码管,段码输出端口为单片机的P1口,位码输出端口分别为单片机的P3.2、P3.1、P3.0口,数码管位驱运用PNP三极管S9012三极管驱动。
超声波发射、接收电路如图。
超声波发射部份由电阻R2及超声波发送头T40板成;接收电路由BG1、BG2X组成的两组三级管放大电路组成;检波电路、比较整形电路由C7、D1、D2及BG3组成。
40kHz的方波由A T 8 9 C 2 0 5 1单片机的P 3 .5驱动超声波发射头发射超声波,经反射后由超声波接收头接收到40kHz的正弦波,由于声波在空气中传播时衰减,所以接收到的波形幅值较低,经接收电路放大,整形,最后输出一负跳变,输入单片机的P3脚。
该测距电路的40kHz方波信号由单片机A T 8 9 C 2 0 5 1 的P 3 .5发出。
方波的周期为1/40ms,即25µs,半周期为12.5µs。
每隔半周期时间,让方波输出脚的电平取反,便可产生40kHz 方波。
由于单片机系统的晶振为12M晶振,因而单片机的时间分辨率是1µs,所以只能产生半周期为12µs或13µs的方波信号,频率分别为41.67kHz和38.46kHz。
本系统在编程时选用了后者,让单片机产生约38.46kHz的方波。
基于51单片机的超声波测距仪设计.

江苏经贸职业技术学院毕业设计(论文)单片机的超声波测距仪设计基于题目:MCS51) 信息技术学院系 (院12应用电子专业班级1227031128 号学学生姓名万小伟董李江职校内导师称老师职夏国平企业导师称工程师职企业导师潘仕美称研究生5年2015月日12基于MCS51单片机的超声波测距仪设计摘要:伴随着社会的发展,人们的生活质量不断地提高,各个的城市不断地在发展,当然城市的排水系统得到了很大的发展和改进,由于很多的原因和很多的因素,每个城市的排水系统,现在的城市的发展和建设往往忽略一些重要的项目那就是排水系统。
所以好多的城市经常出现开挖已经建设好的建筑和工程设施来改进排水系统因此他们忽视到这个问题的严重性。
因此,我的论文设计是采用以AT89C51单片机为核心的高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法它还有一个重要的指标那就是低成本一种的设计方法。
通过一系列的实验反馈,这个软件设计的非常的合理、低成本、实时性良好,经过开发和研究,因此在许多的方面得到很多的发展和有效的解决一些重要的问题比如在汽车的倒车,建筑的工地上,还有一些重要的工业现场的重要的位置等等。
关键词:超声波测距仪AT89C51The design of ultrasonic range finder based onMCS51Abstract:With the development of science and technology, the improvement of people'sstandard of living, speeding up the development and construction of the city. urban drainagesystem have greatly developed their situation is constantly improving. control system Freesewage culvert clear guarantee robot, the robot is designed to clear the culvert sewage to thecore.At the core of the design using AT89C51 low-cost, high accuracy, Micro figures show that theultrasonic range finder hardware and software design methods. signal processing, and theultrasonic range finder function. On the basis of the overall system design, hardware andsoftware by the end of each module.Keywords: Silent Wave Measure Distance AT89S52目录第一章绪论 ................................................ - 1 -1.1课题设计的目的和意义 (1)1.2超声波测距仪设计思路 (1)1.2.1超声波测距原理及方案论证 (1)1.2.2超声波测距仪原理框图 (2)第二章课程的方案设计 ...................................... - 3 -2.1系统整体方案的设计 (3)第三章 51系列单片机的功能特点及测距原理 ................... - 3 -3.1基于51系列单片机的功能特点 (3)3.2单片机实现测距原理 (4)3.3超声波测距原理和结构 (5)3.4超声波检测发射电路 (5)3.5超声波检测接受电路 (5)第四章系统的软硬件的调试和程序图 .......................... - 6 -总结 ..................................................... - 10 -致谢 ..................................................... - 10 -参考文献 .................................................. - 11 -第一章绪论1.1课题设计的目的和意义论文设计目的;随着社会的不断地发展,电子测量技术得到了长远的展,超声波的精准测量得到了科技人员的重视和研究。
基于51单片机的超声波测距系统的毕业设计

基于51单片机的超声波测距系统的毕业设计超声波测距系统是一种常见的非接触式测距技术,通过发送超声波信号并测量信号的回波时间来计算距离。
本文将介绍基于51单片机的超声波测距系统的毕业设计。
首先,我们需要明确设计的目标。
本设计旨在通过51单片机实现一个精确、稳定的超声波测距系统。
具体而言,我们需要实现以下功能:1.发送超声波信号:通过51单片机的IO口控制超声波发射器,发送一定频率和波形的超声波信号。
2.接收回波信号:通过51单片机的IO口连接超声波接收器,接收并放大返回的超声波信号。
3.信号处理:根据回波信号的时间延迟计算出距离,并在显示器上显示出来。
4.稳定性和精确性:设计系统时需考虑测量过程中误差的影响,并通过合适的算法和校准方法提高系统的稳定性和精确性。
接下来,我们需要选择合适的硬件和软件配合51单片机实现上述功能。
硬件方面:1.51单片机:选择一款性能稳定、易于编程的51单片机,如STC89C522.超声波模块:选择一款合适的超声波传感器模块,常见的有HC-SR04、JSN-SR04T等。
模块一般包括发射器和接收器,具有较好的测距性能。
3.显示设备:选择合适的显示设备,如7段LED数码管或LCD显示屏,用于显示测距结果。
软件方面:1.C语言编程:使用C语言编写51单片机的程序,实现超声波测距系统的各项功能。
2.串口通信:通过串口与上位机进行通信,可以对系统进行监控和远程控制。
3.算法设计:选择合适的算法计算超声波回波时间延迟,并根据时间延迟计算距离值。
在设计过程中,我们需要进行以下步骤:1.硬件连接:按照超声波模块的说明书,将模块的发射器和接收器通过杜邦线与51单片机的IO口连接。
2.软件编程:使用C语言编写51单片机的程序,实现超声波模块的控制、信号接收和处理、距离计算等功能。
3.系统测试:进行系统的功能测试和性能测试,验证系统的可靠性和准确性,同时调试系统中出现的问题。
4.系统优化:根据测试结果,对系统进行优化,提高系统的稳定性和精确性。
基于51单片机的超声波测距仪设计.

江苏经贸职业技术学院毕业设计(论文)单片机的超声波测距仪设计基于题目:MCS51) 信息技术学院系 (院12应用电子专业班级1227031128 号学学生姓名万小伟董李江职校内导师称老师职夏国平企业导师称工程师职企业导师潘仕美称研究生5年2015月日12基于MCS51单片机的超声波测距仪设计摘要:伴随着社会的发展,人们的生活质量不断地提高,各个的城市不断地在发展,当然城市的排水系统得到了很大的发展和改进,由于很多的原因和很多的因素,每个城市的排水系统,现在的城市的发展和建设往往忽略一些重要的项目那就是排水系统。
所以好多的城市经常出现开挖已经建设好的建筑和工程设施来改进排水系统因此他们忽视到这个问题的严重性。
因此,我的论文设计是采用以AT89C51单片机为核心的高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法它还有一个重要的指标那就是低成本一种的设计方法。
通过一系列的实验反馈,这个软件设计的非常的合理、低成本、实时性良好,经过开发和研究,因此在许多的方面得到很多的发展和有效的解决一些重要的问题比如在汽车的倒车,建筑的工地上,还有一些重要的工业现场的重要的位置等等。
关键词:超声波测距仪AT89C51The design of ultrasonic range finder based onMCS51Abstract:With the development of science and technology, the improvement of people'sstandard of living, speeding up the development and construction of the city. urban drainagesystem have greatly developed their situation is constantly improving. control system Freesewage culvert clear guarantee robot, the robot is designed to clear the culvert sewage to thecore.At the core of the design using AT89C51 low-cost, high accuracy, Micro figures show that theultrasonic range finder hardware and software design methods. signal processing, and theultrasonic range finder function. On the basis of the overall system design, hardware andsoftware by the end of each module.Keywords: Silent Wave Measure Distance AT89S52目录第一章绪论 ................................................ - 1 -1.1课题设计的目的和意义 (1)1.2超声波测距仪设计思路 (1)1.2.1超声波测距原理及方案论证 (1)1.2.2超声波测距仪原理框图 (2)第二章课程的方案设计 ...................................... - 3 -2.1系统整体方案的设计 (3)第三章 51系列单片机的功能特点及测距原理 ................... - 3 -3.1基于51系列单片机的功能特点 (3)3.2单片机实现测距原理 (4)3.3超声波测距原理和结构 (5)3.4超声波检测发射电路 (5)3.5超声波检测接受电路 (5)第四章系统的软硬件的调试和程序图 .......................... - 6 -总结 ..................................................... - 10 -致谢 ..................................................... - 10 -参考文献 .................................................. - 11 -第一章绪论1.1课题设计的目的和意义论文设计目的;随着社会的不断地发展,电子测量技术得到了长远的展,超声波的精准测量得到了科技人员的重视和研究。
基于51单片机的超声波测距仪

控制
定时器 计时器
接收检测
超声波 发射器
超声波 接收器
显示器
图 3 超声波测距原理框图
3.1 单片机系统及显示电路 单片机采用 STC89C5。5 采用 11.0592MHz高精度的晶振,以获得较稳定的时
钟频率,减小测量误差。单片机用 P1.0 端口输出超声波转化器所需的 40KHz方 波信号,利用外中断 0 口检测超声波接受电路输出的返回信号。 显示电路采用简 单实用的 LCD1602液晶显示电路,用 P0 做为数据口。单片机系统及显示电路如 图 4 所示。
机电信息工程学院
For personal use only in study and research; not for commercial use
单片机系统课程设计报告 For personal use only in study and research; not for commercial use
图 4 单片机及显示电路原理图
3.2 超声波发射电路 超声波发射电路原理图如图 5 所示。
图 5 超声波发射电路原理图
压电超声波转换器的功能: 利用压电晶体谐振工作。 内部结构图 6 所示,它 有两个压电晶片和一个共振板。 当它的两极外加脉冲信号, 其频率等于压电晶片
的固有振荡频率时, 压电晶片将会发生共振, 并带动共振板振动产生超声波, 这 时它就是一超声波发生器 ; 如没加电压,当 共振板接受到超声波时,将压迫压电振荡 器作振动,将机械能转换为电信号,这时 它就成为超声波接受转换器。超声波发射 转换器与接收转换器其结构稍有不同。
器收到反射波就立即停止计时。超声波在空气中的传播速度为
340m/s,根据计
时器记录的时间 t ,就可以计算出发射点距障碍物的距离 (s) ,即:s=340t/2 。
超声波测距用数码管显示

#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();//计算}}/********************************************************************结束*********************************************************************/。
基于51单片机超声波测距仪设计

个性化实验基于51单片机超声波测距器设计摘要传统地测距方法存在不可克服地缺陷.例如,液面测量就是一种距离测量,传统地电极法是采用差位分布电极,通过给电或脉冲来检测液面,电极由于长期浸泡于水中或其他液体中,利用超声波测量距离就可以解决这些问题,因此超声波测量距离技术在工业控制、勘探测量、机器人定位和安全防范等领域得到了广泛地应用.本设计以STC89C52单片机为核心控制定时器产生超声波脉冲并计时,计算超声波自发射至接收地往返时间,从而得到实测距离.并且在数据处理中采用了温度补偿对声速进行调整,用1602液晶显示速度和测量距离.整个硬件电路有超声波电路、电源电路、显示电路等组成.个探头地信号经单片机综合分析处理,实现超声波测距器地功能.在此基础上设计了系统地总体方案,最后通过硬件和软件实现了测距功能.此系统具有易控制、工作可靠、测距准确度高、可读性强和流程清晰等优点,即过系统扩展和升级,可以有效地解决汽车倒车,建筑施工工地以及一些工业现场地位置监控.关键词:STC89C52;超声波;温度补偿;测距目录绪论 (3)设计目地和意义 (3)设计任务和要求 (3)系统方案设计 (4)设计原理 (4)设计框图 (5)主要元器件介绍 (5)STC89C52 (5)LCD1602液晶显示器 (6)HC-SR04超声波模块 (8)DS18B20温度传感器 (9)系统硬件结构设计 (10)单片机电路 (10)LCD显示电路 (11)温度补偿电路 (11)电源电路 (12)系统软件设计 (12)主程序流程 (12)测距流程图 (13)测试 (14)测试结果 (14)误差分析 (15)总结 (15)附录 (17)整体电路图 (17)PCB布线图 (18)实物图 ......................................................................................................错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
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_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_();
posit=0; }
//扫描数码管
程序代码(子程序)
void Conut(void)
{
time=TH0*256+TL0; //读出T0计数值
TH0=0;
TL0=0;
//清空计数器
S=(time*1.7)/100; //算出来是cm
if((S>=700)||flag==1) //超出测量范围显示“-”
#define RX P1_1
// ECH0 接P1.1
#define TX P1_2
//模块TRIG接 P1.2
unsigned int time=0; //变量声明
unsigned int timer=0;
unsigned char posit=0;
unsigned long S=0;
bit flag =0;
while(1) { while(!RX); TR0=1; while(RX); TR0=0; Conut(); }
//设T0为方式1,GATE=1;
//2ms定时
//允许T0中断 //允许T1中断 //开启定时器 //开启总中断
//当RX为零时等待 //开启计数
//当RX为1计数并等待 //关闭计数 //调用Count函数计算
unsigned char disbuff[4] ={ 0,0,0,0,};//数组,用来存放距离数据
void Display(void);
void Conut(void);
程序代码(主程序)
void main( void ) { TMOD=0x11; TH0=0; TL0=0; TH1=0xf8; TL1=0x30; ET0=1; ET1=1; TR1=1; EA=1;
程序代码(子程序)
void Display(void) { P0=0x00; //关闭显示 if(posit==0) {P0=(discode[disbuff[posit]])|0x80;}
else {P0=discode[disbuff[posit]];}
P2=positon[posit]; posit++; if(posit>=3)
基于C51的超声波测距仪设计
—数码管显示
超声波测距原理
基本工作原理: (1)采用 IO 口 TRIG 触发测 距,给最少 10us 的高电平 信呈。 (2)模块自动发送 8 个 40khz 的方波,自动检测 是否有信号返回; (3)有信号返回,通过 IO 口 ECHO 输出一个高电平, 高电平持续的时间就是超 声 波从发射到返回的时间。 测试距离=(高电平时间*声 速(340M/S))/2;
程序流程图
开始 初始化 发送超声波T1计时 接收到反射波
T1停止计时,保存数据 根据时间算出距离 显示测量距离
程序代码
//接线:模块TRIG接 P1.2 ECH0 接P1.1 //数码管:共阴数码管P0接数据口,P2.3 P2.4 P2.5接选通数码管
#include <AT89x52.H>
#include <intrins.h>
0.07
0.8
0.73
0.07
0.9
0.81
0.09
1
0.9
0.1
1.5
1.35
0.15
2
1.82
0.18
结果展示
近距离测试
远距离测试
}
程序代码(子程序)
void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围
{
flag=1;
//中断溢出标志
}
void zd3() interrupt 3 //T1中断用来扫描数码管和计800ms启动模块
{
TH1=0xf8;
TL1=0x30;
//定时2ms
Display();