STC单片机DS18B20温度读取与共阳LED显示程序

需积分: 10 2 下载量 74 浏览量 更新于2024-10-16 收藏 37KB DOC 举报
本资源是一份针对STC单片机的数字温度计程序,主要使用了DS18B20温度传感器。DS18B20是一种常用的1-Wire数字温度传感器,其特点是通过一根总线连接多个设备,可实现单线通信,节省了线路资源。 该程序的核心内容包括以下几个部分: 1. **硬件配置**:程序定义了数据脚P2.4用于与DS18B20的DQ引脚相连,以及DIN引脚用于控制LED小数点显示。P1口用于段码输入,而P20~P23作为位选信号,用于选择要显示的LED。 2. **数据类型和变量声明**:定义了无符号字符型(uchar)和无符号整型(uint),以及几个用于存储温度值、临时数据和显示数据的变量。 3. **温度转换和显示处理**: - **温度读取**:通过P2.4的数据引脚读取DS18B20的温度数据,并将其暂存到`temp_data[2]`数组中。 - **温度转换**:由于DS18B20默认采用12位转换,程序可能包含将12位二进制转换为温度值的算法,但具体内容未在给出的部分中体现。 - **小数点显示**:使用查表法来确定小数点后的四位温度值对应的LED显示代码。 - **显示处理**:将温度值分解为整数和小数部分,并利用共阳LED段码表和列扫描控制字进行组合,形成四位数字和小数点的显示数据。 4. **延时函数**:为了确保数据稳定后再进行下一步操作,程序中包含了用于实现11us延时的函数`delay()`,这对于读取和处理温度数据时的稳定性和精度至关重要。 5. **显示扫描函数**:这部分负责根据预设的扫描控制字,依次点亮或熄灭LED,以显示最终的温度数值。 整个程序设计旨在将DS18B20测量的温度转换为易于理解的四位数字和小数点显示,适合于学习和实践单片机编程和温度传感器的应用。如果你需要完整的课程设计报告,可以联系作者获取更多细节和背景信息。