2024-09-01
售卖作品
00

目录

实验报告:51单片机 Proteus仿真 超声波读取+LCD1602显示仿真
一、实验背景
二、硬件介绍
三、器件连接
四、设计原理
1. 超声波测距原理
2. 定时器使用
3. LCD1602显示
五、电路原理
1. 超声波模块
2. 定时器与中断
3. LCD1602控制
六、程序原理
程序简要说明
七、总结
资料

在这里插入图片描述

实验报告:51单片机 Proteus仿真 超声波读取+LCD1602显示仿真

一、实验背景

本实验旨在使用51单片机(AT89C51)结合超声波传感器HC-SR04和LCD1602液晶显示屏,通过Proteus仿真平台实现超声波测距功能,并将测得的距离显示在LCD1602上。该系统可以用于智能小车避障、距离检测等应用场景。

二、硬件介绍

  1. 51单片机(AT89C51)

    • 主频:12MHz

    • 存储器:4KB Flash,128B RAM

    • 定时器:两个16位定时器

    • I/O口:4个8位并行I/O口

  2. 超声波传感器(HC-SR04)

    • 工作电压:5V

    • 工作频率:40kHz

    • 测量范围:2cm-400cm

    • 测量精度:±3mm

    • 引脚:VCC, GND, Trig, Echo

  3. LCD1602液晶显示屏

    • 显示内容:2行16字符

    • 工作电压:5V

    • 控制接口:8位并行数据接口或4位并行数据接口

三、器件连接

  • HC-SR04连接

    • VCC连接到5V电源

    • GND连接到地

    • Trig连接到P1.5

    • Echo连接到P1.6

  • LCD1602连接

    • RS连接到P2.0

    • RW连接到P2.1

    • E连接到P2.2

    • 数据线D4-D7分别连接到P2.4-P2.7

四、设计原理

1. 超声波测距原理

超声波传感器通过发射40kHz的超声波脉冲,当遇到障碍物时,超声波反射回来。传感器接收反射波并计算从发射到接收的时间差,根据公式:

[ \text{距离} = \frac{\text{时间差} \times \text{声速}}{2} ]

计算出距离。声速在空气中约为340m/s。

2. 定时器使用

定时器0配置为模式1(16位定时器),用于测量Echo引脚的高电平时间。通过中断处理溢出情况,确保测量的精确性。

3. LCD1602显示

LCD1602使用4位数据接口模式连接到单片机。通过初始化函数LCD_init进行初始化,之后通过LCD_write_str函数将测量结果显示到屏幕上。

五、电路原理

1. 超声波模块

Trig引脚通过软件控制发射超声波脉冲,Echo引脚接收反射信号,并由定时器0记录高电平持续时间。

2. 定时器与中断

定时器0的溢出中断服务程序设置一个标志位Flag_Ultrasonic,表示测量超时,防止因未接收到反射信号而导致程序卡死。

3. LCD1602控制

通过定义的函数库实现对LCD1602的控制,包括初始化、清屏、光标移动和字符串显示等功能。

六、程序原理

程序主要包括以下几个部分:

  1. 初始化部分

    • 初始化LCD1602

    • 初始化定时器0

  2. 测距过程

    • 控制Trig引脚发出10us高电平脉冲

    • 等待Echo引脚变高,启动定时器0

    • Echo引脚变低,停止定时器0

    • 计算时间差并转换为距离

  3. 显示部分

    • 将计算出的距离转换为字符串格式

    • 调用LCD_write_str函数显示到LCD1602上

c
void main() { unsigned char disp[10]; unsigned int distance = 0; Trig = 0; Echo = 1; LCD_init(); Init_Timer0(); delay_ms(100); while (1) { TR0 = 0; TH0 = 0; TL0 = 0; Trig = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); Trig = 0; while (!Echo); TR0 = 1; while (Echo); TR0 = 0; distance = Conut(); sprintf(disp, "%dmm", distance); LCD_write_str(6, 1, disp); } }

程序简要说明

  • main函数初始化硬件和软件环境,进入主循环。

  • 通过控制Trig引脚发出超声波信号,并测量Echo引脚高电平持续时间。

  • 计算距离并转换为字符串格式,显示在LCD1602上。

七、总结

本实验通过Proteus仿真平台,成功实现了51单片机结合超声波传感器和LCD1602显示屏的距离测量系统。实验过程中,熟悉了定时器的使用、中断的处理以及液晶显示屏的控制方法,为后续更加复杂的应用奠定了基础。

资料

https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!