基于52单片机的超声波测距模块(hc

您所在的位置:网站首页 单片机超声波测距实验报告怎么写 基于52单片机的超声波测距模块(hc

基于52单片机的超声波测距模块(hc

2024-07-13 12:09| 来源: 网络整理| 查看: 265

二年级课设做了超声波测障仪,用的是hc-sr04超声波测距模块+1602液晶显示器和52单片机。

由于自己之前的学习很是不牢固,在课设的时候没少走弯路,最后在第二个周的星期五做了出来,浪费了很多的时间,所以就想着把这个东西写出来,一则加强自己的理解,二则或许能帮助帮助别人。

HC-SR04超声波模块工作原理

 (1).采用IO口触发测距,给至少10us高电平脉冲;

 (2).模块自动发送八个40khz方波,并自主检测是否有电波返回;

  (3)当有信号返回时,通过IO口输出一个高电平,高电平的持续时间就是超声波从发送到返回的时间;

  (4)测距公式:距离=(高电平时间*声速)/2;

  (5)超声波模块时序图如图6所示:

图6:超声波模块时序图

(模块的原理很重要,只有把原理弄懂了才能很好地做出来你想要的东西)

程序的核心在于中断,即单片机内部的计数器中断。

具体的程序分为两个部分:1602显示部分和主程序(见下)

1602程序,基本上都是一些简单的时序问题。

首先对1602进行初始化,定义1602对应接口的接线方式。然后进行写命令,写数据操作,最后将得到的距离数(3位数,以cm为单位)按照个十百分为三个单独的数字输出到液晶显示器上,最后输出单位cm。

#include "lcd.h"

/******************************************************************************* * 函 数 名         : Lcd1602_Delay1ms * 函数功能    : 延时函数,延时1ms * 输    入         : c * 输    出         : 无 * 说    名         : 该函数是在12MHZ晶振下,12分频单片机的延时。 *******************************************************************************/ void Lcd1602_Delay1ms(uint c)   //误差 0ms {     uchar a,b; for (; c>0; c--) { for (b=199;b>0;b--) {   for(a=1;a>0;a--); }       }     } /******************************************************************************* * 函 数 名         : LcdWriteCom * 函数功能    : 向LCD写入一个字节的命令 * 输    入         : com * 输    出         : 无 *******************************************************************************/ #ifndef LCD1602_4PINS //当没有定义这个LCD1602_4PINS时 void LcdWriteCom(uchar com)   //写入命令 { LCD1602_E = 0;     //使能 LCD1602_RS = 0;    //选择发送命令 LCD1602_RW = 0;    //选择写入 LCD1602_DATAPINS = com;     //放入命令 Lcd1602_Delay1ms(1); //等待数据稳定 LCD1602_E = 1;           //写入时序 Lcd1602_Delay1ms(5);   //保持时间 LCD1602_E = 0; } #else  void LcdWriteCom(uchar com)   //写入命令 { LCD1602_E = 0; //使能清零 LCD1602_RS = 0; //选择写入命令 LCD1602_RW = 0; //选择写入 LCD1602_DATAPINS = com; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改 Lcd1602_Delay1ms(1); LCD1602_E = 1; //写入时序 Lcd1602_Delay1ms(5); LCD1602_E = 0; LCD1602_DATAPINS = com


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3