收藏 分享(赏)

单片机课程设计 超声波测距系统的设计.doc

上传人:yoyooong 文档编号:5695035 上传时间:2022-06-13 格式:DOC 页数:14 大小:10.25MB
下载 相关 举报
单片机课程设计 超声波测距系统的设计.doc_第1页
第1页 / 共14页
单片机课程设计 超声波测距系统的设计.doc_第2页
第2页 / 共14页
单片机课程设计 超声波测距系统的设计.doc_第3页
第3页 / 共14页
单片机课程设计 超声波测距系统的设计.doc_第4页
第4页 / 共14页
单片机课程设计 超声波测距系统的设计.doc_第5页
第5页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、目录题目:超声波测距系统的设计6一、需求分析6二、系统总体设计61.硬件设计61.1主控电路61.2超声波模块62.软件设计7三、系统详细设计71.详细电路图7(1)STC89C52RC芯片7(2)时钟电路8(3) 复位系统8(4) LCD显示8(5) 外接超声波电路9(6) 外界供电USB10(7) 总布局图102.程序流程图11(1)主程序流程图11(2)程序12四、系统实现与测试161.实物展示162.测得数据163.误差164.误差产生的原因17五、总结17题目:超声波测距系统的设计一、需求分析超声波测距因为系统具备抗干扰能力强,体积较小,测量范围比较广,在测量测绘领域得到广泛应用,以

2、及操作简捷的优势。例如汽车雷达、机器人避障和水下测绘等。超声波测距技术潜移默化地贯穿在人们生活之中,为我们带来极大便利。如今,超声波测距技术在提高精度和测量范围等方面已经取得长足进展,发展起多用途、适用于不同领域的测量方法。随着,它更多的可以作为一种工具来促进科技的发展,为未来拥有更精密仪器或更高级的技术奠定基础。二、系统总体设计1.硬件设计基本系统基础硬件总体结构设计该系统测量显示系统由一台单片式数控微机最小射频测量显示系统、lcd1602显示系统核心功能模块、超声波接收模块、发送模块共3个主要核心功能模块组成部分共同组成。51单片机的系统主控模块芯片电路使用5l系列中的stc89c52单片

3、机,该系列单片化电机不仅工作原理性能稳定,同时也认为是在进行单片化电机应用课程设计中经常需要使用和遇到的一种控制核心芯片。硬件显示图lcd1602模块广泛采用,该系统由单片机最小系统、LCD1602显示模块、 超声波收、发模块共3个模块组成 (如图1)。 51单片机的主控芯片使用5l系列stc89c52单 片机,该单片机工作性能稳定,同时也是在 单片机课程设计中经常使用到的控制芯片。显示LCD1602模块采用,其突出优点 就是可以显示汉字等字符,且与51单片机的 接口简单,操作方便。 超声波的发射模块、接收模块采用HC- SR04超声波的测距模块,该模块稳定性能好,距离测量精确,距离测量的精度

4、高,盲区 (1cm)接近。1.1主控电路 本系统采用了STC89C52作为主控电 路,图2为主控电路原理图。图3为主控单片机外脚电路实物图。 STC89C52为STC公司的一款通用微式的单片机芯片,其操作简单,功能性强,适用于简单的控制处理。 该芯片加密性强,具有超强抗干扰性能力1.2超声波模块HCSRO4模块可以提供2cm一400cm的非接触式距离感测功能,测距精度可达到 2mm。如图1-1所示。图1-12.软件设计(1) HC-SR04超声波速度传感器采集数据接入单片机端口。(2) LCD602初始化和显示的子程序设计模块。(3) 本次使用c语言的设计编写程序:使用Keil Version

