项目描述:
单片机(STC89C52RCA)通过1-wire总线协议控制DS18B20测量当前环境的温度,并将采集回的温度数据实时显示在LCD1602上。测温范围:-55°C ~ 125°C。超过温度范围时会蜂鸣器响起,LED灯闪烁报警。
C语言代码如下:
/*----------------------------FileName:TempratureMeasure.hFunction: 头文件Author: Zhang KaizhouDate: -6-21 16:21:00----------------------------*/#include <reg52.h>#include <intrins.h>#include <string.h>#define uchar unsigned char#define uint unsigned int/*主模块端口定义*/sbit start = P3^4; // 启动温度测量sbit buzzer = P2^3;sbit led = P1^7;/*DS18B20测温模块端口定义*/sbit DQ = P2^2;/*LCD1602显示模块端口定义*/sbit lcdrs = P1^0;sbit lcdrw = P1^1;sbit lcden = P2^5;/*主模块函数声明*/void start18B20();void getTemprature();void setAlarmTemprature(uchar tHigh, uchar tLow);void tempratureAlarming();void timer0Init();/*1-wire总线模块函数声明*/void initResetBus();void writeByte18B20(uchar dat);void writeLogic1();void writeLogic0();void readByte18B20(uchar * dat);bit readBit();/*LCD1602显示模块函数声明*/void LCDInit();void display(float dat);void writeCommand(uchar command);void writeData(uchar dat);void delay(uint xms);
/*---------------------------------------------------------------FileName: main.cFunction: 单片机通过1-wire总线协议控制DS18B20测量当前环境的温度,并将采集回的温度数据实时显示在LCD1602上。Description: 测温范围:-55°