【TB作品】51单片机 Proteus仿真 超声波读取+LCD1602显示仿真12MHZ

在这里插入图片描述

实验报告: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上
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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/782230.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Python API的机械臂UDP上报设置及读取

睿尔曼机械臂提供了1个可持续读取机械臂状态的接口,UDP通信状态反馈接口。 该接口提供了json协议、API的读取,设置通信开启之后无需再进行设置即可以固定频率读取。 Python程序源码可从以下网盘地址获取(地址永久有效)&#xff1…

排序(2)

我们在排序&#xff08;1&#xff09;中说到选择排序的代码&#xff1a; void SelectSort(int* a,int n) {int begin0,endn-1;int minibegin,maxbegin;for(int ibegin1;i<end;i){if(a[i]>a[max]){maxii;}if(a[i]<a[mini]){minii;}begin;--end;}Swap(&a[beign],&a…

【NTN 卫星通信】Starlink基于终端用户的测量以及测试概述

1 概述 收集了一些starlink的资料&#xff0c;是基于终端侧部署在野外的一些测试以及测量结果。 2 低地球轨道卫星网络概述 低地球轨道卫星网络(lsn)被认为是即将到来的6G中真正实现全球覆盖的关键基础设施。本文介绍了我们对Starlink端到端网络特征的初步测量结果和观测结果&…

澳大利亚媒体发稿:怎样用图表提高易读性?-华媒舍

媒体发稿的可读性变得尤为重要。读者们不会再有时间与耐心去阅读文章繁琐的文本&#xff0c;他们更喜欢简洁明了的信息展现形式&#xff0c;在其中图表是一种极为高效的专用工具。下面我们就详细介绍怎么使用图表提高澳大利亚新闻媒体发稿的可读性&#xff0c;以适应读者的需要…

day01:项目概述,环境搭建

文章目录 软件开发整体介绍软件开发流程角色分工软件环境 外卖平台项目介绍项目介绍定位功能架构 产品原型技术选型 开发环境搭建整体结构&#xff1a;前后端分离开发前后端混合开发缺点前后端分离开发 前端环境搭建Nginx 后端环境搭建熟悉项目结构使用Git进行版本控制数据库环…

VSCode使用SSH无需输入密码远程连接服务器

目录 一、密钥生成 1、使用windows11自带的命令行 2、使用putty工具 二、查看密钥 三、设置服务器 这个过程是比较简单的&#xff0c;为了方便后续留用和查看&#xff0c;整理个笔记放着。 一、密钥生成 1、使用windows11自带的命令行 在任一文件夹中&#xff0c;空白处…

2024世界人工智能大会,神仙打架

B站&#xff1a;啥都会一点的研究生公众号&#xff1a;啥都会一点的研究生 AI圈最近又发生了啥新鲜事&#xff1f; 该栏目以周更频率总结国内外前沿AI动态&#xff0c;感兴趣的可以点击订阅合集以及时收到最新推送 B站首秀世界人工智能大会&#xff0c;展示自研AI技术与AIGC…

世界人工智能大会中“数据+标注”相关的关键词浅析

标注猿的第79篇原创 一个用数据视角看AI世界的标注猿 大家好&#xff0c;我是AI数据标注猿刘吉&#xff0c;一个用数据视角看AI世界的标注猿。 在国家级数据标注基地建设任务下发后的两个月时间里&#xff0c;全国各地政府、各个高校都快速行动了起来&#xff0c;数据行…

Win10如何设置远程桌面?

远程桌面介绍 远程桌面是一款Windows提供的远程工具&#xff0c;旨在连接同一局域网内的两台计算机。如果您掌握被控端电脑的IP地址&#xff0c;便可直接连接到这台已启用远程桌面的计算机&#xff0c;通过远程桌面进行文件传输或提供远程技术支持。 在同一家公司内&#xff0…

关于 Qt在国产麒麟系统上设置的setFixedSize、setMinimumFixed、setMaxmumFixed设置无效 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140242881 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

云动态摘要 2024-07-07

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 数据库上云优选 阿里云 2024-07-04 RDS、PolarDB、Redis、MongoDB 全系产品新用户低至首年6折起! [免费体验]智能助手ChatBI上线 腾讯云 2024-07-02 基于混元大模型打造,可通过对话方式生成可视化…

入门PHP就来我这(高级)13 ~ 图书添加功能

有胆量你就来跟着路老师卷起来&#xff01; -- 纯干货&#xff0c;技术知识分享 路老师给大家分享PHP语言的知识了&#xff0c;旨在想让大家入门PHP&#xff0c;并深入了解PHP语言。 今天给大家接着上篇文章编写图书添加功能。 1 添加页面 创建add.html页面样式&#xff0c;废…

什么是Web3D交互展示?有什么优势?

在智能互联网蓬勃发展的时代&#xff0c;传统的图片、文字及视频等展示手段因缺乏互动性&#xff0c;正逐渐在吸引用户注意力和提升宣传效果上显得力不从心。而Web3D交互展示技术的横空出世&#xff0c;则为众多品牌与企业开启了一扇全新的展示之门&#xff0c;让线上产品体验从…

[240707] X-CMD v0.3.14: cb gh fjo zig 模块增强;新增 lsio 和 pixi 模块

目录 X-CMD 发布 v0.3.14✨ advise&#xff1a;Bash 环境下自动补全时&#xff0c;提供命令的描述信息✨ cb:支持下载指定版本的附件资源✨ gh:支持下载指定版本的附件资源✨ fjo:支持下载指定版本的附件资源✨ zig&#xff1a;新增 pm 和 zon 子命令✨ lsio&#xff1a;用于查…

排序 -- 手撕归并排序(递归和非递归写法)

一、基本思想 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子序列有…

手把手搭建微信机器人,帮你雇一个24小时在线的个人 AI 助理(上)

上一篇&#xff0c;带领大家薅了一台腾讯云服务器&#xff1a;玩转云服务&#xff1a;手把手带你薅一台腾讯云服务器&#xff0c;公网 IP。 基于这台服务器&#xff0c;今天我们一起动手捏一个基于 LLM 的微信机器人。 0. 前置准备 除了自己常用的微信账号以外&#xff0c;还…

Python之numpy常用知识点总结

文章目录 前言知识点1&#xff1a;np.maximum知识点2&#xff1a;ndarray数据类型知识点3&#xff1a;数据运算知识点4&#xff1a;数组和标量间的运算知识点5&#xff1a;数组的索引和切片知识点6&#xff1a;数组的转置和轴对称知识点7&#xff1a;检索数组元素 前言 在机器学…

【应急响应】Windows应急响应 - 基础命令篇

前言 在如今的数字化时代&#xff0c;Windows系统面对着越来越复杂的网络威胁和安全挑战。本文将深入探讨在Windows环境下的实战应急响应策略。我们将重点关注实际应急响应流程、关键工具的应用&#xff0c;以及如何快速准确地识别和应对安全事件。通过分享实际案例分析&#…

基于S32K144驱动NSD8381

文章目录 1.前言2.芯片介绍2.1 芯片简介2.2 硬件特性2.3 软件特性 3.测试环境3.1 工具3.2 架构 4.软件驱动4.1 SPI4.2 CTRL引脚4.3 寄存器4.4 双极性步进电机驱动流程 5.测试情况6.参考资料 1.前言 最近有些做电磁阀和调光大灯的客户需要寻找国产的双极性步进电机驱动&#xf…

QT入门笔记-自定义控件封装 30

具体代码如下: QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c17# You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINES QT_DISABLE_DEPRECATED_BEFORE0x060000 …