5、5进行的程序编译。(4) 主程序:分为系统的初始化,按键的处理和每个子程序的调理。以下图示2-1描述了每个模块的关系。.图2-1三、系统详细设计1.详细电路图(1)STC89C52RC芯片如图3-1所示STC89C52为STC公司的一款高频通用主控单片机,其硬件操作简便,功能强大,适用于简单的信号控制处理系统的高频数据处理和电机动作状态控制两个方面。该主控芯片硬件加密性强,具有超强抗干扰保护性能: 图3-11. 高效的抗干扰静电(esd防护保护)2. .轻松过滤3kv/4kv快速控制脉冲的抗干扰(eft保护测试)3. 宽广的电压,不怕高频电源线的抖动4.宽广的温度控制范围:-40C85C5.i

6、/0h也可经过特殊优化处理(2)时钟电路由晶振择11.0952Mhz和电容选择33pF构成,如图3-2所示。图3-2 (3) 复位系统单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。当复位电平持续两个机器周期以上时复位有效。复位电平的持续时间必须大于单片机的两个机器周期。如图3-3所示。图3-3(4) LCD显示LCD各引脚的功能介绍如下。 所接线如图3-4所示。引脚1:VSS为地电源。引脚2:VDD接5V正电源。引脚3:VL为液晶显示器对 图3-4比度调整端,接正电源时对比度最弱,使用时可以通过一个大概10kQ的电位器调整相应的对比度。引脚4:RS为寄存器选择脚,

7、高电平时选择数据寄存器、低电平时选择指令寄存器。引脚5:R/W为读/写信号线。引脚6:E端为使能端(5) 外接超声波电路如下图3-5所示图3-51. 超声波模块的ahcsro4模块中还可以同时提供一个1cm一400cm的非接触式和远距离感应探测器的功能,测距器的精度范围可最高达到3mm。2. 主要应用技术参数:(1) 系统使用水平电压:dc5v(2) (2)使用静态水平电流:小于 mA(3) (3)动态电平电压输出:高5(4) v(4)动态电平电压输出:低Ov(5) 其与感应器的角度:方向不大于15度(6) 其与探测器的距离:cm一450cm(7)高探测精度:可达0.3cm3. 模块正常运行工

8、作时的基本原理:(1) 每个模块信号采用10触发器的自动测距,给至少一个为0lous的一个低频高电平信号输出模块信号;(2) 每个输出模块自动分别连续发送8个40khz的方波,自动检测一个模块信号是否已接收到有效的输出信号自动进行返回;(3) 通过检测有效的输出信号自动进行返回,通过10输出一定的频率高电平,高电平输出信号可以持续的达到最长工作时间,也是说就是一个高频超声波从前端持续发射到一个接收器端返回的最长持续时间。(4) 模块每个测试点的工作距离:(它的一个高电平信号持续时间为超声速(340m/s)3.模块主要特点:(1)激光超声波对物体色彩和外部光照透明度不敏感,可在黑暗、有害的粉尘和

9、无法测量透明度等物体的特殊环境下进行使用:超声波对外部电磁干扰不敏感,可在则就全造成电池锁芯。(6) 外界供电USB如图3-6所示。图3-6(7) 总布局图如图3-7所示图3-72.程序流程图(1)主程序流程图如图3-7所示。 图3-8(2)程序#include#include#includetypedef unsigned char a1;typedef unsigned char a2;sbit Trig = P21;/接口sbit Echo = P20;sbit beep=P15;void delay(a2 i)/延时函数while(i-);unsigned char PuZh= dis

10、tance;/显示屏显示出的文字unsigned char A15 = 0,1,2,3,4,5,6,7,8,9,.,0,M;/显示器显示的段码static unsigned char DisNum = 0; /显示用指针 unsigned int time=0;/记录中断次数 unsigned long S=0;/记录距离长度 bit f =0;/定义一个标志位f unsigned char buff4= 0,0,0,0,;/定义一个数组buff char data0=0,data1=0,data2=0;/定义3个串口 void UsartInit()SCON=0X50;/设置串口为方式1接收

11、,REN=1TMOD=0X21;/设置定时器T1为方式2定时PCON=0X80;/将SMOD设置为1TH1=0XF3;/设置定时器初值TL1=0XF3;ES=1;/允许串行口中断EA=1;/总中断打开 TR1= 1;/启动定时器T1 char dat=0;/定义一个字符型变量dat,用来记录计算次数,做标志位void Conut(void) time=TH0*256+TL0; TH0=0;/定义定时器初值 TL0=0; S=(time*1.7)/100; /算出来是CM if(S=700)|f=1) /超出测量范围显示“0” f=0; DisplayOneChar(11, 1, A11);/显

