找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2590|回復(fù): 0
收起左側(cè)

DS18B20溫度報(bào)警器

[復(fù)制鏈接]
ID:659982 發(fā)表于 2019-12-9 20:07 | 顯示全部樓層 |閱讀模式
/********************************************************************
* 程序名;  基于DS18B20的測(cè)溫系統(tǒng)
* 功  能: 實(shí)時(shí)測(cè)量溫度,超過上下限報(bào)警,報(bào)警溫度可手動(dòng)調(diào)整。K1是用來
* 進(jìn)入上下限調(diào)節(jié)模式的,當(dāng)按一下K1進(jìn)入上限調(diào)節(jié)模式,再按一下進(jìn)入下限
* 調(diào)節(jié)模式。在正常模式下,按一下K2進(jìn)入查看上限溫度模式,顯示1s左右自動(dòng)
* 退出;按一下K3進(jìn)入查看下限溫度模式,顯示1s左右自動(dòng)退出;按一下K4消除
* 按鍵音,再按一下啟動(dòng)按鍵音。在調(diào)節(jié)上下限溫度模式下,K2是實(shí)現(xiàn)加1功能,
* K1是實(shí)現(xiàn)減1功能,K3是用來設(shè)定上下限溫度正負(fù)的。         
* 編程者: ZPZ
* 編程時(shí)間:2009/10/2                   
*********************************************************************/
#include<AT89X52.h>                                   //將AT89X52.h頭文件包含到主程序
#include<intrins.h>                                   //將intrins.h頭文件包含到主程序(調(diào)用其中的_nop_()空操作函數(shù)延時(shí))
#define uint unsigned int                      //變量類型宏定義,用uint表示無符號(hào)整形(16位)
#define uchar unsigned char                   //變量類型宏定義,用uchar表示無符號(hào)字符型(8位)

uchar max=0x00,min=0x00;                   //max是上限報(bào)警溫度,min是下限報(bào)警溫度

bit   s=0;                                                   //s是調(diào)整上下限溫度時(shí)溫度閃爍的標(biāo)志位,s=0不顯示200ms,s=1顯示1s左右
bit   s1=0;                                                   //s1標(biāo)志位用于上下限查看時(shí)的顯示
void display1(uint z);                            //聲明display1()函數(shù)(display.h頭文件中的函數(shù),ds18b20.h要用應(yīng)先聲明)
#include"ds18b20.h"                                   //將ds18b20.h頭文件包含到主程序
#include"keyscan.h"                                   //將keyscan.h頭文件包含到主程序
#include"display.h"                                   //將display.h頭文件包含到主程序

/***********************主函數(shù)************************/
void main()
{
         beer=1;                                           //關(guān)閉蜂鳴器
         led=1;                                                   //關(guān)閉LED燈
         timer1_init(0);                           //初始化定時(shí)器1(未啟動(dòng)定時(shí)器1)
         get_temperature(1);                    //首次啟動(dòng)DS18B20獲取溫度(DS18B20上點(diǎn)后自動(dòng)將EEPROM中的上下限溫度復(fù)制到TH和TL寄存器)
         while(1)                                           //主循環(huán)
         {         
                 keyscan();                                   //按鍵掃面函數(shù)
                 get_temperature(0);           //獲取溫度函數(shù)
                 //keyscan();                                   //按鍵掃面函數(shù)
                 display(temp,temp_d*0.625);//顯示函數(shù)
                 alarm();                                           //報(bào)警函數(shù)
                 //keyscan();                                     //按鍵掃面函數(shù)
         }
}

基于51單片機(jī)及DS18B20溫度傳感器的數(shù)字溫度計(jì)設(shè)計(jì).rar

704.05 KB, 下載次數(shù): 45, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表