STC单片机精确延时与DS18B20实战:示波器测量

5星 · 超过95%的资源 需积分: 31 38 下载量 58 浏览量 更新于2024-09-21 2 收藏 5KB TXT 举报
该资源是关于STC单片机(以STC12C56为例)实现精确延时及DS18B20温度传感器应用的程序代码和方法。作者在使用DS18B20时遇到STC单片机延时函数不准确的问题,通过示波器测量不同延时函数的执行时间,从而得到更精确的延时值。提供的代码包含了延时函数Delayus和Delayms的实现,并附有部分测试用例。 在STC单片机编程中,精确延时通常是一个挑战,因为STC的内部分频器可能导致预想的延时不准确。为了克服这个问题,作者采用了直接测量的方法,利用示波器来确定微秒和毫秒级别的延时时间。这种方法可以显著减少因延时不准确导致的调试时间。示波器测量的数据可用于校准延时函数,确保在实际应用中获得期望的延迟。 在给出的代码片段中,可以看到两个延时函数的定义: 1. `Delayus(INT16 i)`: 这个函数用于实现微秒级别的延时,通过一个while循环实现。循环次数与所需延时成反比,循环内的空操作保证了一定的时间消耗。 2. `Delayms(INT16 i)`: 该函数用于毫秒级别的延时,同样采用循环结构,但可能需要更复杂的计算来确保精度,尤其是在不同的系统时钟频率下。 测试用例部分展示了不同参数下,这两个函数实际产生的延时时间,这为其他开发者提供了参考,可以根据这些数据调整自己的延时需求。 此外,代码还包含了一些常用的头文件,如"STC12C56.h"、"exceptive.h"、"globaldata.h"、"system.h"和"intrins.h",以及针对DS18B20的驱动函数"ds18b20.h"。这表明整个项目不仅关注延时问题,还涉及到了异常处理、全局变量、系统初始化以及DS18B20温度传感器的通信。 DS18B20是一种数字温度传感器,它可以直接在单总线上与微控制器进行通信,无需额外的接口电路。这个传感器的特点是精度高、功耗低,常用于各种环境监测和控制应用中。在STC单片机上使用DS18B20时,精确的延时控制对于正确解析传感器返回的数据至关重要。 这个资源提供了STC单片机实现精确延时的实用方法,以及DS18B20温度传感器应用的实例,对使用STC系列单片机和DS18B20的开发者具有很高的参考价值。