12、示0 DisplayOneChar(12, 1, A10);/显示点 DisplayOneChar(13, 1, A11);/显示0 DisplayOneChar(14, 1, A11);/显示0 DisplayOneChar(15, 1, A12);/显示单位M else buff0=S%1000/100;/小数点前1位 buff1=S%1000%100/10;小数点后1位 buff2=S%1000%10 %10;小数点前2位 DisplayOneChar(11, 1, Abuff0); DisplayOneChar(12, 1, A10);/显示点 DisplayOneChar(13, 1

13、, Abuff1); DisplayOneChar(14, 1, Abuff2); DisplayOneChar(15, 1, A12);/显示M Data0=buff0+48; Data1=buff1+48; Data2=buff2+48;if(dat=1|dat=2)SBUF=data0;/向SBUF写入点亮数据,启动串行发送while(!TI);/如果TI为假,那么TI为0TI=0;SBUF=.; /向SBUF发送点亮.的数据while(!TI);TI=0; SBUF=data1;/向SBUF发送data1的数据while(!TI);TI=0; SBUF=data2;/向SBUF发送da

14、ta2的数据while(!TI);TI=0;SBUF=M; /向SBUF发送点亮M的数据while(!TI);TI=0;SBUF=0x0d;/发送数据while(!TI);TI=0;SBUF=0x0a;/发送数据while(!TI);TI=0; if(dat=1)dat=0;/dat取反 void zd0() interrupt 1 /T0中断用来计数器溢出,超过测距范围 f=1; /中断溢出标志 void StartModule() /启动模块 Trig=1; /启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop

15、_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); Trig=0; void delayms(unsigned int ms)/定义一个延时函数unsigned char i=100,j;for(;ms;ms-)while(-i)j=10;while(-j);void main(void)/主函数 TMOD=0x01; /设T0为方式1,GATE=1; TH0=0;/设置初值 TL0=0

16、; ET0=1; /允许T0中断 EA=1; /开启总中断InitLcd1602();/数据写入显示器LcdShowStr(0,0,PuZh);UsartInit();/引入函数UstartInit的数据while(1) StartModule(); while(!Echo);/当RX为零时等待 TR0=1; /开启计数 while(Echo);/当RX为1计数并等待 TR0=0;/关闭计数 Conut();/计算总值 delayms(80);/延迟80void Usart() interrupt 4/串行口4的中断服务函数dat=SBUF;/接收的开关数据从SBUF读到dat中RI =0;/

17、接收中断标志位RI清零四、系统实现与测试1.实物展示2.测得数据 超声波的距离所得出的数据如下表: 单位:cm距离010253140实测距离0102529393.误差(1) 从0-25cm经过米尺测量的长度,数据较为精确,测试工程数据稳定。(2) 从25-50cm经过米尺测量的长度,出现了1-2cm的偏差。还有需要改进的。4.误差产生的原因(1) 实际环境因素的影响,传播介质温度的改变、温度的变化,压力、密度等都会对超声波的发射造成不稳定,用手当挡板可能会造成超声波接收到的距离有所误差。(2) 电路所产生的频率不够高,导致超声波发射的不够远,测量的范围较小,需增大频率来改善。五、总结1.该设计完成了基本要求的实现,但在实物制作过程,因为电路板的一些原因供不上点,电路出现开路,供电低,LCD1602出现乱码不显示等问题,经过两天的排查后,在正确的电路图中,还是要不到PCB板的原因,只能重新打板实现功能,完成设计。2.经过这次做出的实物,通过对超声波模块的了解,用过调节电路,将超声波的频率加大,测出的数据更为精确,能够测的更远。3.原本有蜂鸣器的报警器,但因前面的错误将其舍去了。

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 教育专区 > 高等教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报