找回密码
 立即注册
×

00:00:00

您有一张0.1元限时体验卡,马上领取获得VIP尊享特权。

重新写了一个超声波测距程序,测量距离4米以内,验证成功

2026-4-10 15:22 来自 xbq202 发布 @ 综合讨论

超声波测距,喜欢的朋友留言,下面是验证照片,用尺子测了很精准


描述:STC32G12K128 + HC-SR04超声波测距 + I2C LCD1602显示程序
* 晶振:24MHz


#include "STC32G.h"     // STC32G系列单片机头文件
#include "intrins.h"    // 包含_nop_()等函数
#include <stdio.h>      // 标准输入输出库
#include <string.h>     // 字符串处理库


/*============================================================================
* 类型定义
*============================================================================*/
typedef unsigned char  u8;       // 8位无符号整数
typedef unsigned int   u16;      // 16位无符号整数
typedef unsigned long  u32;      // 32位无符号整数


/*============================================================================
* 硬件引脚定义
*============================================================================*/
// HC-SR04超声波模块引脚
sbit TRIG = P1^0;       // 触发信号输出引脚
sbit ECHO = P1^1;       // 回波信号输入引脚


// I2C总线引脚(软件模拟I2C)
sbit SCL = P3^2;        // I2C时钟线
sbit SDA = P3^3;        // I2C数据线


/*============================================================================
* LCD1602 I2C地址定义(PCF8574T扩展芯片)
*============================================================================*/
#define LCD1602_I2C_ADDR     0x4E    // PCF8574T的7位地址为0x27,左移1位后写地址=0x4E
#define LCD_RS               0x01    // RS引脚连接到P0
#define LCD_RW               0x02    // RW引脚连接到P1(实际I2C LCD1602通常R/W接地,始终写)
#define LCD_EN               0x04    // EN引脚连接到P2
#define LCD_BACKLIGHT        0x08    // 背光控制引脚连接到P3


/* 注意:以上引脚映射基于常见的PCF8574与LCD1602连接方式:
* P0 - RS(寄存器选择)
* P1 - R/W(读写选择)
* P2 - EN(使能信号)
* P3 - 背光控制
* P4 - D4(数据线4)
* P5 - D5(数据线5)
* P6 - D6(数据线6)
* P7 - D7(数据线7)
*/


/*===================

免责声明:

本平台旨在开源共享精神,请勿发布敏感信息,任何违法信息我们将移交公安机关;

上一篇: 串口1DMA和串口2接收中断

下一篇: 跑马灯

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-5-1 07:47 , Processed in 0.074278 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

返回顶部