一、用单片机做温度检测系统 论文,
用DS18B20做的电子温度计,非常简单。
#include
#include\"AscLed.h\"
#include
#include
//********************************************************
#define Seck (500/TK) //1秒中的主程序的系数
#define OffLed (Seck*5*60) //自动关机的时间5分钟!
//********************************************************
#if (FHz==0)
#define NOP_2uS_nop_()
#else
#define NOP_2uS_nop_();_nop_()
#endif
//**************************************
#define SkipK 0xcc //跳过命令
#define ConvertK 0x44 //转化命令
#define RdDs18b20K 0xbe //读温度命令
//*******************************************
extern LedOut(void);
//*************************************************
sbit PNP1=P3^4;
sbit PNP2=P3^5;
sbit BEEP=P3^2;
//***********************************
#defineDQ PNP2 //原来的PNP2 BEEP
//***********************************
static unsigned char Power=0;
//************************************
union{
unsigned char Temp[2]; //单字节温度
unsigned int Tt; //2字节温度
}T;
//***********************************************
typedef struct{
unsigned char Flag; //正数标志 0;1==》负数
unsigned char WenDu; //温度整数
unsigned int WenDuDot; //温度小数放大了10000
}WENDU;
//***********************************************
WENDU WenDu;
unsigned char LedBuf[3];
//----------------------------------
//功能:10us 级别延时
// n=1===> 6Mhz=14uS 12MHz=7uS
//----------------------------------
void Delay10us(unsigned char n){
do{
#if (FHz==1)
NOP_2uS;NOP_2uS;
#endif
}while(--n);
}
//-----------------------------------
//功能:写18B20
//-----------------------------------
void Write_18B20(unsigned char n){
unsigned char i;
for(i=0;i<8;i++){
DQ=0;
Delay10us(1);//延时13us 左右
DQ=n & 0x01;
n=n>>1;
Delay10us(5);//延时50us 以上
DQ=1;
}
}
//------------------------------------
//功能:读取18B20
//------------------------------------
unsigned char Read_18B20(void){
unsigned char i;
unsigned char temp;
for(i=0;i<8;i++){
temp=temp>>1;
DQ=0;
NOP_2uS;//延时1us
DQ=1;
NOP_2uS;NOP_2uS;//延时5us
if(DQ==0){
temp=temp&0x7F;
}else{
temp=temp|0x80;
}
Delay10us(5);//延时40us
DQ=1;
}
return temp;
}
//-----------------------------------
void Init (void){
DQ=0;
Delay10us(45);//延时500us
DQ=1;
Delay10us(9);//延时90us
if(DQ){ //0001 1111b=1f
Power =0; //失败0
}else{
Power++;
DQ=1;
}
}
//----------------------------------
void Skip(void){
Write_18B20(SkipK);
Power++;
}
//----------------------------------
void Convert (void){
Write_18B20(ConvertK);
Power++;
}
//______________________________________
void Get_Ds18b20L (void){
T.Temp[1]=Read_18B20(); //读低位
Power++;
}
//______________________________________
void Get_Ds18b20H (void){
T.Temp[0]=Read_18B20(); //读高位
Power++;
}
//------------------------------------
//规范化成浮点数
// sssss111;11110000
// sssss111;1111(0.5,0.25,0.125,0.0625)
//------------------------------------
void ReadTemp (void){
unsigned char i;
unsigned intF1=0;
char j=1;
code int Code_F[]={6250,1250,2500,5000};
WenDu.Flag=0;
if (T.Temp[0] >0x80){ //负温度
T.Tt =~T.Tt+1; //取反+1=源吗 +符号S
WenDu.Flag=-1;
}
T.Tt <<= 4; //左移4位
WenDu.WenDu=T.Temp[0]; // 温度整数
//**************************************************
T.Temp[1]>>=4;
//---------------------------
for (i=0;i<4;i++){ //计算小数位
F1 +=(T.Temp[1] & 0x01)*Code_F;
T.Temp[1]>>=1;
}
WenDu.WenDuDot=F1; //温度的小数
Power=0;
}
//----------------------------------
void Delay1S (void){
static unsigned int i=0;
if (++i==Seck) {i=0ower++;}
}
//----------------------------------
void ReadDo (void){
Write_18B20(RdDs18b20K);
Power++;
}
/**********************************
函数指针定义
***********************************/
code void (code *SubTemp[])()={
Init,Skip,Convert,Delay1S,Init,Skip,ReadDo,Get_Ds18b20L,
Get_Ds18b20H,ReadTemp
};
//**************************************
void GetTemp(void){
(*SubTemp[Power])();
}
//---------------------------------------------------
//将温度显示,小数点放大了10000.
void GetBcd(void){
LedBuf[0]=WenDu.WenDu / 10;
LedBuf[1]=WenDu.WenDu % 10 +DotK;
LedBuf[2]=(WenDu.WenDuDot/1000)%10;
if(LedBuf[0]==0)LedBuf[0]=Black;
if(WenDu.Flag==0) return;
if(LedBuf[0] !=Black){
LedBuf[2]=LedBuf[1];
LedBuf[1]=LedBuf[0];
LedBuf[0]=Led_Pol; //'-'
}else{
LedBuf[0]=Led_Pol; //'-'
}
}
/*
//---------------------------------------------------
void JbDelay (void){
static long i;
if (++i>=OffLed){
P1=0xff;
P2=0xff;
PCON=0x02;
}
}
*/
/*****************************************************
主程序开始
1:2002_10_1 设计,采用DS18B20测量
2:采用函数数组读取DS18B20.LED数码管显示正常!
3:改变FHz可以用6,12MHz工作!
******************************************************/
code unsigned char Stop[3] _at_ 0x3b;
void main (void){
P1=0xff;
WenDu.WenDu=0;
while (1){
GetTemp();
GetBcd();
// JbDelay();
LedOut();
}
}
复制代码
20091012_8b1ef92155560c13b5807ZmoDVSacjwD[1].jpg (12 KB)
2009-10-21 23:21 上传
下载次数:0
二、基于单片机的热敏电阻式温度检测系统设计论文
基于单片机的热敏电阻式温度检测系统设计论文
摘要
1前言
2 Pt100的特性
3 Pt100测温原理
4系统结构与实现方法
4.1 恒流源的设计
4.2 Pt100的四线式接线方法对导线电阻进行补偿
4.3 多通道的巡回切换
4.4 使用MAX1270进行 AD转换
4.5 信号的处理
4.6 键盘的扫描
4.7 LCD显示驱动设计
4.8 串口通信
4.9 控制输出电路
4.10 通信数据格式的约定
5 本设计中C51编程的例子
5.1 液晶模块的驱动
5.2 串口通信
5.3 数字信号处理
6 结论
致谢
参考文献
给你发到邮箱了
请注意查收!!!
三、电脑温度检测软件
炎炎夏日,天气越来越热,即使在空调房,是不是都觉得电脑热得发烫呢?电脑温度监控软件可以让你一秒就能得知电脑的温度,并及时作出对应的降温措施。电脑温度太高会出现卡机、死机、自动关机等症状。所以我们应该随时查看电脑的温度情况,如出现警示温度,就应该引起重视并采取相应措施给爱机降温。电脑温度监控软件检测电脑各个部件的温度,一旦都异样可立即采取措施。本期给大家带来电脑温度监控软件合集,夏季电脑降温宜早不宜晚,给你的爱机降降温吧!
举个例子,如果你没有安装温度监控软件,你在玩游戏,显卡温度已经升到90了,如果继续下去你的显卡估计就会有香味,但是有温度监控你能实时地看到电脑各个部件的温度。
总结了几款市面常见的电脑温度监控软件,还整理出各种的优势~整理不容易,觉得有用的话,给个赞呗~
1、鲁大师
鲁大师是国内专业优秀的一款硬件检测工具,鲁大师官方下载具备专业的硬件评测、准确的硬件检测、全面的硬件保护等全面功能,助你辨别硬件真伪,保护硬件安全。
2、360安全卫士
360安全卫士是国内最主流用户量最大的系统安全辅助工具,360安全卫士下载官方下载在杀木马、防盗号、保护网银和游戏账号等方面表现出色,被誉为防范木马的第一选择。
3、qq电脑管家
QQ电脑管家是腾讯出品的集安全防护、系统清理、软件升级等功能为一体的免费电脑安全管理软件,本站提供腾讯电脑管家官方下载全面助您解决系统、软件、安全方面的一切难题。
4、魔方温度检测
魔方温度监测是一款用于监测电脑设备温度的小工具,它能够支持监测CPU、硬盘、主板等设备的实时温度,并且为用户提供了非常方便的悬浮窗查看当前设备温度。
5、驱动精灵
驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。另外除了驱动备份恢复功能外,还提供了 Outlook 地址簿、邮件和 IE 收藏夹的备份与恢复。并且有多国语言界面供用户选择。驱动精灵是驱动之家的产品,是金山系,驱动人生是360系。他们之间可以互补,有些驱动用其中一个装不完,就用另外一个,绝大多数的驱动都可以解决。
6、CPU-Z中文版
GPU-Z是一款GPU识别工具,绿色免安装,界面直观,运行后即可显示GPU核心,以及运行频率、带宽等,GPU-Z绿色中文版,使用起来更方便。GPU-Z通吃A卡和N卡,对于交火及混合交火也能很好的识别。
7、魔豆精灵硬件检测
魔豆精灵硬件检测为您检测您爱机的硬件属性,包括CPU,主板,BIOS,磁盘,内存,显卡,声卡,网卡,以及鼠标键盘信息。并且为您实时显示CPU温度,磁盘温度以及检测硬件的健康状态。以及硬件驱动备份。
8、驱动人生温度检测
温度检测软件是从驱动人生中单独提取出来的一款温度检测软件。驱动人生温度检测软件也是一款很小巧的绿色简洁的温度检测软件。如果你想事实的检测你的电脑的各项指标温度占用率不妨使用这款温度检测软件
9、小鲁温度监控
小鲁温度监控是结合了鲁大师的技术支持,从鲁大师中提取出的独立小鲁温度监控工具,可以在不占用后台内存,不影响正常上网速度,不影响电脑运行速度的情况下对电脑进行温度监控优化。
整理不容易,希望对您有帮助,望采纳~祝您生活愉快
四、毕业论文 求基于DS18B20温度测量系统资料
嘉兴的,大四,基于DS18B20的温度测量系统,caoguodong,29日即将离开学校
太可怕了,怎么那么多巧合
五、手机温度检测软件
手机温度检测软件是实时温度计。
这是一款手机温度计,它通过应用内置的温度传感器显示实时空气的温度,集合了温度计、湿度计、气压计和人体舒适度测量器。无论走到哪里,这款温度计测量既能实时地测量室内外温度和湿度,还有气压计能测量当前气压和环境对人体的舒适度,是一款不容错过的温湿度计和气压计。
手机温度检测的原理:
软件通过读取现在手机的运行情况,得知当前手机产热的值。假设此时手机温度(从手机自带的监控自身温度传感器得到)没有变化,说明手机的“产热的值=散热的值”。根据热力学原理,散热与温度差有关系,那么软件可以通过散热的值而得知手机与手机所处环境的温度差。而同时软件又知道手机自身的温度,那么根据温度差就可以推出手机所处环境的温度。