重新写了一个超声波测距程序,测量距离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)
*/
/*===================
。
描述: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接收中断
下一篇: 跑马灯


