51 单片机 HC - SR04 超声波模块测距程序示例及解析
以下是一个简单的 51 单片机超声波模块测距程序示例,使用的是 HC-SR04 超声波模块。 ```c #include <reg51.h> // 定义引脚 sbit Trig = P1^0; // 触发引脚 sbit Echo = P1^1; // 回响引脚 // 函数声明 void Delay_us(unsigned int us); void Delay_ms(unsigned int ms); float MeasureDistance(); // 微秒级延时函数 void Delay_us(unsigned int us) { while(us--) { ; } } // 毫秒级延时函数 void Delay_ms(unsigned int ms) { unsigned int i, j; for(i = 0; i < ms; i++) for(j = 0; j < 110; j++); } // 测量距离函数 float MeasureDistance() { float distance; unsigned int time; Trig = 0; Delay_us(2); Trig = 1; Delay_us(10); Trig = 0; while(Echo == 0); TR0 = 1; while(Echo == 1); TR0 = 0; time = TH0 * 256 + TL0; distance = (time * 0.017); // 声速 340m/s,换算为 0.034cm/us,乘以 2 是往返距离 TH0 = 0; TL0 = 0; return distance; } void main() { float distance; TMOD = 0x01; // 定时器 0 工作方式 1 TH0 = 0; TL0 = 0; while(1) { distance = MeasureDistance(); // 在此处根据测量的距离进行相应的处理 Delay_ms(500); } } ``` 这只是一个简单的示例程序,实际应用中可能需要根据具体的硬件连接和需求进行调整和优化。 ######[AI写代码神器 | 497点数解答 | 2024-11-05 00:39:41]
- Java实现链表反转:迭代与递归双解法详解及开发实战指南(DeepSeek | 1409点数解答 | 2026-03-15 15:09:29)60
- C++ 实现:求解使序列为空的最小操作次数及代码优化要点(阿里通义 | 462点数解答 | 2024-12-21 17:35:25)447
- C++ 求解序列清空最小操作次数:贪心算法与哈希表的巧妙运用(百度文心 | 812点数解答 | 2024-12-21 17:36:14)589
- PHP实训:从0到1搭建电商平台,收获技能与成长!(讯飞星火 | 674点数解答 | 2024-06-17 08:58:32)373
- 期末考试成绩比拼:找出最厉害学生的代码实现及注意要点(DeepSeek | 257点数解答 | 2025-12-16 12:24:03)66
- Golang开发:解析JSON数据时数值默认类型及示例解析(百度文心 | 393点数解答 | 2023-11-09 18:13:06)312
- SQL Working Areas Sizing: Manual vs. Automatic Policy - A Comprehensive Analysis(阿里通义 | 530点数解答 | 2024-05-13 10:55:58)331
- 探寻数组中最长摆动子序列长度:思路剖析与代码优化(GPT | 758点数解答 | 2024-12-23 23:18:29)290
- 独家剖析:求解数组最长摆动子序列长度的代码实现与改进建议(GPT | 350点数解答 | 2024-12-23 23:20:54)290
- C++实现:输出指定区间内排除特定数字和范围的所有数(DeepSeek | 138点数解答 | 2025-07-19 20:44:46)369
- Python代码:依据风速精准判断风力等级(字节豆包 | 148点数解答 | 2025-11-11 21:28:13)87
- Python 实现:根据甜度值为甜甜圈评定等级(字节豆包 | 243点数解答 | 2025-12-06 18:35:50)101